diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index bb732bb..c849162 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -776,10 +776,12 @@ clean distclean maintainer-clean: clean-coverage
 clean-coverage:
 	rm -rf coverage
 	rm -f *.gcda *.gcno lcov.info *.gcov *.gcov.out
+	rm -f lcov.info $(gcda_files) $(gcda_files:.gcda=.gcno) $(gcda_files:.gcda=.c.gcov) $(gcda_files:.gcda=.c.gcov.out)
 
 
 # User-callable target to reset counts between test runs
 coverage-clean:
 	rm -f `find . -name '*.gcda' -print`
+	rm -f $(gcda_files)
 
 endif # enable_coverage
diff --git a/src/makefiles/pgxs.mk b/src/makefiles/pgxs.mk
index 8618aa1..de13297 100644
--- a/src/makefiles/pgxs.mk
+++ b/src/makefiles/pgxs.mk
@@ -55,6 +55,7 @@ $(error pgxs error: makefile variable PGXS or NO_PGXS must be set)
 endif
 endif
 
+override gcda_files = $(OBJS:.o=.gcda)
 
 ifdef PGXS
 # We assume that we are in src/makefiles/, so top is ...
