]> WPIA git - cassiopeia.git/blob - test/Makefile
upd: debian package compat to v9
[cassiopeia.git] / test / Makefile
1 MKDIR = mkdir -p
2
3 BIN="bin/cassiopeia-test"
4 LIBS=openssl collisiondetect
5
6 CC=libtool --mode=compile gcc
7 CC_DEP=g++
8 CXX=libtool --mode=compile g++
9 CXX_DEP=g++
10 LD=libtool --mode=link g++
11
12 # Debhelper messes with environment variables which leads to wrong environment variable injection
13 # into CFLAGS. Therefore we do not append but override.
14 CFLAGS=${ADDFLAGS} -Wall -Werror -Wextra -pedantic -std=c++11 -I../src -I../lib/openssl/include
15 CXXFLAGS=$(CFLAGS)
16 LDFLAGS=${ADDFLAGS} -lssl -lcrypto -ldl -lboost_unit_test_framework -L../lib/openssl -L/usr/lib/i386-linux-gnu -lpqxx -lpq
17
18 ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
19     CFLAGS += -O0
20 else
21     CFLAGS += -O2
22 endif
23
24 ifneq (,$(filter debug,$(DEB_BUILD_OPTIONS)))
25 CFLAGS+=-DNO_DAEMON -g -Og
26 endif
27
28 ifneq (,$(filter coverage,$(DEB_BUILD_OPTIONS)))
29     LDFLAGS += -lgcov
30     CFLAGS += -fprofile-arcs -ftest-coverage
31 endif
32
33
34 SRC_DIR=src
35 OBJ_DIR=obj
36 DEP_DIR=dep
37 TESTDATA_DIR=testdata
38
39 FS_SRC=$(wildcard ${SRC_DIR}/*.cpp)
40 FS_BIN=$(wildcard ${SRC_DIR}/app/*.cpp)
41 FS_LIBS=$(wildcard lib/*/)
42 FS_OBJ=$(FS_SRC:${SRC_DIR}/%.cpp=${OBJ_DIR}/%.lo)
43 FS_DEP=$(FS_SRC:${SRC_DIR}/%.cpp=${DEP_DIR}/%.d)
44
45 .SUFFIXES: .c .cpp .d
46
47 .PHONY: all
48 all: build
49
50 .PHONY: clean
51 clean::
52         -rm -rf .libs
53         -rm -rf *.a
54         -rm -rf *.d
55         -rm -rf *.o
56         -rm -rf *.la
57         -rm -rf *.lo
58         -rm -rf *.so
59         -rm -rf ${OBJ_DIR}
60         -rm -rf ${DEP_DIR}
61         -rm -rf ${TESTDATA_DIR}
62
63 .PHONY: testdata
64 testdata:
65         ./genTestData.sh
66
67 build: cassiopeia-test testdata
68         ${BIN} --log_level=warning
69
70 .PHONY: install
71 install: build
72
73 .PHONY: libs
74 libs: ${LIBS}
75
76 .PHONY: openssl
77 openssl:
78         ${MAKE} -C ../lib openssl
79
80 .PHONY: collisiondetect
81 collisiondetect:
82         ${MAKE} -C ../lib/collisiondetect
83
84 # --------
85
86 cassiopeia-test: bin/cassiopeia-test
87
88 bin/cassiopeia-test: libs ${FS_OBJ}
89         ${MKDIR} $(shell dirname $@) && ${LD} ${LDFLAGS} -o $@ ${FS_OBJ} $(filter-out ../obj/apps/%,$(wildcard ../obj/*.o) $(wildcard ../obj/*/*.o))
90
91 ${DEP_DIR}/%.d: ${SRC_DIR}/%.cpp
92         ${MKDIR} $(shell dirname $@) && $(CXX_DEP) $(CXXFLAGS) -M -MF $@ $<
93 ${DEP_DIR}/%.d: ${SRC_DIR}/%.c
94         ${MKDIR} $(shell dirname $@) && $(CC) $(CXXFLAGS) -M -MF $@ $<
95
96 ${OBJ_DIR}/%.lo ${OBJ_DIR}/%.o: ${SRC_DIR}/%.c ${DEP_DIR}/%.d
97         ${MKDIR} $(shell dirname $@) && $(CC) $(CFLAGS) -o $@ -c $<
98 ${OBJ_DIR}/%.lo ${OBJ_DIR}/%.o: ${SRC_DIR}/%.cpp ${DEP_DIR}/%.d
99         ${MKDIR} $(shell dirname $@) && $(CXX) $(CXXFLAGS) -o $@ -c $<
100
101 -include $(FS_DEP)