Hi Bruno,

At 2026-07-31T23:55:09+0200, Bruno Haible wrote:
> G. Branden Robinson wrote:
> > > cp: cannot stat './doc/gnu.png': No such file or directory
> > > cp: cannot stat './doc/line-layout.png': No such file or directory
> > > make: *** [Makefile:20050: doc/groff.html] Error 1
> > > 
> > > If I need to use either "make -k" or "./configure
> > > --enable-maintainer-mode", there's something wrong with the build
> > > system. (I am not a maintainer of groff.)
> > 
> > We've documented that you _do_ need to `--enable-maintainer-mode` to
> > build groff from Git.
> 
> From the AM_MAINTAINER_MODE documentation [1], it is clear that it is
> meant for the case of re-building files that are under version
> control.

Acknowledged.

> I would argue that if a file is *not* under version control and is
> needed by other targets, its rule should be enabled, regardless of
> --enable-maintainer-mode or not.

Here's the problem.  Maybe you know of a better solution.

We include these PNG files in our Texinfo manual.

$ git grep @image doc/groff.texi.in
doc/groff.texi.in:@center @image{line-layout,4in,,line layout diagram,.png}
doc/groff.texi.in:@center @image{gnu,1in,,A wildebeest happily regards a 
Gutenberg press.,.png}

The rendered forms of our Texinfo manual are in our distribution
archive (EXTRA_DIST).

We also include these PNG files in various groff-generated documents
that _aren't_ in our distribution archive.

And we support both in-tree and out-of-tree builds.

Upon making these seemingly small changes to our Texinfo manual, I ran
into the same difficulties Dimitris Papavasiliou reported today on the
help-texinfo list.

https://lists.gnu.org/archive/html/help-texinfo/2026-07/msg00000.html

[Dimitris: Here's how I solved it, but this Automake file is not for the
faint of heart.  :(

https://cgit.git.savannah.gnu.org/cgit/groff.git/tree/doc/doc.am ]

Officially using maintainer mode is a very recent, post-rc1 change.

commit e2cd638955de3d8fb664529e76ff41bdc31a102e
Author: G. Branden Robinson <[email protected]>
Date:   Sun Jul 19 08:38:32 2026 -0500

    doc/doc.am: Employ `MAINTAINER_MODE`.

    Use GNU Automake's "maintainer mode" to manage maintainer-mode targets.

    * configure.ac: Interpolate `AM_MAINTAINER_MODE` macro with "disable"
      argument.

    * bootstrap: Note necessity of running the "configure" script with
      `--enable-maintainer-mode` (when building from groff's Git
      repository).

    * doc/doc.am: Add targets produced only in maintainer mode to the
      `MAINTAINERCLEANFILES` macro.

      ($(DOC_GNU_EPS)):
      ($(DOC_GNU_PNG)):
      ($(DOC_LINE_LAYOUT_EPS)):
      ($(DOC_LINE_LAYOUT_PNG)): Bracket existing target rules in
      `MAINTAINER_MODE` Automake conditional.  Add `else` branch defining
      them with empty recipes for non-maintainer mode.

    Fixes excessive build dependencies imposed on distribution archives.
    Thanks to Alexis Hildebrandt for the report in
    <https://lists.gnu.org/archive/html/groff/2026-07/msg00010.html>.

Does GNU Automake support a better method of satisfying our
requirements?

Regards,
Branden

Attachment: signature.asc
Description: PGP signature

  • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
    • ... G. Branden Robinson
      • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
        • ... G. Branden Robinson
          • ... Bruno Haible via discussion of the GNU roff typesetting system and related software

Reply via email to