aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorGertjan van den Burg <burg@ese.eur.nl>2016-05-20 19:06:21 +0200
committerGertjan van den Burg <burg@ese.eur.nl>2016-05-20 19:06:21 +0200
commit7812ac6cdf0574fdfe244e6d46f16f9a025116f5 (patch)
tree4de51d6a177be1f9bc048b7a3560d3765855a553 /Makefile
parentremove superfluous dependency (diff)
downloadgensvm-7812ac6cdf0574fdfe244e6d46f16f9a025116f5.tar.gz
gensvm-7812ac6cdf0574fdfe244e6d46f16f9a025116f5.zip
add generation of coverage reports with lcov
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile21
1 files changed, 18 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 4b4fbb2..ab30f6a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,17 @@
VERSION=0.1
CC=gcc
-CFLAGS=-Wall -O3 -DVERSION=$(VERSION) -g
+CFLAGS=-Wall -DVERSION=$(VERSION) -g -O3
INCLUDE= -Iinclude
LIB= -Llib
DOXY=doxygen
DOCDIR=doc
DOXYFILE=$(DOCDIR)/Doxyfile
+LCOV=lcov
+GENHTML=genhtml
EXECS=gensvm gensvm_grid
-.PHONY: all clean doc test
+.PHONY: all clean doc test cover
all: lib/libgensvm.a $(EXECS)
@@ -22,12 +24,25 @@ doc:
$(DOXY) $(DOXYFILE)
clean:
- rm -rf $(EXECS) *.o src/*.o lib/*.a
+ rm -rf $(EXECS) *.o src/*.o lib/*.a *.{gcno,gcov} src/*.{gcno,gcda}
$(MAKE) -C tests clean
test: lib/libgensvm.a
$(MAKE) -C tests all
+cover: CFLAGS += --coverage
+cover: LDFLAGS += --coverage -lgcov
+cover: CFLAGS := $(filter-out -O3,$(CFLAGS))
+cover: lib/libgensvm.a
+ $(LCOV) -c -i -d ./src/ -o ./cover/coverage.base
+ $(MAKE) -C tests cover
+ mkdir -p cover
+ $(LCOV) -c -d ./src/ -o ./cover/coverage.run
+ $(LCOV) -a ./cover/coverage.base -a ./cover/coverage.run \
+ -o ./cover/coverage.all
+ $(GENHTML) -o ./cover ./cover/coverage.all
+ rm -f src/*.{gcda,gcno} tests/*.{gcda,gcno}
+
lib/libgensvm.a: \
src/gensvm_base.o \
src/gensvm_cmdarg.o \