]> WPIA git - cassiopeia.git/blobdiff - Makefile
upd: striping system lib crom coverage
[cassiopeia.git] / Makefile
index 824ef6be6d059730b1c0d40208c72692a1e429e5..b7fc17955b179cf2fa33769502adc72027f42f1e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -36,11 +36,18 @@ CFLAGS+=${ADDFLAGS} -Wall -Werror -Wextra -pedantic -std=c++11 -Ilib/openssl/inc
 CXXFLAGS=$(CFLAGS)
 LDFLAGS+=${ADDFLAGS} -L/usr/lib/i386-linux-gnu/ -lssl -lcrypto -ldl -Llib/openssl
 
+ifneq (,$(filter coverage,$(DEB_BUILD_OPTIONS)))
+    LDFLAGS += -lgcov
+    CFLAGS += -fprofile-arcs -ftest-coverage
+endif
+
+
 SRC_DIR=src
 OBJ_DIR=obj
 DEP_DIR=dep
 
-FS_SRC=$(filter-out ${SRC_DIR}/mysql--disabled.cpp,$(wildcard ${SRC_DIR}/*.cpp))
+FS_SRC=$(wildcard ${SRC_DIR}/*.cpp) $(wildcard ${SRC_DIR}/io/*.cpp) $(wildcard ${SRC_DIR}/crypto/*.cpp) $(wildcard ${SRC_DIR}/db/*.cpp)
+
 FS_BIN=$(wildcard ${SRC_DIR}/app/*.cpp)
 FS_LIBS=$(wildcard lib/*/)
 FS_OBJ=$(FS_SRC:${SRC_DIR}/%.cpp=${OBJ_DIR}/%.lo)
@@ -54,6 +61,8 @@ all: build
 .PHONY: clean
 clean::
        -rm -rf .libs
+       -rm -rf *.gcov
+       -rm -rf gcov.log
        -rm -rf *.a
        -rm -rf *.d
        -rm -rf *.o
@@ -81,6 +90,7 @@ endif
 .PHONY: install
 install: build
        ${INSTALL_PROGRAM} bin/cassiopeia ${DESTDIR}/usr/bin/cassiopeia
+       ${INSTALL_PROGRAM} bin/cassiopeia-signer ${DESTDIR}/usr/bin/cassiopeia-signer
        ${INSTALL_DIR} ${DESTDIR}/etc/cacert/cassiopeia
 
 .PHONY: libs
@@ -94,6 +104,16 @@ openssl:
 collissiondetect:
        ${MAKE} -C lib/collissiondetect
 
+.PHONY: coverage
+coverage:
+       find . -name "*.gcda" -exec rm {} + &&\
+       rm -rf coverage &&\
+       rm -rf coverage.info coverage_stripped.info &&\
+       ${MAKE} "DEB_BUILD_OPTIONS=coverage noopt" &&\
+       lcov -c --directory obj --directory test/obj --output-file coverage.info &&\
+       lcov -r coverage.info "/usr/**" -o coverage_stripped.info &&\
+       genhtml -p $(shell pwd) coverage_stripped.info --output-directory coverage
+
 # --------
 
 cassiopeia: bin/cassiopeia bin/cassiopeia-signer
@@ -102,7 +122,7 @@ bin/cassiopeia: libs ${FS_OBJ} ${OBJ_DIR}/apps/client.lo
        ${MKDIR} $(shell dirname $@) &&  ${LD} ${LDFLAGS} -lmysqlclient -o $@ ${FS_OBJ} ${OBJ_DIR}/apps/client.lo
 
 bin/cassiopeia-signer: libs ${FS_OBJ} ${OBJ_DIR}/apps/signer.lo
-       ${MKDIR} $(shell dirname $@) &&  ${LD} ${LDFLAGS} -o $@ $(filter-out ${OBJ_DIR}/mysql.lo,${FS_OBJ}) ${OBJ_DIR}/apps/signer.lo
+       ${MKDIR} $(shell dirname $@) &&  ${LD} ${LDFLAGS} -o $@ $(filter-out ${OBJ_DIR}/db/mysql.lo,${FS_OBJ}) ${OBJ_DIR}/apps/signer.lo
 
 ${DEP_DIR}/%.d: ${SRC_DIR}/%.cpp
        ${MKDIR} $(shell dirname $@) && $(CXX_DEP) $(CXXFLAGS) -M -MF $@ $<