summaryrefslogtreecommitdiff
path: root/Makefile.gcov
blob: 309be8969fdc15b7061f0ac292748546cfdadea0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
if GCOV_ENABLED

gcov: all
	@echo ""; \
	 project=`basename $(abs_srcdir)`; \
	 total_covered=0; \
	 total_actual=0; \
	 stats_length=`expr length "   9999 / 9999   100% "`; \
	 filename_width=`expr 80 - 2 - $$stats_length`; \
	 echo -e "Test coverage for $$project:\n"; \
	 for file in $(filter %.c,$(gcov_sources)); do \
		 gcov -o .libs/$${file/.c/.gcda} $$file > /dev/null; \
		 if test -f $$file.gcov; then \
		   actual=`grep -v ' -:' $$file.gcov | wc -l`; \
		   uncovered=`grep '#####:' $$file.gcov | wc -l`; \
		   covered=$$((actual - uncovered)); \
		   percent=$$((($$covered * 100) / $$actual)); \
		   total_covered=$$((total_covered + covered)); \
		   total_actual=$$((total_actual + actual)); \
		   filename=`echo $$file: | sed "s/^\.\///g"`; \
	     printf "  %-*s   %4i / %4i   %3i%%\n" $$filename_width $$filename \
	                                           $$covered $$actual $$percent; \
		 fi \
	 done; \
	 printf "\nSource statements:  %4i" $$total_actual; \
	 printf "\nCovered statements: %4i" $$total_covered; \
	 printf "\nTotal coverage:     %3i%%\n" \
	        $$((($$total_covered * 100) / $$total_actual))

else

gcov:
	@echo "You need to reconfigure with --enable-gcov"

endif	# GCOV_ENABLED

.PHONY: gcov