aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile70
1 files changed, 40 insertions, 30 deletions
diff --git a/Makefile b/Makefile
index 607f910..7f6c4e9 100644
--- a/Makefile
+++ b/Makefile
@@ -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)