]> WPIA git - cassiopeia.git/blobdiff - test/Makefile
fix: use correct prepared statement for writing logs
[cassiopeia.git] / test / Makefile
index 4618c427d5cf296f1e2381abcd74d4dc99bf0132..8d28c3ff53a04829343ade48c403ca2899365095 100644 (file)
@@ -1,7 +1,101 @@
+MKDIR = mkdir -p
+
+BIN="bin/cassiopeia-test"
+LIBS=openssl collisiondetect
+
+CC=libtool --mode=compile gcc
+CC_DEP=g++
+CXX=libtool --mode=compile g++
+CXX_DEP=g++
+LD=libtool --mode=link g++
+
+# Debhelper messes with environment variables which leads to wrong environment variable injection
+# into CFLAGS. Therefore we do not append but override.
+CFLAGS=${ADDFLAGS} -Wall -Werror -Wextra -pedantic -std=c++11 -I../src -I../lib/openssl/include
+CXXFLAGS=$(CFLAGS)
+LDFLAGS=${ADDFLAGS} -lssl -lcrypto -ldl -lboost_unit_test_framework -L../lib/openssl -L/usr/lib/i386-linux-gnu -lpqxx -lpq
+
+ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
+    CFLAGS += -O0
+else
+    CFLAGS += -O2
+endif
+
+ifneq (,$(filter debug,$(DEB_BUILD_OPTIONS)))
+CFLAGS+=-DNO_DAEMON -g -Og
+endif
+
+ifneq (,$(filter coverage,$(DEB_BUILD_OPTIONS)))
+    LDFLAGS += -lgcov
+    CFLAGS += -fprofile-arcs -ftest-coverage
+endif
+
+
+SRC_DIR=src
+OBJ_DIR=obj
+DEP_DIR=dep
+TESTDATA_DIR=testdata
+
+FS_SRC=$(wildcard ${SRC_DIR}/*.cpp)
+FS_BIN=$(wildcard ${SRC_DIR}/app/*.cpp)
+FS_LIBS=$(wildcard lib/*/)
+FS_OBJ=$(FS_SRC:${SRC_DIR}/%.cpp=${OBJ_DIR}/%.lo)
+FS_DEP=$(FS_SRC:${SRC_DIR}/%.cpp=${DEP_DIR}/%.d)
+
+.SUFFIXES: .c .cpp .d
+
 .PHONY: all
-all:
-       @echo 'Performing some important tests ...'
+all: build
 
 .PHONY: clean
-clean:
-       @echo 'Cleaning up behind us ...'
+clean::
+       -rm -rf .libs
+       -rm -rf *.a
+       -rm -rf *.d
+       -rm -rf *.o
+       -rm -rf *.la
+       -rm -rf *.lo
+       -rm -rf *.so
+       -rm -rf ${OBJ_DIR}
+       -rm -rf ${DEP_DIR}
+       -rm -rf ${TESTDATA_DIR}
+
+.PHONY: testdata
+testdata:
+       ./genTestData.sh
+
+build: cassiopeia-test testdata
+       ${BIN} --log_level=warning
+
+.PHONY: install
+install: build
+
+.PHONY: libs
+libs: ${LIBS}
+
+.PHONY: openssl
+openssl:
+       ${MAKE} -C ../lib openssl
+
+.PHONY: collisiondetect
+collisiondetect:
+       ${MAKE} -C ../lib/collisiondetect
+
+# --------
+
+cassiopeia-test: bin/cassiopeia-test
+
+bin/cassiopeia-test: libs ${FS_OBJ}
+       ${MKDIR} $(shell dirname $@) && ${LD} ${LDFLAGS} -o $@ ${FS_OBJ} $(filter-out ../obj/apps/%,$(wildcard ../obj/*.o) $(wildcard ../obj/*/*.o))
+
+${DEP_DIR}/%.d: ${SRC_DIR}/%.cpp
+       ${MKDIR} $(shell dirname $@) && $(CXX_DEP) $(CXXFLAGS) -M -MF $@ $<
+${DEP_DIR}/%.d: ${SRC_DIR}/%.c
+       ${MKDIR} $(shell dirname $@) && $(CC) $(CXXFLAGS) -M -MF $@ $<
+
+${OBJ_DIR}/%.lo ${OBJ_DIR}/%.o: ${SRC_DIR}/%.c ${DEP_DIR}/%.d
+       ${MKDIR} $(shell dirname $@) && $(CC) $(CFLAGS) -o $@ -c $<
+${OBJ_DIR}/%.lo ${OBJ_DIR}/%.o: ${SRC_DIR}/%.cpp ${DEP_DIR}/%.d
+       ${MKDIR} $(shell dirname $@) && $(CXX) $(CXXFLAGS) -o $@ -c $<
+
+-include $(FS_DEP)