From 0e4896d53e1bb282b7bafb7909b4b845d9f853dd Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <peter_e@gmx.net> Date: Fri, 3 Oct 2008 15:35:17 +0000 Subject: [PATCH] Fix coverage targets so that HTML view is reliably updated when test data changes. Add some documenting comments. --- src/Makefile.global.in | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/Makefile.global.in b/src/Makefile.global.in index def667a1039..f5ca618400a 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -1,5 +1,5 @@ # -*-makefile-*- -# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.243 2008/09/05 12:11:18 petere Exp $ +# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.244 2008/10/03 15:35:17 petere Exp $ #------------------------------------------------------------------------------ # All PostgreSQL makefiles include this file and use the variables it sets, @@ -592,6 +592,20 @@ endif # enable_nls # # Coverage +# Explanation of involved files: +# foo.c source file +# foo.o object file +# foo.gcno gcov graph (a.k.a. "notes") file, created at compile time +# (by gcc -ftest-coverage) +# foo.gcda gcov data file, created when the program is run (for +# programs compiled with gcc -fprofile-arcs) +# foo.c.gcov gcov output file with coverage information, created by +# gcov from foo.gcda (by "make coverage") +# foo.c.gcov.out stdout captured when foo.c.gcov is created, mildly +# interesting +# lcov.info lcov tracefile, built from gcda files in one directory, +# later collected by "make coverage-html" + ifeq ($(enable_coverage), yes) # There is a strange interaction between lcov and existing .gcov @@ -599,11 +613,9 @@ ifeq ($(enable_coverage), yes) gcda_files := $(wildcard *.gcda) -lcov.info: +lcov.info: $(gcda_files) rm -f *.gcov -ifneq (,$(gcda_files)) - $(LCOV) -d . -c -o $@ $(LCOVFLAGS) -endif + $(if $^,$(LCOV) -d . -c -o $@ $(LCOVFLAGS)) %.c.gcov: %.gcda | lcov.info $(GCOV) -b -f -p -o . $(GCOVFLAGS) $*.c >$*.c.gcov.out -- GitLab