aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile21
-rw-r--r--tests/Makefile7
2 files changed, 24 insertions, 4 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 \
diff --git a/tests/Makefile b/tests/Makefile
index dc5e0c5..29a181f 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -1,5 +1,5 @@
CC=gcc
-CFLAGS=-Wall -O3 -g -rdynamic -DNDEBUG $(OPTFLAGS)
+CFLAGS=-Wall -g -rdynamic -DNDEBUG $(OPTFLAGS)
INCLUDE=-I../include/ -I./include
LIB=-L../lib
@@ -22,7 +22,12 @@ valgrind:
--log-file=/tmp/valgrind-%p.log --track-origins=yes \
--show-leak-kinds=all -v" $(MAKE)
+cover: CFLAGS += --coverage
+cover: LDFLAGS += -lgcov
+cover: all
+
clean:
rm -rf $(TESTS)
rm -f ./tests.log
rm -f /tmp/valgrind*.log
+ rm -f *.gcno *.gcda *.gcov