summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamsay Jones <ramsay@ramsay1.demon.co.uk>2009-06-04 17:11:06 +0100
committerAndreas Ericsson <ae@op5.se>2009-06-05 12:12:42 +0200
commitaee8b26e6322bee55403a61634d7e01b77aea4c1 (patch)
treeb55dd77ea78ddd49d9ee082e2785b3c1ad9de7d5
parentcf33ac7a3d8b2b8f6bb266518aadbf59de397608 (diff)
downloadlibgit2-aee8b26e6322bee55403a61634d7e01b77aea4c1.tar.gz
Makefile: move test related targets to a new tests/Makefile
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Andreas Ericsson <ae@op5.se>
-rw-r--r--Makefile56
-rw-r--r--tests/Makefile84
2 files changed, 95 insertions, 45 deletions
diff --git a/Makefile b/Makefile
index 933888647..8839d5b02 100644
--- a/Makefile
+++ b/Makefile
@@ -19,12 +19,8 @@ libdir=$(prefix)/lib
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo no')
CFLAGS = -g -O2 -Wall
-LIBS = -L. -lgit2 -lz
OS = unix
-CRYPTO_LIB = -lcrypto
-
-EXTRA_LIBS =
EXTRA_SRC =
EXTRA_OBJ =
@@ -51,7 +47,6 @@ TEST_RUN = $(patsubst %.exe,%.run,$(TEST_EXE))
ifndef NO_OPENSSL
SHA1_HEADER = <openssl/sha.h>
- EXTRA_LIBS += $(CRYPTO_LIB)
else
SHA1_HEADER = "sha1/sha1.h"
EXTRA_SRC += src/sha1/sha1.c
@@ -66,7 +61,6 @@ endif
ALL_CFLAGS = $(CFLAGS) $(BASIC_CFLAGS)
SRC_C += $(EXTRA_SRC)
OBJ += $(EXTRA_OBJ)
-LIBS += $(EXTRA_LIBS)
all:: $(GIT_LIB)
@@ -74,15 +68,19 @@ clean:
rm -f $(GIT_LIB)
rm -f libgit2.pc
rm -f src/*.o src/sha1/*.o src/unix/*.o
- rm -f tests/*.o tests/*.exe tests/*.toc
- rm -rf trash-*.exe
rm -rf apidocs
+ rm -f *~ src/*~ src/git/*~ src/sha1/*~ src/unix/*~ src/win32/*~
+ @$(MAKE) -C tests -s --no-print-directory clean
+
+test-clean:
+ @$(MAKE) -C tests -s --no-print-directory clean
apidocs:
$(DOXYGEN) api.doxygen
cp CONVENTIONS apidocs/
-test: $(TEST_RUN)
+test: $(GIT_LIB)
+ @$(MAKE) -C tests --no-print-directory test
sparse:
cgcc -no-compile $(ALL_CFLAGS) $(SPARSE_FLAGS) $(SRC_C)
@@ -118,48 +116,16 @@ $(GIT_LIB): $(OBJS)
$(AR) $(GIT_LIB) $(OBJS)
$(RANLIB) $(GIT_LIB)
-T_HDR = tests/test_lib.h tests/test_helpers.h
-T_LIB = tests/test_lib.o tests/test_helpers.o
-T_MAIN_C = tests/test_main.c
-
-$(T_LIB): $(T_HDR) $(HDRS)
-$(TEST_OBJ): $(T_HDR) $(HDRS)
-
-$(patsubst %.exe,%.toc,$(TEST_EXE)): tests/%.toc: tests/%.c
- grep BEGIN_TEST $< >$@+
- mv $@+ $@
-
-$(TEST_OBJ): tests/%.o: tests/%.c
- $(CC) $(ALL_CFLAGS) -c $< -o $@
-
-$(patsubst %.exe,%_main.o,$(TEST_EXE)): tests/%_main.o: $(HDRS)
-$(patsubst %.exe,%_main.o,$(TEST_EXE)): tests/%_main.o: $(T_MAIN_C)
-$(patsubst %.exe,%_main.o,$(TEST_EXE)): tests/%_main.o: tests/%.toc
- $(CC) $(CFLAGS) -Isrc -I. '-DTEST_TOC="$<"' \
- -c $(T_MAIN_C) \
- -o $@
-
-$(TEST_EXE): tests/%.exe: $(T_LIB) $(GIT_LIB)
-$(TEST_EXE): tests/%.exe: tests/%.o tests/%_main.o
- $(CC) -o $@ \
- $(patsubst %.exe,%_main.o,$@) \
- $(patsubst %.exe,%.o,$@) \
- $(T_LIB) $(LIBS)
-
-$(TEST_RUN): tests/%.run: tests/%.exe
- @t=trash-$(<F) && \
- mkdir $$t && \
- if (cd $$t && ../$<); \
- then rm -rf $$t; \
- else rmdir $$t; exit 1; \
- fi
+$(TEST_OBJ) $(TEST_EXE) $(TEST_RUN):
+ @$(MAKE) -C tests --no-print-directory \
+ OS=$(OS) NO_OPENSSL=$(NO_OPENSSL) $(@F)
libgit2.pc: libgit2.pc.in
sed -e 's#@prefix@#$(prefix)#' -e 's#@libdir@#$(libdir)#' $< > $@
.PHONY: all
.PHONY: clean
-.PHONY: test $(TEST_RUN)
+.PHONY: test $(TEST_RUN) $(TEST_EXE) $(TEST_OBJ)
.PHONY: apidocs
.PHONY: install-headers
.PHONY: install uninstall
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644
index 000000000..7ce510638
--- /dev/null
+++ b/tests/Makefile
@@ -0,0 +1,84 @@
+
+all::
+
+LD = $(CC)
+
+uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo no')
+
+CFLAGS = -g -O2 -Wall
+LIBS = -L.. -lgit2 -lz
+OS = unix
+
+CRYPTO_LIB = -lcrypto
+
+EXTRA_LIBS =
+
+HDRS = $(wildcard ../src/*.h)
+PUBLIC_HEADERS = $(wildcard ../src/git/*.h)
+HDRS += $(PUBLIC_HEADERS)
+
+TEST_OBJ = $(patsubst %.c,%.o,\
+ $(wildcard t[0-9][0-9][0-9][0-9]-*.c))
+TEST_EXE = $(patsubst %.o,%.exe,$(TEST_OBJ))
+TEST_RUN = $(patsubst %.exe,%.run,$(TEST_EXE))
+
+ifndef NO_OPENSSL
+ EXTRA_LIBS += $(CRYPTO_LIB)
+endif
+
+BASIC_CFLAGS := -I../src
+
+ALL_CFLAGS = $(CFLAGS) $(BASIC_CFLAGS)
+LIBS += $(EXTRA_LIBS)
+
+all:: $(TEST_RUN)
+
+clean:
+ rm -f *.o *.exe *.toc
+ rm -rf trash-*.exe
+ rm -f *~
+
+test: $(TEST_RUN)
+
+.c.o:
+ $(CC) $(ALL_CFLAGS) -c $< -o $@
+
+T_HDR = test_lib.h test_helpers.h
+T_LIB = test_lib.o test_helpers.o
+T_MAIN_C = test_main.c
+
+$(T_LIB): $(T_HDR) $(HDRS)
+$(TEST_OBJ): $(T_HDR) $(HDRS)
+
+$(patsubst %.exe,%.toc,$(TEST_EXE)): %.toc: %.c
+ grep BEGIN_TEST $< >$@+
+ mv $@+ $@
+
+$(TEST_OBJ): %.o: %.c
+ $(CC) $(ALL_CFLAGS) -c $< -o $@
+
+$(patsubst %.exe,%_main.o,$(TEST_EXE)): %_main.o: $(HDRS)
+$(patsubst %.exe,%_main.o,$(TEST_EXE)): %_main.o: $(T_MAIN_C)
+$(patsubst %.exe,%_main.o,$(TEST_EXE)): %_main.o: %.toc
+ $(CC) $(ALL_CFLAGS) '-DTEST_TOC="$<"' \
+ -c $(T_MAIN_C) \
+ -o $@
+
+$(TEST_EXE): %.exe: $(T_LIB)
+$(TEST_EXE): %.exe: %.o %_main.o
+ $(LD) -o $@ \
+ $(patsubst %.exe,%_main.o,$@) \
+ $(patsubst %.exe,%.o,$@) \
+ $(T_LIB) $(LIBS)
+
+$(TEST_RUN): %.run: %.exe
+ @t=trash-$(<F) && \
+ mkdir $$t && \
+ if (cd $$t && ../$<); \
+ then rm -rf $$t; \
+ else rmdir $$t; exit 1; \
+ fi
+
+.PHONY: all
+.PHONY: clean
+.PHONY: test $(TEST_RUN)