]> WPIA git - cassiopeia.git/blobdiff - Makefile
upd: striping system lib crom coverage
[cassiopeia.git] / Makefile
index d39af3e6fcacd9ca225c243fc6f10abc904c9449..b7fc17955b179cf2fa33769502adc72027f42f1e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -36,6 +36,12 @@ 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
@@ -55,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
@@ -96,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