BUILD_INFO is currently a byproduct of checking makeinfo
presence/version.  INSTALL_INFO used to be defined similarly, but was
removed in 2000 (!) by commit 17db658241d18cf6db59d31bc2d6eac96e9257df
(svn r38141).

In order to save build time, our CI overrides BUILD_INFO="", which
works when invoking 'make all' but not for 'make install' in case some
info files need an update.

I noticed this when testing a patch posted on the gcc-patches list,
leading to an error at 'make install' time after updating tm.texi (the
build reported 'new text' in tm.texi and stopped).  This is because
'install' depends on 'install-info', which depends on
$(DESTDIR)$(infodir)/gccint.info (among others).

This patch replaces the 'install-info' dependency in 'install' with
$(INSTALL_INFO), thus enabling to skip this step.

2024-02-01  Christophe Lyon  <christophe.l...@linaro.org>

        gcc/
        * Makefile.in: Add INSTALL_INFO.
        * configure.ac: Add INSTALL_INFO.
        * configure: Regenerate.
---
 gcc/Makefile.in  | 3 ++-
 gcc/configure    | 3 +++
 gcc/configure.ac | 3 +++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 95caa54a52b..4d38b162307 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -817,6 +817,7 @@ INSTALL_HEADERS=install-headers install-mkheaders
 
 # Control whether Info documentation is built and installed.
 BUILD_INFO = @BUILD_INFO@
+INSTALL_INFO = @INSTALL_INFO@
 
 # Control flags for @contents placement in HTML output
 MAKEINFO_TOC_INLINE_FLAG = @MAKEINFO_TOC_INLINE_FLAG@
@@ -3785,7 +3786,7 @@ maintainer-clean:
 # Install the driver last so that the window when things are
 # broken is small.
 install: install-common $(INSTALL_HEADERS) \
-    install-cpp install-man install-info install-@POSUB@ \
+    install-cpp install-man $(INSTALL_INFO) install-@POSUB@ \
     install-driver install-lto-wrapper install-gcc-ar
 
 ifeq ($(enable_plugin),yes)
diff --git a/gcc/configure b/gcc/configure
index 4acb254d830..00f8c7ed6fb 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -826,6 +826,7 @@ FLEX
 GENERATED_MANPAGES
 MAKEINFO_TOC_INLINE_FLAG
 BUILD_INFO
+INSTALL_INFO
 MAKEINFO
 have_mktemp_command
 make_compare_target
@@ -8836,8 +8837,10 @@ $as_echo "$as_me: WARNING:
 *** Makeinfo is missing or too old.
 *** Info documentation will not be built." >&2;}
   BUILD_INFO=
+  INSTALL_INFO=
 else
   BUILD_INFO=info
+  INSTALL_INFO=install-info
 fi
 
 
diff --git a/gcc/configure.ac b/gcc/configure.ac
index d2ed14496c1..1041c2391fb 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1246,10 +1246,13 @@ if test $gcc_cv_prog_makeinfo_modern = no; then
 *** Makeinfo is missing or too old.
 *** Info documentation will not be built.])
   BUILD_INFO=
+  INSTALL_INFO=
 else
   BUILD_INFO=info
+  INSTALL_INFO=install-info
 fi
 AC_SUBST(BUILD_INFO)
+AC_SUBST(INSTALL_INFO)
 
 # Determine whether makeinfo supports the CONTENTS_OUTPUT_LOCATION variable.
 # If it does, we want to pass it to makeinfo in order to restore the old
-- 
2.34.1

Reply via email to