diff options
Diffstat (limited to 'acf.mk')
-rw-r--r-- | acf.mk | 78 |
1 files changed, 78 insertions, 0 deletions
@@ -0,0 +1,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) |