MAIN := repo_shell # Git derives its version "prefix" from tags PREFIX := /usr/local PROGRAMS := $(MAIN) mystrtok_test acl_test SCRIPTS := $(shell ls scripts/*) PACKAGE := $(MAIN)-package.tar.gz # Add TMI's mkversion to render files xxx.in -> xxx, updating __appVersion__ # Massage the version coming back because setup.py build to exe only wants # versions of the form a.b.c.d. We'll use this to our advantage to cause # setup.py to error if the VERSION is either dirty, or if git, not a tag. include mkversion.mk #$(warning VERSION $(VERSION)) INFILES := $(shell ls *.in 2>/dev/null) INFILES := $(INFILES:%.in=%) #$(warning INFILES $(INFILES)) all: $(MAIN) $(MAIN):%: %.c inih/ini.c git_acl.c stringutils.c stra.c utility.c version.c $(CC) -I inih $^ -o $@ mystrtok_test: mystrtok_test.c stringutils.c utility.c $(CC) -g $^ -o $@ acl_test: acl_test.c git_acl.c inih/ini.c stringutils.c stra.c utility.c $(CC) -I inih $^ -o $@ $(INFILES):%: %.in .version @echo "building $@ for $(VERSION)" @sed -e 's|__appVersion__|$(VERSION)|g' < $< > $@-tmp @diff -q $@-tmp $@ >/dev/null 2>&1 && rm -f $@-tmp || mv $@-tmp $@ .version: FORCE @[ "$$(cat $@ 2>/dev/null)" != "$(VERSION)" ] && \ echo "$(VERSION)" > $@ || true install: $(MAIN) $(SCRIPTS) @install -D -o root -g root -m 4755 $(MAIN) $(PREFIX)/bin/$(MAIN) @install -o root -g root -m 0755 $(SCRIPTS) $(PREFIX)/bin uninstall: @rm -f $(PREFIX)/bin/$(MAIN) @for i in $(SCRIPTS); do rm -f $(PREFIX)/bin/$$i; done $(PACKAGE): $(MAIN) $(SCRIPTS) @rm -rf pkg.tmp @mkdir pkg.tmp @install -D -o root -g root -m 4755 $(MAIN) pkg.tmp/$(PREFIX)/bin/$(MAIN) @install -o root -g root -m 0755 $(SCRIPTS) pkg.tmp/$(PREFIX)/bin @cd pkg.tmp && tar czf ../$(PACKAGE) . @rm -rf pkg.tmp @echo "$(PACKAGE) created" package: Makefile $(PACKAGE) clean: @rm -rf $(PROGRAMS) $(INFILES) .PHONY: all install uninstall package clean FORCE