Directly invoking make coverage-report as a target results in an error because its prerequisites are missing, This patch adds the compile-test prerequisite, which is run only once each time the compile-report target is invoked. In practice, the developer may decide to review the coverage-report results without necessarily rerunning for this coverage-test, if it has already been run. Signed-off-by: Elia Pinto <gitter.spiros@xxxxxxxxx> --- This is the third revision of the patch. Compared to the second: - deleted the Makefile coverage-test.file variable, replaced directly by the coverage-test.made file - added in coverage-compile as last command the touch of coverage-test.made, so that even if coverage-test is run first, invoking indirectly it by the first coverage-report does not call coverage-test and so the test suite gain. Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f8bccfab5e..d6ae228c74 100644 --- a/Makefile +++ b/Makefile @@ -3407,6 +3407,7 @@ coverage-clean-results: $(RM) coverage-untested-functions $(RM) -r cover_db/ $(RM) -r cover_db_html/ + $(RM) coverage-test.made coverage-clean: coverage-clean-results $(RM) $(addsuffix *.gcno,$(object_dirs)) @@ -3421,13 +3422,18 @@ coverage-compile: coverage-test: coverage-clean-results coverage-compile $(MAKE) CFLAGS="$(COVERAGE_CFLAGS)" LDFLAGS="$(COVERAGE_LDFLAGS)" \ DEFAULT_TEST_TARGET=test -j1 test + touch coverage-test.made + +coverage-test.made: + @make coverage-test + touch coverage-test.made coverage-prove: coverage-clean-results coverage-compile $(MAKE) CFLAGS="$(COVERAGE_CFLAGS)" LDFLAGS="$(COVERAGE_LDFLAGS)" \ DEFAULT_TEST_TARGET=prove GIT_PROVE_OPTS="$(GIT_PROVE_OPTS) -j1" \ -j1 test -coverage-report: +coverage-report: coverage-test.made $(QUIET_GCOV)for dir in $(object_dirs); do \ $(GCOV) $(GCOVFLAGS) --object-directory=$$dir $$dir*.c || exit; \ done -- 2.35.1