MAIN := repo_shell
# Git derives its version "prefix" from tags
-PREFIX = /usr/local
-PROGRAMS = $(MAIN) mystrtok_test acl_test
-SCRIPTS = $(shell ls scripts/*)
+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
all: $(MAIN)
-repo_shell: repo_shell.c inih/ini.c git_acl.c stringutils.c stra.c utility.c version.c
+$(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
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 -D -o root -g root -m 4755 $(MAIN) $(PREFIX)/bin/$(MAIN)
- @install -o root -g root -m 4755 $(SCRIPTS) $(PREFIX)/bin
+ @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 insall uninstall clean $(INFILES)
+.PHONY: all install uninstall package clean FORCE
char *p = _p;
char *repo = strip_repo(my_strtok(&p, " \t\n"));
- debug("repo '%s'", repo);
if (!repo || my_strtok(&p, " \t\n"))
die("acl_handler: badly formatted section '%s'", section);
/* repo is repo name, name is userid, value is permission */