Subject: bug#23599: [PATCH 2/2 v2] texi: define new AM_TEXI2FLAGS variable

From: Mike Frysinger <[email-masked]>
Date: Thu, 27 Jan 2022 03:12:51 -0500

To provide a bit more flexibility when invoking TEXI2DVI & TEXI2PDF,
and provide a bit of symmetry with .info & .html generation, provide
a AM_TEXI2FLAGS setting that is passed to all TEXI2xxx invocations.

* doc/automake.texi: Mention new AM_TEXI2FLAGS setting.
* lib/am/texibuild.am: Pass $(AM_TEXI2FLAGS) to TEXI2DVI & TEXI2PDF.
* NEWS: Mention AM_TEXI2FLAGS.
* t/txinfo-many-output-formats.sh: Check for AM_TEXI2FLAGS.
---
 NEWS                            | 2 ++
 doc/automake.texi               | 6 ++++--
 lib/am/texibuild.am             | 4 ++--
 t/txinfo-many-output-formats.sh | 4 ++++
 4 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/NEWS b/NEWS
index 57fd4275b8a7..f40860507707 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,8 @@ New in 1.17:
   - AM_PATH_PYTHON will also search for Python versions 3.10 - 3.15.  It has
     previously searched for 3.0 - 3.9.
 
+  - AM_TEXI2FLAGS may be defined to pass extra flags to TEXI2DVI & TEXI2PDF.
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 New in 1.16.5:
diff --git a/doc/automake.texi b/doc/automake.texi
index c94b9f528c11..df2b46dfaa12 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -8153,12 +8153,14 @@ users to pass extra flags to suit their needs.
 
 @item AM_MAKEINFOFLAGS
 @itemx AM_MAKEINFOHTMLFLAGS
+@itemx AM_TEXI2FLAGS
 Maintainer flags passed to each @command{makeinfo} invocation.  Unlike
 @code{MAKEINFOFLAGS}, these variables are meant to be defined by
 maintainers in @file{Makefile.am}.  @samp{$(AM_MAKEINFOFLAGS)} is
-passed to @code{makeinfo} when building @file{.info} files; and
+passed to @code{makeinfo} when building @file{.info} files;
 @samp{$(AM_MAKEINFOHTMLFLAGS)} is used when building @file{.html}
-files.
+files; and @samp{$(AM_TEXI2FLAGS)} is used when building @file{.dvi} and
+@file{.pdf} files.
 
 @c Keep in sync with txinfo-many-output-formats.sh
 For instance, the following setting can be used to obtain one single
diff --git a/lib/am/texibuild.am b/lib/am/texibuild.am
index c9c4f92d82cb..43e69d7b94ea 100644
--- a/lib/am/texibuild.am
+++ b/lib/am/texibuild.am
@@ -76,7 +76,7 @@ INFO_DEPS += %DEST_INFO_PREFIX%%DEST_SUFFIX%
 ## avoid hitting a Texinfo bug that could cause low-probability racy
 ## failure when doing parallel builds; see:
 ## https://lists.gnu.org/archive/html/automake-patches/2012-06/msg00073.html
-	$(TEXI2DVI) %MAKEINFOFLAGS% %TEXIQUIET% --build-dir=$(@:.dvi=.t2d) -o $@ %TEXIDEVNULL% \
+	$(TEXI2DVI) $(AM_TEXI2FLAGS) %MAKEINFOFLAGS% %TEXIQUIET% --build-dir=$(@:.dvi=.t2d) -o $@ %TEXIDEVNULL% \
 ?GENERIC?	%SOURCE%
 ?!GENERIC?	`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
 
@@ -97,7 +97,7 @@ INFO_DEPS += %DEST_INFO_PREFIX%%DEST_SUFFIX%
 ## avoid hitting a Texinfo bug that could cause low-probability racy
 ## failure when doing parallel builds; see:
 ## https://lists.gnu.org/archive/html/automake-patches/2012-06/msg00073.html
-	$(TEXI2PDF) %MAKEINFOFLAGS% %TEXIQUIET% --build-dir=$(@:.pdf=.t2p) -o $@ %TEXIDEVNULL% \
+	$(TEXI2PDF) $(AM_TEXI2FLAGS) %MAKEINFOFLAGS% %TEXIQUIET% --build-dir=$(@:.pdf=.t2p) -o $@ %TEXIDEVNULL% \
 ?GENERIC?	%SOURCE%
 ?!GENERIC?	`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
 
diff --git a/t/txinfo-many-output-formats.sh b/t/txinfo-many-output-formats.sh
index a5f795c2cc63..9903d4ef875e 100644
--- a/t/txinfo-many-output-formats.sh
+++ b/t/txinfo-many-output-formats.sh
@@ -86,6 +86,10 @@ $ACLOCAL
 $AUTOMAKE --add-missing
 $AUTOCONF
 
+# Make sure AM_TEXI2FLAGS is passed down.
+grep '\$(TEXI2DVI).*\$(AM_TEXI2FLAGS)' Makefile.in
+grep '\$(TEXI2PDF).*\$(AM_TEXI2FLAGS)' Makefile.in
+
 # To simplify syncing with sister test 'txinfo-many-output-formats.sh'
 srcdir=.
 
-- 
2.34.1