This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Document new makefile targets and new lang-hooks
- From: Kelley Cook <kcook34 at ford dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, "Joseph S. Myers" <jsm at polyomino dot org dot uk>
- Date: Fri, 23 Jan 2004 11:42:39 -0500
- Subject: Document new makefile targets and new lang-hooks
- Hop-count: 1
- References: <401035BB.60505@ford.com>
- Reply-to: Kelley Cook <kelleycook at yahoo dot com>
This patch documents the new language hooks as well as the new makefile
targets. While doing that I realized my previous patches had broke the
documented behavior of language hooks in that the hook was supposed to
be the same name as the original target.
I figured 10 extra keystrokes in the Makefile was easier than trying to
get a change to that noble policy approved :)
Joseph, note that your ${GENERATED_MANPAGES} check from
http://gcc.gnu.org/ml/gcc-patches/2000-12/msg00950.html is still present
and operational.
However now if somebody would only like to generate the man pages the
documented way will be to call "make man", which is more intutive, IMO.
This patch supersedes
http://gcc.gnu.org/ml/gcc-patches/2004-01/msg02339.html
OK to install? 3.4?
Kelley Cook
2004-01-23 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (generate-manpages): Move dependencies to ...
(man): here.
* doc/makefile.texi: Document new targets.
* doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
diff -dupr gcc/Makefile.in gcc.new/Makefile.in
--- gcc/Makefile.in 2004-01-23 09:53:49.846460800 -0500
+++ gcc.new/Makefile.in 2004-01-23 09:36:31.000000000 -0500
@@ -2679,7 +2679,9 @@ doc/gccinstall.dvi: $(TEXI_GCCINSTALL_FI
MANFILES = doc/gcov.1 doc/cpp.1 doc/gcc.1 doc/gfdl.7 doc/gpl.7 doc/fsf-funding.7
-generated-manpages: $(MANFILES) lang.man @GENINSRC@ srcman lang.srcman
+generated-manpages: man
+
+man: $(MANFILES) lang.man @GENINSRC@ srcman lang.srcman
srcman: $(MANFILES)
-cp -p $^ $(srcdir)/doc
diff -dupr gcc/doc/makefile.texi gcc.new/doc/makefile.texi
--- gcc/doc/makefile.texi 2003-11-20 05:08:48.000000000 -0500
+++ gcc.new/doc/makefile.texi 2004-01-23 11:12:16.925633700 -0500
@@ -13,9 +13,17 @@ This is the default target. Depending o
configuration is, it coordinates all the things that need to be built.
@item doc
-Produce info-formatted documentation. Also, @samp{make dvi} is
-available for DVI-formatted documentation, and @samp{make
-generated-manpages} to generate man pages.
+Produce info-formatted documentation and man pages. Essentially it
+calls @samp{make man} and @samp{make info}.
+
+@item dvi
+Produce DVI-formatted documentation.
+
+@item man
+Generate man pages.
+
+@item info
+Generate info-formatted pages.
@item mostlyclean
Delete the files made while building the compiler.
@@ -31,6 +39,16 @@ Distclean plus any file that can be gene
that additional tools may be required beyond what is normally needed to
build gcc.
+@item srcextra
+Generates files in the source directory that do not exist in CVS but
+should go into a release tarball. One example is @file{gcc/c-parse.c}
+which is generated from the CVS source file @file{gcc/c-parse.in}.
+
+@item srcinfo
+@itemx srcman
+Copies the info-formatted and manpage documentation into the source
+directory usually for the purpose of generating a release tarball.
+
@item install
Installs gcc.
diff -dupr gcc/doc/sourcebuild.texi gcc.new/doc/sourcebuild.texi
--- gcc/doc/sourcebuild.texi 2004-01-18 06:59:08.000000000 -0500
+++ gcc.new/doc/sourcebuild.texi 2004-01-23 11:05:36.590021100 -0500
@@ -565,23 +565,21 @@ FIXME: exactly what goes in each of thes
Build an @command{etags} @file{TAGS} file in the language subdirectory
in the source tree.
@item info
-Build info documentation for the front end, in the source directory.
+Build info documentation for the front end, in the build directory.
This target is only called by @samp{make bootstrap} if a suitable
version of @command{makeinfo} is available, so does not need to check
-for this, and should fail if an error occurs. This hook is a
-double-colon hook.
+for this, and should fail if an error occurs.
@item dvi
Build DVI documentation for the front end, in the build directory.
This should be done using @code{$(TEXI2DVI)}, with appropriate
@option{-I} arguments pointing to directories of included files.
This hook is a double-colon hook.
-@item generated-manpages
+@item man
Build generated man pages for the front end from Texinfo manuals
-(@pxref{Man Page Generation}), in the source directory. This target
+(@pxref{Man Page Generation}), in the build directory. This target
is only called if the necessary tools are available, but should ignore
errors so as not to stop the build if errors occur; man pages are
optional and the tools involved may be installed in a broken way.
-This hook is a double-colon hook.
@item install-normal
FIXME: what is this target for?
@item install-common
@@ -595,6 +593,18 @@ that should be installed. This hook is
@item install-man
Install man pages for the front end. This target should ignore
errors.
+@item srcextra
+Copies its dependencies into the source directory. This generally should
+be used for generated files such as @file{gcc/c-parse.c} which are not
+present in CVS, but should be included in any release tarballs. This
+target will be executed during a bootstrap if
+@samp{--enable-generated-files-in-srcdir} was specified as a
+@file{configure} option.
+@item srcinfo
+@itemx srcman
+Copies its dependencies into the source directory. These targets will be
+executed during a bootstrap if @samp{--enable-generated-files-in-srcdir}
+was specified as a @file{configure} option.
@item uninstall
Uninstall files installed by installing the compiler. This is
currently documented not to be supported, so the hook need not do