gbranden pushed a commit to branch master
in repository groff.

commit afe3b8cdf9890b3faf48447fc8b5e01e561299ee
Author: G. Branden Robinson <[email protected]>
AuthorDate: Fri Jan 16 19:35:39 2026 -0600

    Makefile.am: Add "coverage" target.
    
    Crib gnulib's coverage generation from its "maint.mk" file.  This way
    developers can run "make coverage" to produce a code coverage report.
    Requires "lcov" package.
    
    * Makefile.am: Define macros `COVERAGE_CCOPTS` and `COVERAGE_OUT`.
      (init-coverage, build-coverage, gen-coverage, coverage): Define new
      (phony) target rules.
    
    No update to copyright notice; this stuff was committed to gnulib from
    2008-2017, wholly within the date range of our existing FSF notice.  (I
    wrapped some long lines and migrated to `$(MKDIR_P)`.)
---
 ChangeLog   | 11 +++++++++++
 Makefile.am | 30 ++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 9e2c8be55..859a22a54 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2026-01-16  G. Branden Robinson <[email protected]>
+
+       Crib gnulib's coverage generation from its "maint.mk" file.
+       This way developers can run "make coverage" to produce a code
+       coverage report.  Requires "lcov" package.
+
+       * Makefile.am: Define macros `COVERAGE_CCOPTS` and
+       `COVERAGE_OUT`.
+       (init-coverage, build-coverage, gen-coverage, coverage): Define
+       new (phony) target rules.
+
 2026-01-18  Deri James  <[email protected]>
 
        * src/devices/gropdf/gropdf.pl (.pdf*href): For external
diff --git a/Makefile.am b/Makefile.am
index ef3754845..db9362e43 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -877,6 +877,36 @@ $(top_srcdir)/.version:
 dist-hook:
        echo $(VERSION) > $(distdir)/.tarball-version
 
+# maintainer-mode targets
+
+init-coverage:
+       $(MAKE) $(AM_MAKEFLAGS) clean
+       lcov --directory . --zerocounters
+
+COVERAGE_CCOPTS ?= "-g --coverage"
+COVERAGE_OUT ?= doc/coverage
+
+build-coverage:
+       $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) \
+         CXXFLAGS=$(COVERAGE_CCOPTS)
+       $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) \
+         CXXFLAGS=$(COVERAGE_CCOPTS) check
+       $(MKDIR_P) $(COVERAGE_OUT)
+       lcov --directory . --output-file \
+         $(COVERAGE_OUT)/$(PACKAGE).info --capture
+
+gen-coverage:
+       genhtml --output-directory $(COVERAGE_OUT) \
+         $(COVERAGE_OUT)/$(PACKAGE).info \
+         --frames --legend \
+         --title "$(PACKAGE_NAME)"
+
+coverage:
+       $(MAKE) init-coverage
+       $(MAKE) build-coverage
+       $(MAKE) gen-coverage
+
+
 # Local Variables:
 # fill-column: 72
 # mode: makefile-automake

_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to