# DP: Allow transformations on info file names. Reference the
# DP: transformed info file names in the texinfo files.


2004-02-17  Matthias Klose  <doko@debian.org>

gcc/ChangeLog:
	* Makefile.in: Allow transformations on info file names.
	Define MAKEINFODEFS, macros to pass transformated info file
	names to makeinfo.
	* doc/cpp.texi: Use macros defined in MAKEINFODEFS for references.
	* doc/cppinternals.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/gcc.texi: Likewise.
	* doc/gccint.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/libgcc.texi: Likewise.
	* doc/makefile.texi: Likewise.
	* doc/passes.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/standards.texi: Likewise.
	* doc/trouble.texi: Likewise.

gcc/fortran/ChangeLog:
	* Make-lang.in: Allow transformations on info file names.
	Pass macros of transformated info file defined in MAKEINFODEFS
	names to makeinfo.
	* gfortran.texi: Use macros defined in MAKEINFODEFS for references.

gcc/java/ChangeLog:
	* Make-lang.in: Allow transformations on info file names.
	Pass macros of transformated info file defined in MAKEINFODEFS

--- a/src/gcc/fortran/gfortran.texi
+++ b/src/gcc/fortran/gfortran.texi
@@ -101,7 +101,7 @@
 @ifinfo
 @dircategory Software development
 @direntry
-* gfortran: (gfortran).                  The GNU Fortran Compiler.
+* @value{fngfortran}: (@value{fngfortran}).                  The GNU Fortran Compiler.
 @end direntry
 This file documents the use and the internals of
 the GNU Fortran compiler, (@command{gfortran}).
--- a/src/gcc/fortran/Make-lang.in
+++ b/src/gcc/fortran/Make-lang.in
@@ -116,7 +116,8 @@
 	cd $(srcdir)/fortran; etags -o TAGS.sub *.c *.h; \
 	etags --include TAGS.sub --include ../TAGS.sub
 
-fortran.info: doc/gfortran.info doc/gfc-internals.info
+INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)')
+fortran.info: doc/$(INFO_FORTRAN_NAME).info
 fortran.dvi: doc/gfortran.dvi doc/gfc-internals.dvi
 
 F95_HTMLFILES = $(build_htmldir)/gfortran
@@ -185,10 +186,10 @@
   $(srcdir)/doc/include/gcc-common.texi \
   gcc-vers.texi
 
-doc/gfortran.info: $(GFORTRAN_TEXI)
+doc/$(INFO_FORTRAN_NAME).info: $(GFORTRAN_TEXI)
 	if [ x$(BUILD_INFO) = xinfo ]; then \
 	  rm -f doc/gfortran.info-*; \
-	  $(MAKEINFO) -I $(srcdir)/doc/include -I $(srcdir)/fortran \
+	  $(MAKEINFO) $(MAKEINFODEFS) -I $(srcdir)/doc/include -I $(srcdir)/fortran \
 	    -o $@ $<; \
 	else true; fi
 
@@ -256,7 +257,7 @@
 
 fortran.install-plugin:
 
-fortran.install-info: $(DESTDIR)$(infodir)/gfortran.info
+fortran.install-info: $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info
 
 fortran.install-man: $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext)
 
@@ -274,7 +275,7 @@
 	rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \
 	rm -rf $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext); \
 	rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_TARGET_INSTALL_NAME)$(exeext); \
-	rm -rf $(DESTDIR)$(infodir)/gfortran.info*
+	rm -rf $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info*
 
 #
 # Clean hooks:
--- a/src/gcc/Makefile.in
+++ b/src/gcc/Makefile.in
@@ -4184,8 +4184,27 @@
 
 doc: $(BUILD_INFO) $(GENERATED_MANPAGES)
 
-INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \
-            doc/gccinstall.info doc/cppinternals.info
+INFO_CPP_NAME = $(shell echo cpp|sed '$(program_transform_name)')
+INFO_GCC_NAME = $(shell echo gcc|sed '$(program_transform_name)')
+INFO_GXX_NAME = $(shell echo g++|sed '$(program_transform_name)')
+INFO_GCCINT_NAME = $(shell echo gccint|sed '$(program_transform_name)')
+INFO_GCCINSTALL_NAME = $(shell echo gccinstall|sed '$(program_transform_name)')
+INFO_CPPINT_NAME = $(shell echo cppinternals|sed '$(program_transform_name)')
+
+INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)')
+INFO_GCJ_NAME = $(shell echo gcj|sed '$(program_transform_name)')
+
+INFOFILES = doc/$(INFO_CPP_NAME).info doc/$(INFO_GCC_NAME).info \
+            doc/$(INFO_GCCINT_NAME).info \
+            doc/$(INFO_GCCINSTALL_NAME).info doc/$(INFO_CPPINT_NAME).info
+
+MAKEINFODEFS = -D 'fncpp $(INFO_CPP_NAME)' -D 'fngcc $(INFO_GCC_NAME)' \
+               -D 'fngxx $(INFO_GXX_NAME)' \
+               -D 'fngccint $(INFO_GCCINT_NAME)' \
+               -D 'fngccinstall $(INFO_GCCINSTALL_NAME)' \
+               -D 'fncppint $(INFO_CPPINT_NAME)' \
+               -D 'fngfortran $(INFO_FORTRAN_NAME)' \
+               -D 'fngcj $(INFO_GCJ_NAME)'
 
 info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo
 
@@ -4239,21 +4258,41 @@
 # patterns.  To use them, put each of the specific targets with its
 # specific dependencies but no build commands.
 
-doc/cpp.info: $(TEXI_CPP_FILES)
-doc/gcc.info: $(TEXI_GCC_FILES)
-doc/gccint.info: $(TEXI_GCCINT_FILES)
-doc/cppinternals.info: $(TEXI_CPPINT_FILES)
-
+# Generic entry to handle info files, which are not renamed (currently Ada)
 doc/%.info: %.texi
 	if [ x$(BUILD_INFO) = xinfo ]; then \
 		$(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
 			-I $(gcc_docdir)/include -o $@ $<; \
 	fi
 
+doc/$(INFO_CPP_NAME).info: $(TEXI_CPP_FILES)
+	if [ x$(BUILD_INFO) = xinfo ]; then \
+		$(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+			-I $(gcc_docdir)/include -o $@ $<; \
+	fi
+
+doc/$(INFO_GCC_NAME).info: $(TEXI_GCC_FILES)
+	if [ x$(BUILD_INFO) = xinfo ]; then \
+		$(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+			-I $(gcc_docdir)/include -o $@ $<; \
+	fi
+
+doc/$(INFO_GCCINT_NAME).info: $(TEXI_GCCINT_FILES)
+	if [ x$(BUILD_INFO) = xinfo ]; then \
+		$(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+			-I $(gcc_docdir)/include -o $@ $<; \
+	fi
+
+doc/$(INFO_CPPINT_NAME).info: $(TEXI_CPPINT_FILES)
+	if [ x$(BUILD_INFO) = xinfo ]; then \
+		$(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+			-I $(gcc_docdir)/include -o $@ $<; \
+	fi
+
 # Duplicate entry to handle renaming of gccinstall.info
-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
+doc/$(INFO_GCCINSTALL_NAME).info: $(TEXI_GCCINSTALL_FILES)
 	if [ x$(BUILD_INFO) = xinfo ]; then \
-		$(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
+		$(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
 			-I $(gcc_docdir)/include -o $@ $<; \
 	fi
 
@@ -4607,11 +4646,11 @@
 # $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
 # to do the install.
 install-info:: doc installdirs \
-	$(DESTDIR)$(infodir)/cpp.info \
-	$(DESTDIR)$(infodir)/gcc.info \
-	$(DESTDIR)$(infodir)/cppinternals.info \
-	$(DESTDIR)$(infodir)/gccinstall.info \
-	$(DESTDIR)$(infodir)/gccint.info \
+	$(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info \
+	$(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info \
+	$(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info \
+	$(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info \
+	$(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info \
 	lang.install-info
 
 $(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
@@ -4803,8 +4842,11 @@
 	-rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext)
 	-rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext)
 	-rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext)
-	-rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info*
-	-rm -f $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info*
+	-rm -f $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info*
+	-rm -f $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info*
+	-rm -f $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info*
+	-rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info*
+	-rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info*
 #
 # These targets are for the dejagnu testsuites. The file site.exp
 # contains global variables that all the testsuites will use.
--- a/src/gcc/java/gcj.texi
+++ b/src/gcc/java/gcj.texi
@@ -55,25 +55,25 @@
 @format
 @dircategory Software development
 @direntry
-* Gcj: (gcj).               Ahead-of-time compiler for the Java language
+* @value{fngcj}: (@value{fngcj}).               Ahead-of-time compiler for the Java language
 @end direntry
 
 @dircategory Individual utilities
 @direntry
-* jcf-dump: (gcj)Invoking jcf-dump.
+* jcf-dump: (@value{fngcj}) Invoking jcf-dump.
                             Print information about Java class files
-* gij: (gcj)Invoking gij.   GNU interpreter for Java bytecode
-* gcj-dbtool: (gcj)Invoking gcj-dbtool.
+* gij: (@value{fngcj}) Invoking gij.   GNU interpreter for Java bytecode
+* gcj-dbtool: (@value{fngcj}) Invoking gcj-dbtool.
                             Tool for manipulating class file databases.
-* jv-convert: (gcj)Invoking jv-convert.
+* jv-convert: (@value{fngcj}) Invoking jv-convert.
                             Convert file from one encoding to another
-* grmic: (gcj)Invoking grmic.
+* grmic: (@value{fngcj}) Invoking grmic.
                             Generate stubs for Remote Method Invocation.
-* gc-analyze: (gcj)Invoking gc-analyze.
+* gc-analyze: (@value{fngcj}) Invoking gc-analyze.
                             Analyze Garbage Collector (GC) memory dumps.
-* aot-compile: (gcj)Invoking aot-compile.
+* aot-compile: (@value{fngcj})Invoking aot-compile.
                             Compile bytecode to native and generate databases.
-* rebuild-gcj-db: (gcj)Invoking rebuild-gcj-db.
+* rebuild-gcj-db: (@value{fngcj})Invoking rebuild-gcj-db.
                             Merge the per-solib databases made by aot-compile
                             into one system-wide database.
 @end direntry
@@ -159,7 +159,7 @@
 
 As @command{gcj} is just another front end to @command{gcc}, it supports many
 of the same options as gcc.  @xref{Option Summary, , Option Summary,
-gcc, Using the GNU Compiler Collection (GCC)}.  This manual only documents the
+@value{fngcc}, Using the GNU Compiler Collection (GCC)}.  This manual only documents the
 options specific to @command{gcj}.
 
 @c man end
--- a/src/gcc/java/Make-lang.in
+++ b/src/gcc/java/Make-lang.in
@@ -127,11 +127,23 @@
 	etags --include TAGS.sub --include ../TAGS.sub
 
 
-java.info: doc/gcj.info
+TEXI_GCJ_FILES = java/gcj.texi \
+		 $(gcc_docdir)/include/gpl.texi $(gcc_docdir)/include/funding.texi \
+		 $(gcc_docdir)/include/fdl.texi $(gcc_docdir)/include/gcc-common.texi gcc-vers.texi
+INFO_GCJ_NAME = $(shell echo gcj|sed '$(program_transform_name)')
 
-java.srcinfo: doc/gcj.info
+java.info: doc/$(INFO_GCJ_NAME).info
+
+java.srcinfo: doc/$(INFO_GCJ_NAME).info
 	-cp -p $^ $(srcdir)/doc
 
+doc/$(INFO_GCJ_NAME).info: $(TEXI_GCJ_FILES)
+	if test "x$(BUILD_INFO)" = xinfo; then \
+	  rm -f $(@)*; \
+	  $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) \
+	    -I$(gcc_docdir)/include -I$(srcdir)/f -o$@ $<; \
+	fi
+
 java.dvi: doc/gcj.dvi
 
 JAVA_PDFFILES = doc/gcj.pdf
@@ -195,7 +207,7 @@
 	-rm -rf $(DESTDIR)$(man1dir)/aot-compile$(man1ext)
 	-rm -rf $(DESTDIR)$(man1dir)/rebuild-gcj-db$(man1ext)
 
-java.install-info: $(DESTDIR)$(infodir)/gcj.info
+java.install-info: $(DESTDIR)$(infodir)/$(INFO_GCJ_NAME).info
 
 java.install-pdf: $(JAVA_PDFFILES)
 	@$(NORMAL_INSTALL)
--- a/src/gcc/ada/gnat-style.texi
+++ b/src/gcc/ada/gnat-style.texi
@@ -31,7 +31,7 @@
 
 @dircategory Software development
 @direntry
-* gnat-style: (gnat-style).      GNAT Coding Style
+* gnat-style: (gnat-style-4.6).      GNAT Coding Style
 @end direntry
 
 @macro syntax{element}
--- a/src/gcc/ada/gnat_rm.texi
+++ b/src/gcc/ada/gnat_rm.texi
@@ -38,7 +38,7 @@
 
 @dircategory GNU Ada tools
 @direntry
-* GNAT Reference Manual: (gnat_rm).  Reference Manual for GNU Ada tools.
+* GNAT Reference Manual: (gnat_rm-4.6).  Reference Manual for GNU Ada tools.
 @end direntry
 
 @titlepage
--- a/src/gcc/doc/invoke.texi
+++ b/src/gcc/doc/invoke.texi
@@ -9061,7 +9061,7 @@
 @option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines
 that GCC uses to overcome shortcomings of particular machines, or special
 needs for some languages.
-(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler
+(@xref{Interface,,Interfacing to GCC Output,@value{fngccint},GNU Compiler
 Collection (GCC) Internals},
 for more discussion of @file{libgcc.a}.)
 In most cases, you need @file{libgcc.a} even when you want to avoid
@@ -9069,7 +9069,7 @@
 or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well.
 This ensures that you have no unresolved references to internal GCC
 library subroutines.  (For example, @samp{__main}, used to ensure C++
-constructors will be called; @pxref{Collect2,,@code{collect2}, gccint,
+constructors will be called; @pxref{Collect2,,@code{collect2}, @value{fngccint},
 GNU Compiler Collection (GCC) Internals}.)
 
 @item -pie
@@ -18314,7 +18314,7 @@
 @option{-B}, @option{-I} and @option{-L} (@pxref{Directory Options}).  These
 take precedence over places specified using environment variables, which
 in turn take precedence over those specified by the configuration of GCC@.
-@xref{Driver,, Controlling the Compilation Driver @file{gcc}, gccint,
+@xref{Driver,, Controlling the Compilation Driver @file{gcc}, @value{fngccint},
 GNU Compiler Collection (GCC) Internals}.
 
 @table @env
@@ -18469,7 +18469,7 @@
 
 A precompiled header file will be searched for when @code{#include} is
 seen in the compilation.  As it searches for the included file
-(@pxref{Search Path,,Search Path,cpp,The C Preprocessor}) the
+(@pxref{Search Path,,Search Path,@value{fncpp},The C Preprocessor}) the
 compiler looks for a precompiled header in each directory just before it
 looks for the include file in that directory.  The name searched for is
 the name specified in the @code{#include} with @samp{.gch} appended.  If
--- a/src/gcc/doc/extend.texi
+++ b/src/gcc/doc/extend.texi
@@ -13684,7 +13684,7 @@
 test for the GNU compiler the same way as for C programs: check for a
 predefined macro @code{__GNUC__}.  You can also use @code{__GNUG__} to
 test specifically for GNU C++ (@pxref{Common Predefined Macros,,
-Predefined Macros,cpp,The GNU C Preprocessor}).
+Predefined Macros,@value{fncpp},The GNU C Preprocessor}).
 
 @menu
 * C++ Volatiles::       What constitutes an access to a volatile object.
--- a/src/gcc/doc/standards.texi
+++ b/src/gcc/doc/standards.texi
@@ -287,8 +287,8 @@
 GNAT Reference Manual}, for information on standard
 conformance and compatibility of the Ada compiler.
 
-@xref{Standards,,Standards, gfortran, The GNU Fortran Compiler}, for details
+@xref{Standards,,Standards, @value{fngfortran}, The GNU Fortran Compiler}, for details
 of standards supported by GNU Fortran.
 
-@xref{Compatibility,,Compatibility with the Java Platform, gcj, GNU gcj},
+@xref{Compatibility,,Compatibility with the Java Platform, @value{fngcj}, GNU gcj},
 for details of compatibility between @command{gcj} and the Java Platform.
--- a/src/gcc/doc/libgcc.texi
+++ b/src/gcc/doc/libgcc.texi
@@ -25,7 +25,7 @@
 GCC will also generate calls to C library routines, such as
 @code{memcpy} and @code{memset}, in some cases.  The set of routines
 that GCC may possibly use is documented in @ref{Other
-Builtins,,,gcc, Using the GNU Compiler Collection (GCC)}.
+Builtins,,,@value{fngcc}, Using the GNU Compiler Collection (GCC)}.
 
 These routines take arguments and return values of a specific machine
 mode, not a specific C type.  @xref{Machine Modes}, for an explanation
--- a/src/gcc/doc/gccint.texi
+++ b/src/gcc/doc/gccint.texi
@@ -51,7 +51,7 @@
 @ifnottex
 @dircategory Software development
 @direntry
-* gccint: (gccint).            Internals of the GNU Compiler Collection.
+* @value{fngccint}: (@value{fngccint}).            Internals of the GNU Compiler Collection.
 @end direntry
 This file documents the internals of the GNU compilers.
 @sp 1
@@ -83,7 +83,7 @@
 @value{VERSION_PACKAGE}
 @end ifset
 version @value{version-GCC}.  The use of the GNU compilers is documented in a
-separate manual.  @xref{Top,, Introduction, gcc, Using the GNU
+separate manual.  @xref{Top,, Introduction, @value{fngcc}, Using the GNU
 Compiler Collection (GCC)}.
 
 This manual is mainly a reference manual rather than a tutorial.  It
--- a/src/gcc/doc/cpp.texi
+++ b/src/gcc/doc/cpp.texi
@@ -53,7 +53,7 @@
 @ifinfo
 @dircategory Software development
 @direntry
-* Cpp: (cpp).                  The GNU C preprocessor.
+* @value{fncpp}: (@value{fncpp}).                  The GNU C preprocessor.
 @end direntry
 @end ifinfo
 
--- a/src/gcc/doc/passes.texi
+++ b/src/gcc/doc/passes.texi
@@ -201,7 +201,7 @@
 @item Mudflap declaration registration
 
 If mudflap (@pxref{Optimize Options,,-fmudflap -fmudflapth
--fmudflapir,gcc,Using the GNU Compiler Collection (GCC)}) is
+-fmudflapir,@value{fngcc},Using the GNU Compiler Collection (GCC)}) is
 enabled, we generate code to register some variable declarations with
 the mudflap runtime.  Specifically, the runtime tracks the lifetimes of
 those variable declarations that have their addresses taken, or whose
--- a/src/gcc/doc/gcc.texi
+++ b/src/gcc/doc/gcc.texi
@@ -65,8 +65,8 @@
 @ifnottex
 @dircategory Software development
 @direntry
-* gcc: (gcc).                  The GNU Compiler Collection.
-* g++: (gcc).                  The GNU C++ compiler.
+* @value{fngcc}: (@value{fngcc}).                  The GNU Compiler Collection.
+* @value{fngxx}: (@value{fngcc}).                  The GNU C++ compiler.
 @end direntry
 This file documents the use of the GNU compilers.
 @sp 1
@@ -126,7 +126,7 @@
 The internals of the GNU compilers, including how to port them to new
 targets and some information about how to write front ends for new
 languages, are documented in a separate manual.  @xref{Top,,
-Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
+Introduction, @value{fngccint}, GNU Compiler Collection (GCC) Internals}.
 
 @menu
 * G++ and GCC::     You can compile C or C++ programs.
--- a/src/gcc/doc/makefile.texi
+++ b/src/gcc/doc/makefile.texi
@@ -140,7 +140,7 @@
 Builds a compiler with profiling feedback information.  In this case,
 the second and third stages are named @samp{profile} and @samp{feedback},
 respectively.  For more information, see
-@ref{Building,,Building with profile feedback,gccinstall,Installing GCC}.
+@ref{Building,,Building with profile feedback,@value{fngccinstall},Installing GCC}.
 
 @item restrap
 Restart a bootstrap, so that everything that was not built with
--- a/src/gcc/doc/install.texi
+++ b/src/gcc/doc/install.texi
@@ -98,7 +98,7 @@
 @end ifinfo
 @dircategory Software development
 @direntry
-* gccinstall: (gccinstall).    Installing the GNU Compiler Collection.
+* @value{fngccinstall}: (@value{fngccinstall}).    Installing the GNU Compiler Collection.
 @end direntry
 
 @c Part 3 Titlepage and Copyright
--- a/src/gcc/doc/cppinternals.texi
+++ b/src/gcc/doc/cppinternals.texi
@@ -7,7 +7,7 @@
 @ifinfo
 @dircategory Software development
 @direntry
-* Cpplib: (cppinternals).      Cpplib internals.
+* @value{fncppint}: (@value{fncppint}).      Cpplib internals.
 @end direntry
 @end ifinfo
 
--- a/src/libgomp/libgomp.texi
+++ b/src/libgomp/libgomp.texi
@@ -31,7 +31,7 @@
 @ifinfo
 @dircategory GNU Libraries
 @direntry
-* libgomp: (libgomp).                    GNU OpenMP runtime library
+* @value{fnlibgomp}: (@value{fnlibgomp}).                    GNU OpenMP runtime library
 @end direntry
 
 This manual documents the GNU implementation of the OpenMP API for 
--- a/src/libgomp/Makefile.in
+++ b/src/libgomp/Makefile.in
@@ -343,7 +343,8 @@
 
 # AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO])
 @BUILD_INFO_TRUE@STAMP_BUILD_INFO = stamp-build-info
-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libgomp.info
+INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)')
+CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBGOMP_NAME).info
 MAINTAINERCLEANFILES = $(srcdir)/libgomp.info
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
@@ -1089,15 +1090,16 @@
 env.o: libgomp_f.h
 
 all-local: $(STAMP_GENINSRC)
-
-stamp-geninsrc: libgomp.info
-	cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info
+stamp-geninsrc: $(INFO_LIBGOMP_NAME).info
+	cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info
 	@touch $@
 
-libgomp.info: $(STAMP_BUILD_INFO)
+libgomp.info: $(INFO_LIBGOMP_NAME).info
+	[ "$(INFO_LIBGOMP_NAME).info" = libgomp.info ] || cp $(INFO_LIBGOMP_NAME).info libgomp.info
+$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO)
 
 stamp-build-info: libgomp.texi
-	$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi
+	$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp $(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.texi
 	@touch $@
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
--- a/src/libgomp/Makefile.am
+++ b/src/libgomp/Makefile.am
@@ -111,16 +111,19 @@
 
 all-local: $(STAMP_GENINSRC)
 
-stamp-geninsrc: libgomp.info
-	cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info
+INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)')
+stamp-geninsrc: $(INFO_LIBGOMP_NAME).info
+	cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info
 	@touch $@
 
-libgomp.info: $(STAMP_BUILD_INFO)
+libgomp.info: $(INFO_LIBGOMP_NAME).info
+	cp $(INFO_LIBGOMP_NAME).info libgomp.info
+$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO)
 
 stamp-build-info: libgomp.texi
-	$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi
+	$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp $(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.texi
 	@touch $@
 
 
-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libgomp.info
+CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBGOMP_NAME).info
 MAINTAINERCLEANFILES = $(srcdir)/libgomp.info
