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