This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Document new makefile targets and new lang-hooks


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]