]> WPIA git - cassiopeia.git/blob - test/Makefile
cln: Move code around, cleanup structure
[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 collissiondetect
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
25
26 SRC_DIR=src
27 OBJ_DIR=obj
28 DEP_DIR=dep
29 TESTDATA_DIR=testdata
30
31 FS_SRC=$(wildcard ${SRC_DIR}/*.cpp)
32 FS_BIN=$(wildcard ${SRC_DIR}/app/*.cpp)
33 FS_LIBS=$(wildcard lib/*/)
34 FS_OBJ=$(FS_SRC:${SRC_DIR}/%.cpp=${OBJ_DIR}/%.lo)
35 FS_DEP=$(FS_SRC:${SRC_DIR}/%.cpp=${DEP_DIR}/%.d)
36
37 .SUFFIXES: .c .cpp .d
38
39 .PHONY: all
40 all: build
41
42 .PHONY: clean
43 clean::
44         -rm -rf .libs
45         -rm -rf *.a
46         -rm -rf *.d
47         -rm -rf *.o
48         -rm -rf *.la
49         -rm -rf *.lo
50         -rm -rf *.so
51         -rm -rf ${OBJ_DIR}
52         -rm -rf ${DEP_DIR}
53         -rm -rf ${TESTDATA_DIR}
54
55 .PHONY: testdata
56 testdata:
57         ./genTestData.sh
58
59 build: cassiopeia-test testdata
60         ${BIN}
61
62 .PHONY: install
63 install: build
64
65 .PHONY: libs
66 libs: ${LIBS}
67
68 .PHONY: openssl
69 openssl:
70         ${MAKE} -C ../lib openssl
71
72 .PHONY: collissiondetect
73 collissiondetect:
74         ${MAKE} -C ../lib/collissiondetect
75
76 # --------
77
78 cassiopeia-test: bin/cassiopeia-test
79
80 bin/cassiopeia-test: libs ${FS_OBJ}
81         ${MKDIR} $(shell dirname $@) && ${LD} ${LDFLAGS} -o $@ ${FS_OBJ} $(filter-out ../obj/apps/%,$(wildcard ../obj/*.o) $(wildcard ../obj/*/*.o))
82
83 ${DEP_DIR}/%.d: ${SRC_DIR}/%.cpp
84         ${MKDIR} $(shell dirname $@) && $(CXX_DEP) $(CXXFLAGS) -M -MF $@ $<
85 ${DEP_DIR}/%.d: ${SRC_DIR}/%.c
86         ${MKDIR} $(shell dirname $@) && $(CC) $(CXXFLAGS) -M -MF $@ $<
87
88 ${OBJ_DIR}/%.lo ${OBJ_DIR}/%.o: ${SRC_DIR}/%.c ${DEP_DIR}/%.d
89         ${MKDIR} $(shell dirname $@) && $(CC) $(CFLAGS) -o $@ -c $<
90 ${OBJ_DIR}/%.lo ${OBJ_DIR}/%.o: ${SRC_DIR}/%.cpp ${DEP_DIR}/%.d
91         ${MKDIR} $(shell dirname $@) && $(CXX) $(CXXFLAGS) -o $@ -c $<
92
93 -include $(FS_DEP)