]> WPIA git - cassiopeia.git/blob - test/Makefile
Merge branch 'libs/openssl/local'
[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 LT_CC=libtool --mode=compile gcc
13 LT_CC_DEP=g++
14 LT_CXX=libtool --mode=compile g++
15 LT_CXX_DEP=g++
16 LT_LD=libtool --mode=link g++
17
18 CC=${LT_CC}
19 CC_DEP=${LT_CC_DEP}
20 CXX=${LT_CXX}
21 CXX_DEP=${LT_CXX_DEP}
22 LD=${LT_LD}
23
24 ifneq (,$(filter debug,$(DEB_BUILD_OPTIONS)))
25 ADDFLAGS=-DNO_DAEMON
26 endif
27
28 CFLAGS=-O3 -g -flto -Wall -Werror -Wextra -pedantic -std=c++11 ${ADDFLAGS}
29 CXXFLAGS=$(CFLAGS)
30 LDFLAGS=-O3 -g -flto -lmysqlclient -lssl -lcrypto -ldl -lboost_unit_test_framework
31
32 SRC_DIR=src
33 OBJ_DIR=obj
34 DEP_DIR=dep
35
36 FS_SRC=$(wildcard ${SRC_DIR}/*.cpp)
37 FS_BIN=$(wildcard ${SRC_DIR}/app/*.cpp)
38 FS_LIBS=$(wildcard lib/*/)
39 FS_OBJ=$(FS_SRC:${SRC_DIR}/%.cpp=${OBJ_DIR}/%.lo)
40 FS_DEP=$(FS_SRC:${SRC_DIR}/%.cpp=${DEP_DIR}/%.d)
41
42 .SUFFIXES: .c .cpp .d
43
44 .PHONY: all
45 all: build
46
47 .PHONY: clean
48 clean::
49         -rm -rf .libs
50         -rm -rf *.a
51         -rm -rf *.d
52         -rm -rf *.o
53         -rm -rf *.la
54         -rm -rf *.lo
55         -rm -rf *.so
56         -rm -rf ${OBJ_DIR}
57         -rm -rf ${DEP_DIR}
58
59 build: cassiopeia-test
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 $@) && ${LT_LD} ${LDFLAGS} -o $@ ${FS_OBJ}
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)