building splitted gcc manual (errors in md.texi)

Matthias Klose doko@cs.tu-berlin.de
Tue Nov 28 16:02:00 GMT 2000


gcc.texi has documented the build of the manual splitted to two
manuals. This patch adds the build targets to build these manuals and
adds an configuration option --with-splitted-gcc-manual to configure.

However running makeinfo for the splitted manuals, produces some
errors in md.texi:

makeinfo  -I../../src/gcc -o portgcc.info portgcc.texi
./portgcc.texi:187: Next reference to nonexistent node `G++ and GCC'.
./portgcc.texi:4213: Cross reference to nonexistent node `Cross Runtime'.
./portgcc.texi:4181: Cross reference to nonexistent node `Installation'.
makeinfo: Removing output file `portgcc.info' due to errors; use --force to preserve.
Making info file `portgcc.info' from `portgcc.texi'.
make: *** [portgcc.info] Error 2

makeinfo  -I../../src/gcc -o usegcc.info usegcc.texi
../../src/gcc/md.texi:4616: Node `Conditional Execution' missing Up field.
../../src/gcc/md.texi:4696: Node `Constant Definitions' missing Up field.
../../src/gcc/md.texi:4656: Cross reference to nonexistent node `Insn Attributes'.
../../src/gcc/md.texi:4647: Cross reference to nonexistent node `Output Template'.
../../src/gcc/md.texi:4616: warning: unreferenced node `Conditional Execution'.
../../src/gcc/md.texi:4696: warning: unreferenced node `Constant Definitions'.
makeinfo: Removing output file `usegcc.info' due to errors; use --force to preserve.
Making info file `usegcc.info' from `usegcc.texi'.
make: *** [usegcc.info] Error 2

2000-11-28  Matthias Klose <doko@cs.tu-berlin.de>

	* configure.in: Add --with-splitted-gcc-manual option.
	* install.texi: Document it.
	* Makefile.in: {use,port}gcc.{texi,info,dvi}: New targets.
	install, uninstall, clean: Adjust.

--- gcc/Makefile.in.org	Sun Nov 26 16:37:58 2000
+++ gcc/Makefile.in	Tue Nov 28 22:33:57 2000
@@ -346,6 +346,10 @@
 # Whether we were configured with NLS.
 USE_NLS = @USE_NLS@
 
+# Wether were configured to build the combined or the splitted gcc manual
+gcc_info_manuals = @gcc_info_manuals@
+gcc_dvi_manuals = @gcc_dvi_manuals@
+
 # Internationalization library.
 INTLLIBS = @INTLLIBS@
 
@@ -2147,7 +2151,17 @@
 # Remake the info files.
 
 doc: $(BUILD_INFO) gccbug
-info: cpp.info gcc.info lang.info c-tree.info
+info: cpp.info $(gcc_info_manuals) lang.info c-tree.info
+
+usegcc.texi: $(srcdir)/gcc.texi
+	sed -e '/^@c @setfilename usegcc\.info/s/^@c *//' \
+	    -e '/^@c @clear INTERNALS/s/^@c *//' $(srcdir)/gcc.texi \
+	  > usegcc.texi
+
+portgcc.texi: $(srcdir)/gcc.texi
+	sed -e '/^@c @setfilename portgcc\.info/s/^@c *//' \
+	    -e '/^@c @clear USING/s/^@c *//' $(srcdir)/gcc.texi \
+	  > portgcc.texi
 
 cpp.info: $(srcdir)/cpp.texi
 	$(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o cpp.info $(srcdir)/cpp.texi
@@ -2157,11 +2171,21 @@
 	  $(srcdir)/tm.texi $(srcdir)/gcov.texi
 	$(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o gcc.info $(srcdir)/gcc.texi
 
+usegcc.info: usegcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
+	  $(srcdir)/invoke.texi $(srcdir)/md.texi $(srcdir)/rtl.texi \
+	  $(srcdir)/tm.texi $(srcdir)/gcov.texi
+	$(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o usegcc.info usegcc.texi
+
+portgcc.info: portgcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
+	  $(srcdir)/invoke.texi $(srcdir)/md.texi $(srcdir)/rtl.texi \
+	  $(srcdir)/tm.texi $(srcdir)/gcov.texi
+	$(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o portgcc.info portgcc.texi
+
 c-tree.info: $(srcdir)/c-tree.texi
 	$(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o c-tree.info \
 		$(srcdir)/c-tree.texi
 
-dvi: gcc.dvi cpp.dvi lang.dvi
+dvi: $(gcc_dvi_manuals) cpp.dvi lang.dvi
 
 # This works with GNU Make's default rule.
 gcc.dvi: $(srcdir)/gcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
@@ -2171,6 +2195,20 @@
 	texindex gcc.??
 	TEXINPUTS=${texidir}:$(srcdir):$$TEXINPUTS tex gcc.texi
 
+usegcc.dvi: usegcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
+	 $(srcdir)/invoke.texi $(srcdir)/md.texi $(srcdir)/rtl.texi \
+	 $(srcdir)/tm.texi $(srcdir)/gcov.texi
+	TEXINPUTS=${texidir}:$(srcdir):$$TEXINPUTS tex usegcc.texi
+	texindex usegcc.??
+	TEXINPUTS=${texidir}:$(srcdir):$$TEXINPUTS tex usegcc.texi
+
+portgcc.dvi: portgcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
+	 $(srcdir)/invoke.texi $(srcdir)/md.texi $(srcdir)/rtl.texi \
+	 $(srcdir)/tm.texi $(srcdir)/gcov.texi
+	TEXINPUTS=${texidir}:$(srcdir):$$TEXINPUTS tex portgcc.texi
+	texindex portgcc.??
+	TEXINPUTS=${texidir}:$(srcdir):$$TEXINPUTS tex portgcc.texi
+
 cpp.dvi: $(srcdir)/cpp.texi
 	TEXINPUTS=${texidir}:$(srcdir):$$TEXINPUTS tex cpp.texi
 	texindex cpp.??
@@ -2238,6 +2276,7 @@
 clean: mostlyclean $(INTL_CLEAN) lang.clean
 	-rm -f libgcc.a libgcc_s$(SHLIB_EXT)
 	-rm -rf libgcc
+	-rm -f usegcc.texi portgcc.texi
 	-rm -f *.dvi
 	-rm -f */*.dvi
 # Delete the include directory.
@@ -2479,18 +2518,24 @@
 # $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
 # to do the install.
 install-info: doc installdirs lang.install-info
-	-rm -f $(infodir)/cpp.info* $(infodir)/gcc.info*
-	for f in cpp.info* gcc.info*; do \
+	-for i in cpp.info $(gcc_info_manuals); do \
+	  rm -f $(infodir)/$$i*; \
+	done
+	for i in cpp.info $(gcc_info_manuals); do \
+	  for f in $$i*; do \
 	    $(INSTALL_DATA) $$f $(infodir)/$$f; \
+	  done; \
 	done
 	-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
 	  if [ -f $(infodir)/dir ] ; then \
-	    for f in cpp.info gcc.info; do \
+	    for f in cpp.info $(gcc_info_manuals); do \
 		install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \
 	    done; \
 	  else true; fi; \
 	else true; fi;
-	-chmod a-x $(infodir)/cpp.info* $(infodir)/gcc.info*
+	-for i in cpp.info $(gcc_info_manuals); do \
+	  chmod a-x $(infodir)/$$i*; \
+	done
 
 # Install the man pages.
 install-man: installdirs $(srcdir)/gcc.1 $(srcdir)/cpp.1 $(srcdir)/gcov.1 lang.install-man
@@ -2619,7 +2664,9 @@
 	-rm -rf $(man1dir)/cpp$(manext)
 	-rm -rf $(man1dir)/protoize$(manext)
 	-rm -rf $(man1dir)/unprotoize$(manext)
-	-rm -f $(infodir)/cpp.info* $(infodir)/gcc.info*
+	-for i in cpp.info $(gcc_info_manuals); do \
+	  rm -f $(infodir)/$$i*; \
+	done
 #
 # These targets are for the dejagnu testsuites. The file site.exp
 # contains global variables that all the testsuites will use.
--- gcc/configure.in~	Sun Nov 26 16:15:04 2000
+++ gcc/configure.in	Tue Nov 28 23:03:46 2000
@@ -854,6 +854,20 @@
   [  --enable-nls            use Native Language Support (default)],
   , enable_nls=yes)
 
+# Enable combined gcc manual by default
+AC_ARG_WITH(splitted-gcc-manual,
+[  --with-splitted-gcc-manual  build separate gcc manuals (using & porting)])
+
+if test x"$with_splitted_gcc_manual" = xyes; then
+  gcc_info_manuals="usegcc.info portgcc.info"
+  gcc_dvi_manuals="usegcc.dvi portgcc.dvi"
+else
+  gcc_info_manuals=gcc.info
+  gcc_dvi_manuals=gcc.dvi
+fi
+AC_SUBST(gcc_info_manuals)
+AC_SUBST(gcc_dvi_manuals)
+
 # if cross compiling, disable NLS support.
 # It's not worth the trouble, at least for now.
 
--- gcc/install.texi~	Mon Oct 23 05:37:12 2000
+++ gcc/install.texi	Tue Nov 28 23:15:09 2000
@@ -302,6 +302,13 @@
 @code{gettext} library.  The @samp{--with-catgets} option causes the
 build procedure to use the host's @code{catgets} in this situation.
 
+@cindex @code{splitted gcc manual}
+@item --with-splitted-gcc-manual
+The @samp{--with-splitted-gcc-manual} option builds and installs instead
+of the manual ``Using and Porting the GNU Compiler Collection'' the two
+manuals ``Using the GNU Compiler Collection'' and ``Porting the GNU Compiler
+Collection''. This is off by default.
+
 @cindex @code{maintainer-mode}
 @item --enable-maintainer-mode
 The build rules that regenerate the GCC master message catalog


More information about the Gcc mailing list