X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=Makefile;h=6cb5df23330c9a19db3f5effea523728d4b610d4;hb=HEAD;hp=dc3b5f843748e741739279838a459b6c8717e6f5;hpb=209ef6909e8aa0ab075f85fd3062c2ee34ff4d4d;p=repo_shell.git diff --git a/Makefile b/Makefile index dc3b5f8..6cb5df2 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,11 @@ -PROGRAM := repo_shell +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 @@ -11,14 +16,46 @@ INFILES := $(shell ls *.in 2>/dev/null) INFILES := $(INFILES:%.in=%) #$(warning INFILES $(INFILES)) -repo_shell: repo_shell.c inih/ini.c version.c +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 - @sed -e 's|__appVersion__|$(VERSION)|g' < $^ > $@-tmp +$(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 $(PROGRAM) $(INFILES) + @rm -rf $(PROGRAMS) $(INFILES) -.PHONY: all clean $(INFILES) +.PHONY: all install uninstall package clean FORCE