diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 70 |
1 files changed, 40 insertions, 30 deletions
@@ -9,13 +9,13 @@ TRANSLATIONS = pt fr eo CONTRIBLANGS = LDLIBS = -lgit2 -.SUFFIXES: .in .t +.SUFFIXES: .in .to .in: sed -e 's:@VERSION@:$(VERSION):g' -e 's:@DATE@:$(DATE):g' < $< > $@ -.c.t: - $(CC) $(CFLAGS) $(LDFLAGS) -DTEST -o $@ $< src/tests-lib.o $(LDLIBS) +.c.to: + $(CC) $(CFLAGS) $(LDFLAGS) -DTEST -o $@ -c $< $(LDLIBS) manpages.en.in = \ @@ -29,50 +29,60 @@ manpages = $(manpages.in:.in=) sources = \ src/tar.c \ src/gistatic.c -objects = $(sources:.c=.o) -tests = $(sources:.c=.t) +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: src/config.h src/tests-lib.o src/gistatic libgistatic.a $(manpages) +all: gistatic libgistatic.a $(manpages) +gistatic: $(all-objects) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(all-objects) $(LDLIBS) -src/gistatic: $(objects) src/main.o - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(objects) src/main.o $(LDLIBS) +gistatic-tests: $(t-objects) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(t-objects) $(LDLIBS) -libgistatic.a: $(objects) - $(AR) $(ARFLAGS) $@ $(objects) +libgistatic.a: $(lib-objects) + $(AR) $(ARFLAGS) $@ $(lib-objects) src/config.h: - touch $@ printf '#ifndef GISTATIC_CONFIG_H\n' >> $@ printf '#define GISTATIC_CONFIG_H\n\n' >> $@ printf '#define _POSIX_C_SOURCE 200809L\n' >> $@ printf '#define VERSION "$(VERSION)"\n' >> $@ printf '#define DATE "$(DATE)"\n' >> $@ - printf '\n#endif\n' >> $@ - -$(objects): src/config.h -$(tests): src/config.h src/tests-lib.h src/tests-lib.o -src/gistatic.o: src/gistatic.h src/tar.o src/tar.h -src/main.o: src/gistatic.h src/gistatic.o - - -check: all $(tests) - rm -f tests/resources/repositories/repo-1/.git - rm -f tests/resources/repositories/repo-2/.git - ln -s .gitdir tests/resources/repositories/repo-1/.git - ln -s .gitdir tests/resources/repositories/repo-2/.git + printf '\n' >> $@ + printf '#endif\n' >> $@ + +$(all-objects) $(t-objects): src/config.h +src/tests-lib.to: src/tests-lib.h +src/tar.o src/tar.to: src/tar.h +src/gistatic.o src/gistatic.to: src/gistatic.h +src/gistatic.o: src/tar.o +src/gistatic.to: src/tar.to +src/main.o src/main.to: src/tar.h src/gistatic.h +src/main.o: src/tar.o src/gistatic.o +src/main.to: src/tar.to src/gistatic.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 - for t in $(tests); do ./$$t; done + ./gistatic-tests sh tests/assert-catgets.sh src/*.c sh tests/integration.sh sh tests/c-lint.sh src/*.c clean: - rm -rf public/ $(manpages) README.*.md CHANGELOG.*.md messages.mo \ - vgcore.* tmp/ src/config.h \ - src/*.o src/*.t src/gistatic libgistatic.a \ - tests/resources/repositories/repo-1/.git \ + rm -rf \ + public/ $(manpages) README.*.md CHANGELOG.*.md messages.mo \ + vgcore.* tmp/ src/config.h src/*.o src/*.to \ + libgistatic.a gistatic gistatic-tests \ + tests/resources/repositories/repo-1/.git \ tests/resources/repositories/repo-2/.git install: all @@ -80,7 +90,7 @@ install: all $(DESTDIR)$(PREFIX)/bin \ $(DESTDIR)$(PREFIX)/lib \ $(DESTDIR)$(PREFIX)/include - cp src/gistatic $(DESTDIR)$(PREFIX)/bin + 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) |