.POSIX: PREFIX = /usr/local MANPREFIX = '$(PREFIX)/share/man' DATE = 1970-01-01 VERSION = 0.1.0 NAME = gistatic MAILING_LIST = public-inbox TRANSLATIONS = pt fr eo CONTRIBLANGS = LDLIBS = -lgit2 .SUFFIXES: .SUFFIXES: .c .o .to .in .in: sed \ -e 's:@VERSION@:$(VERSION):g' \ -e 's:@DATE@:$(DATE):g' \ -e 's:@NAME@:$(NAME):g' \ < $< > $@ if [ -x $< ]; then chmod +x $@; fi .c.o: $(CC) $(CFLAGS) -o $@ -c $< .c.to: $(CC) $(CFLAGS) -DTEST -o $@ -c $< manpages.en.in = \ doc/gistatic.en.1.in manpages.in = $(manpages.en.in) \ doc/gistatic.pt.1.in \ doc/gistatic.fr.1.in \ doc/gistatic.eo.1.in manpages = $(manpages.in:.in=) sources = \ src/logerr.c \ src/tar.c \ src/lib.c lib-objects = $(sources:.c=.o) all-objects = $(lib-objects) src/main.o t-objects = $(sources:.c=.to) src/tests-lib.to src/main.to all: libgistatic.a gistatic src/gistatic $(manpages) libgistatic.a: $(lib-objects) $(AR) $(ARFLAGS) $@ $(lib-objects) gistatic: libgistatic.a src/main.o $(CC) $(LDFLAGS) -o $@ src/main.o libgistatic.a $(LDLIBS) gistatic-tests: $(t-objects) $(CC) $(LDFLAGS) -o $@ $(t-objects) $(LDLIBS) $(all-objects) $(t-objects): src/config.h src/tests-lib.to: src/tests-lib.h src/logerr.o src/logerr.to: src/logerr.h src/tar.o src/tar.to: src/tar.h src/tar.o: src/logerr.o src/tar.to: src/logerr.to src/tests-lib.to src/lib.o src/lib.to: src/lib.h src/lib.o: src/logerr.o src/tar.o src/lib.to: src/logerr.to src/tar.to src/tests-lib.to src/main.o: src/logerr.o src/tar.o src/lib.o src/main.to: src/logerr.to src/tar.to src/lib.to src/tests-lib.to tests/resources/repositories/repo-1/.git \ tests/resources/repositories/repo-2/.git: ln -s .gitdir $@ check: all gistatic-tests \ tests/resources/repositories/repo-1/.git \ tests/resources/repositories/repo-2/.git sh tests/build-sample.sh ./gistatic-tests sh tests/assert-catgets.sh src/*.c sh tests/c-lint.sh src/*.c sh tests/integration.sh clean: rm -rf \ public/ $(manpages) README.*.md CHANGELOG.*.md messages.mo \ vgcore.* tmp/ src/config.h $(all-objects) $(t-objects) \ libgistatic.a gistatic gistatic-tests src/gistatic \ tests/resources/repositories/repo-1/.git \ tests/resources/repositories/repo-2/.git install: all mkdir -p \ '$(DESTDIR)$(PREFIX)/bin' \ '$(DESTDIR)$(PREFIX)/lib' \ '$(DESTDIR)$(PREFIX)/include' cp gistatic '$(DESTDIR)$(PREFIX)/bin' cp libgistatic.a '$(DESTDIR)$(PREFIX)/lib' cp src/gistatic.h '$(DESTDIR)$(PREFIX)/include' sh doc/manpages.sh -ip '$(DESTDIR)$(MANPREFIX)' $(manpages) uninstall: rm -f \ '$(DESTDIR)$(PREFIX)/bin/gistatic' \ '$(DESTDIR)$(PREFIX)/lib/libgistatic.a' \ '$(DESTDIR)$(PREFIX)/include/gistatic.h' sh doc/manpages.sh -up '$(DESTDIR)$(MANPREFIX)' $(manpages) # # Personal workflow targets # dev-check: check public sh tests/dev-integration.sh sh aux/assert-shellcheck.sh sh aux/workflow/assert-todos.sh sh aux/workflow/assert-changelog.sh -n '$(NAME)' $(EXTRA_VERSION) sh aux/workflow/assert-readme.sh -n '$(NAME)' -m '$(MAILING_LIST)' \ $(EXTRA_VERSION) sh aux/workflow/assert-manpages.sh -n '$(NAME)' -m '$(MAILING_LIST)' \ -l '$(TRANSLATIONS) en' $(manpages.en.in) sh aux/workflow/repocheck.sh -x1 -l1 -f7 dist: sh aux/workflow/dist.sh -d '$(DATE)' -V '$(VERSION)' \ -n '$(NAME)' -m '$(MAILING_LIST)' README.en.md: README.md ln -fs $? $@ CHANGELOG.en.md: CHANGELOG.md ln -fs $? $@ l10n-gen: README.en.md CHANGELOG.en.md $(manpages.en.in) sh aux/workflow/l10n.sh -l '$(TRANSLATIONS)' -L '$(CONTRIBLANGS)' $? public/makefile.svg: Makefile mkdir -p '$(@D)' makefile2graph check | dot -Tsvg > $@ public: l10n-gen TODOs.md $(manpages) public/makefile.svg sh aux/workflow/public.sh -l '$(TRANSLATIONS) $(CONTRIBLANGS) en' \ -n '$(NAME)' -m '$(MAILING_LIST)' -o public sh doc/manpages.sh -Ho public $(manpages) spellcheck: public sh aux/workflow/assert-spelling.sh -l '$(TRANSLATIONS) en' \ $$(find public -type f -name '*.html')