@@ -8,29 +8,41 @@ GCOV=gcov
88# # paths
99HTML =html/index.html
1010SRCDIR =../src
11+ MODDIR =../modules
12+
1113# # we get direct information about modification time
1214# # note: I do not like wildcard, but could not find better solution
1315SOURCES =$(wildcard $(SRCDIR ) /* .c)
1416HEADERS =$(wildcard $(SRCDIR ) /* .h)
1517OBJS =$(addprefix src/, $(notdir $(SOURCES:.c=.o ) ) )
16- GCDA=$(OBJS:.o =.gcda)
17- GCNO=$(OBJS:.o =.gcno)
18+
19+ SOURCES_UTILS =$(wildcard $(SRCDIR ) /utils/* .c)
20+ HEADERS_UTILS =$(wildcard $(SRCDIR ) /utils/* .h)
21+ OBJS_UTILS =$(addprefix src/utils/, $(notdir $(SOURCES_UTILS:.c=.o ) ) )
22+
23+ SOURCES_MODULES =$(wildcard $(MODDIR ) /* .c)
24+ HEADERS_MODULES =$(wildcard $(MODDIR ) /* .h)
25+ OBJS_MODULES =$(addprefix modules/, $(notdir $(SOURCES_MODULES:.c=.o ) ) )
26+
27+ GCDA=$(OBJS:.o =.gcda) $(OBJS_UTILS:.o=.gcda ) $(OBJS_MODULES:.o=.gcda )
28+ GCNO=$(OBJS:.o =.gcno) $(OBJS_UTILS:.o=.gcno ) $(OBJS_MODULES:.o=.gcda )
29+
1830GCDA_EXIST := $(foreach gcda,$(GCDA ) ,$(wildcard $(gcda ) ) )
19- # $(info $$GCDA = $(GCDA))
20- # $(info $$GCDA_EXIST = $(GCDA_EXIST))
31+ GCNO_EXIST := $(foreach gcno,$(GCNO ) ,$(wildcard $(gcno ) ) )
32+
33+ $(info $$GCNO = $(GCNO))
34+ $(info $$GCNO_EXIST = $(GCNO_EXIST))
2135
2236all : $(HTML )
2337
2438gcov : testrun
2539 $(MAKE ) -f $(SELF_MKFILE ) _gcov
2640
27- _gcov : $(GCNO:%.gcno=%.c.gcov )
28-
29- % .c.gcov : % .gcno
30- cd src; $(GCOV ) -wrabcfu -s ../.. -o $(notdir $< ) $(notdir $(@:.gcov= ) )
31-
32- # src/%.gcda: testrun
41+ _gcov : $(GCNO_EXIST:%.gcno=%.c.gcov )
3342
43+ src/% .c.gcov : src/% .gcno
44+ cd src && $(GCOV ) -wrabcfu -s ../.. $(<:src/%.gcno=%.o )
45+ [ -f $@ ] || mv src/$(notdir $@ ) $@
3446
3547$(HTML ) : $(PROJ ) .info
3648 genhtml -s --branch-coverage $(PROJ ) .info --output-directory $(dir $(HTML ) )
@@ -41,7 +53,6 @@ $(PROJ).info: $(PROJ).pre.info
4153$(PROJ ) .pre.info : $(PROJ ) .base.info $(PROJ ) .test.info
4254 lcov --rc lcov_branch_coverage=1 -a $(PROJ ) .base.info -a $(PROJ ) .test.info -o $@
4355
44- # $(PROJ).base.info: src/lib$(PROJ).a
4556$(PROJ ) .base.info : testrun
4657 lcov -z -d src
4758 lcov --rc lcov_branch_coverage=1 -c -i -d src -o $@
@@ -51,10 +62,6 @@ $(PROJ).test.info: $(PROJ).base.info
5162 lcov --rc lcov_branch_coverage=1 -c -d src -o $@
5263
5364
54- # source: Makefile FORCE
55- # $(MAKE) -C src
56-
57- # testrun: source FORCE
5865testrun : tests/Makefile FORCE
5966 $(MAKE ) -C tests check
6067
@@ -80,4 +87,3 @@ distclean: clean
8087 rm -rf tests
8188
8289.PHONY : clean distclean source testrun gcov _gcov
83-
0 commit comments