On Mon, Aug 05, 2024 at 05:15:21PM +0200, Patrice Dumas wrote: > On Mon, Aug 05, 2024 at 01:41:37PM +0200, Bruno Haible wrote: > > Hi Gavin, > > > > 2) "make distcheck" fails. (Reported by the weekly CI. It was fine a week > > ago.) > > Thanks for the report. > > Regarding the patch, the change related to ModulePath.pm is incorrect, > ModulePath.pm should be in builddir and we do not distribute it. > > For the main change, your approach is correct, but it can also be done > more simply without having to list and copy all the result files by > changing the --subdir such that the files are only generated in srcdir. > I attach a patch.
One problem with this (and other patches) is that the dependency on Texinfo/ModulePath.pm leads the rule to fire a lot more often than it would have otherwise. ModulePath.pm will always be regenerated after each time configure is run, but texi2any_internals.texi does not need to be. Hence the need in Bruno's patch to check if the file actually changed before copying to srcdir. Still, this was not ideal as the file would be rebuilt unnecessarily. I suggest that a rule to rebuild this file could check if ModulePath.pm exists, but that ModulePath.pm not be actually a Makefile dependency so that it on its own does not lead texi2any_internals.texi to be rebuilt. There will be the same issue for the other uses of pod2texi in the build system to build manuals. > diff --git a/doc/tp_api/Makefile.am b/doc/tp_api/Makefile.am > index c6124d4623..fb3a48531a 100644 > --- a/doc/tp_api/Makefile.am > +++ b/doc/tp_api/Makefile.am > @@ -83,7 +83,7 @@ $(top_builddir)/tp/Texinfo/ModulePath.pm: > cd $(top_builddir)/tp && $(MAKE) $(AM_MAKEFLAGS) Texinfo/ModulePath.pm > > texi2any_internals.texi: $(texi2any_internals_dependencies) > texi2any_internals_indices.texi texi2any_internals_preamble.texi > $(top_builddir)/tp/Texinfo/ModulePath.pm > - if $(MAKEINFO_ENVIRONMENT) $(PERL) -I > $(top_srcdir)/Pod-Simple-Texinfo/lib/ > $(top_srcdir)/Pod-Simple-Texinfo/pod2texi.pl --base-level=section --preamble > - --subdir=api_includes $(texi2any_internals_dependencies) < > $(srcdir)/texi2any_internals_preamble.texi >$@.tmp ; then \ > + if $(MAKEINFO_ENVIRONMENT) $(PERL) -I > $(top_srcdir)/Pod-Simple-Texinfo/lib/ > $(top_srcdir)/Pod-Simple-Texinfo/pod2texi.pl --base-level=section --preamble > - --subdir=$(srcdir)/api_includes $(texi2any_internals_dependencies) < > $(srcdir)/texi2any_internals_preamble.texi >$@.tmp ; then \ > cat $@.tmp | sed -e 's/^@bye/@__bye/' | sed -e '/^@__bye/r > $(srcdir)/texi2any_internals_indices.texi' | sed -e 's/^@__bye//' > $@ ; \ > fi ; rm -f $@.tmp >