]> oss.titaniummirror.com Git - repo_shell.git/blobdiff - Makefile
gitcreate: add option to set description
[repo_shell.git] / Makefile
index b2e6998fc5fc9da221370c8bea799fddd51340df..6cb5df23330c9a19db3f5effea523728d4b610d4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,2 +1,61 @@
-repo_shell: repo_shell.c inih/ini.c
+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