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