X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=test%2FMakefile;h=8d28c3ff53a04829343ade48c403ca2899365095;hb=HEAD;hp=4618c427d5cf296f1e2381abcd74d4dc99bf0132;hpb=349dac963257d776985bd0b46ff50d0746a9ae51;p=cassiopeia.git diff --git a/test/Makefile b/test/Makefile index 4618c42..8d28c3f 100644 --- a/test/Makefile +++ b/test/Makefile @@ -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)