summaryrefslogtreecommitdiffstats
path: root/acf.mk
blob: 3ce18a929014b65ce1940950eb16673d1aa19506 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# acf.mk

ACF_MK_VERSION 	=0.2

SUBDIR		=$(basename $(PWD))
DISTDIR 	?=$(PV)
PV		=${PACKAGE}-${VERSION}
DISTFILES	=$(APP_DIST) $(LIB_DIST) $(ETC_DIST) $(CGI_DIST) $(WWW_DIST)\
		$(STATIC_DIST) $(EXTRA_DIST)
TARBZ2		=$(PV).tar.bz2
DISTPKG		=$(TARBZ2)

CP		=cp
MKDIR		=mkdir
TAR		=tar

MAKEFLAGS 	+= --no-print-directory --quiet
RECURSIVE_TARGETS = $(addsuffix -recursive,all clean distdir install)

phony += all
all:	all-recursive	

phony += $(RECURSIVE_TARGETS)
$(RECURSIVE_TARGETS):
	target=`echo $@ | sed 's/-recursive//'` ;\
	for dir in $(SUBDIRS) ; do \
		( cd $$dir && $(MAKE) $$target \
			DISTDIR="$(PWD)/$(basename $(DISTDIR))" \
			DESTDIR="$(PWD)/$(basename $(DESTDIR))" \
		) || exit 2 ;\
	done

phony += clean
clean:
	if [ -n "$(DISTPKG)" ]; then\
		$(RM) $(DISTPKG);\
	fi
	if [ -n "$(DISTDIR)" ]; then\
		$(RM) -r $(DISTDIR);\
	fi
	
phony += dist
dist: 	$(DISTPKG)
	
$(TARBZ2): distdir
	echo "Making $@"
	$(CP) $(DISTFILES) $(DISTDIR)
	$(TAR) -cjf $@ $(DISTDIR)
	$(RM) -r $(DISTDIR)

phony += distdir
distdir: distdir-recursive
	if [ -z "$(DISTDIR)" ]; then \
		echo "no DISTDIR in $(SUBDIR)" ;\
		exit 2 ;\
	fi
	for i in $(DISTFILES); do\
		if [ -n "$(SUBDIR)" ]; then\
			destdir=$(DISTDIR)/$(SUBDIR)/`dirname $$i`;\
		else \
			destdir=$(DISTDIR);\
		fi;\
		$(MKDIR) -p "$$destdir" &&\
		$(CP) "$$i" "$$destdir";\
	done

phony += pre-install-hook post-install-hook

phony += install
install: install-recursive
	if [ -n "$(APP_DIST)" ]; then\
		echo "Installing app files";\
		$(MKDIR) -p $(DESTDIR)/$(appdir);\
		$(CP) $(APP_DIST) $(DESTDIR)/$(appdir);\
	fi
	echo "TODO: *_DIST, set permissions, set ownerships"

.PHONY: $(phony)