configfiles.texi (Configuration Files): Removed fixinc/Makefile*, intl/Makefile.*.

* doc/configfiles.texi (Configuration Files): Removed
	fixinc/Makefile*, intl/Makefile.*.
	* doc/makefile.texi: Fixed markup.
	Abstract from version control system used.
	(Makefile): Removed obsolete gcc/java/parse.y example.
	* doc/sourcebuild.texi: Likewise.
	(Top Level): Added config, gnattools, libdecnumber, libgcc,
	libgomp, libssp.
	Removed fastjar.
	(Miscellaneous Docs): Clarify location.
	Added COPYING3, COPYING3.LIB.
	(Front End Directory): Moved Make-lang.in entry to new
	subsubsection.

From-SVN: r157649
This commit is contained in:
Rainer Orth 2010-03-22 20:33:33 +00:00 committed by Rainer Orth
parent 7f5441df09
commit 3a1ef68af0
4 changed files with 142 additions and 106 deletions

View File

@ -1,3 +1,19 @@
2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* doc/configfiles.texi (Configuration Files): Removed
fixinc/Makefile*, intl/Makefile.*.
* doc/makefile.texi: Fixed markup.
Abstract from version control system used.
(Makefile): Removed obsolete gcc/java/parse.y example.
* doc/sourcebuild.texi: Likewise.
(Top Level): Added config, gnattools, libdecnumber, libgcc,
libgomp, libssp.
Removed fastjar.
(Miscellaneous Docs): Clarify location.
Added COPYING3, COPYING3.LIB.
(Front End Directory): Moved Make-lang.in entry to new
subsubsection.
2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/38085

View File

@ -1,5 +1,5 @@
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
@c 1999, 2000, 2001, 2002, 2010 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@ -33,13 +33,9 @@ used.
@item
@file{cstamp-h} is used as a timestamp.
@item
@file{fixinc/Makefile} is constructed from @file{fixinc/Makefile.in}.
@item
@file{gccbug}, a script for reporting bugs in GCC, is constructed from
@file{gccbug.in}.
@item
@file{intl/Makefile} is constructed from @file{intl/Makefile.in}.
@item
If a language @file{config-lang.in} file (@pxref{Front End Config, ,
The Front End @file{config-lang.in} File}) sets @code{outputs}, then
the files listed in @code{outputs} there are also generated.

View File

@ -1,4 +1,4 @@
@c Copyright (C) 2001, 2002, 2003, 2004, 2006, 2008
@c Copyright (C) 2001, 2002, 2003, 2004, 2006, 2008, 2010
@c Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@ -46,12 +46,11 @@ That, and all the files created by @command{configure}.
@item maintainer-clean
Distclean plus any file that can be generated from other files. Note
that additional tools may be required beyond what is normally needed to
build gcc.
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/java/parse.c}
which is generated from the CVS source file @file{gcc/java/parse.y}.
Generates files in the source directory that are not version-controlled but
should go into a release tarball.
@item srcinfo
@itemx srcman
@ -59,16 +58,16 @@ Copies the info-formatted and manpage documentation into the source
directory usually for the purpose of generating a release tarball.
@item install
Installs gcc.
Installs GCC.
@item uninstall
Deletes installed files.
Deletes installed files, though this is not supported.
@item check
Run the testsuite. This creates a @file{testsuite} subdirectory that
has various @file{.sum} and @file{.log} files containing the results of
the testing. You can run subsets with, for example, @samp{make check-gcc}.
You can specify specific tests by setting RUNTESTFLAGS to be the name
You can specify specific tests by setting @env{RUNTESTFLAGS} to be the name
of the @file{.exp} file, optionally followed by (for some tests) an equals
and a file wildcard, like:
@ -77,7 +76,7 @@ make check-gcc RUNTESTFLAGS="execute.exp=19980413-*"
@end smallexample
Note that running the testsuite may require additional tools be
installed, such as TCL or dejagnu.
installed, such as Tcl or DejaGnu.
@end table
The toplevel tree from which you start GCC compilation is not

View File

@ -32,15 +32,14 @@ subdirectories that contain parts of GCC and its runtime libraries:
The Boehm conservative garbage collector, used as part of the Java
runtime library.
@item config
Autoconf macros and Makefile fragments used throught the tree.
@item contrib
Contributed scripts that may be found useful in conjunction with GCC@.
One of these, @file{contrib/texi2pod.pl}, is used to generate man
pages from Texinfo manuals as part of the GCC build process.
@item fastjar
An implementation of the @command{jar} command, used with the Java
front end.
@item fixincludes
The support for fixing system headers to work with GCC@. See
@file{fixincludes/README} for more information. The headers fixed by
@ -54,12 +53,15 @@ including optimizers, support for different target architectures,
language front ends, and testsuites. @xref{gcc Directory, , The
@file{gcc} Subdirectory}, for details.
@item gnattools
Support tools for GNAT.
@item include
Headers for the @code{libiberty} library.
@item intl
GNU @code{libintl}, from GNU @code{gettext}, for systems which do not
include it in libc.
include it in @code{libc}.
@item libada
The Ada runtime library.
@ -67,12 +69,21 @@ The Ada runtime library.
@item libcpp
The C preprocessor library.
@item libgfortran
The Fortran runtime library.
@item libdecnumber
The Decimal Float support library.
@item libffi
The @code{libffi} library, used as part of the Java runtime library.
@item libgcc
The GCC runtime library.
@item libgfortran
The Fortran runtime library.
@item libgomp
The GNU OpenMP runtime library.
@item libiberty
The @code{libiberty} library, used for portability and for some
generally useful data structures and algorithms. @xref{Top, ,
@ -89,6 +100,9 @@ dereferencing operations.
@item libobjc
The Objective-C and Objective-C++ runtime library.
@item libssp
The Stack protector runtime library.
@item libstdc++-v3
The C++ runtime library.
@ -312,7 +326,7 @@ GCC can also install @code{<tgmath.h>}. It will do this when
The main GCC documentation is in the form of manuals in Texinfo
format. These are installed in Info format; DVI versions may be
generated by @samp{make dvi}, PDF versions by @samp{make pdf}, and
HTML versions by @command{make html}. In addition, some man pages are
HTML versions by @samp{make html}. In addition, some man pages are
generated from the Texinfo manuals, there are some other text files
with miscellaneous documentation, and runtime libraries have their own
documentation outside the @file{gcc} directory. FIXME: document the
@ -351,7 +365,7 @@ DVI-formatted manuals are generated by @samp{make dvi}, which uses
@command{texi2dvi} (via the Makefile macro @code{$(TEXI2DVI)}).
PDF-formatted manuals are generated by @samp{make pdf}, which uses
@command{texi2pdf} (via the Makefile macro @code{$(TEXI2PDF)}). HTML
formatted manuals are generated by @command{make html}. Info
formatted manuals are generated by @samp{make html}. Info
manuals are generated by @samp{make info} (which is run as part of
a bootstrap); this generates the manuals in the source directory,
using @command{makeinfo} via the Makefile macro @code{$(MAKEINFO)},
@ -371,7 +385,7 @@ directory or in @file{doc/include}. HTML manuals will be generated by
@samp{makeinfo --html}, PostScript manuals by @command{texi2dvi}
and @command{dvips}, and PDF manuals by @command{texi2pdf}.
All Texinfo files that are parts of manuals must
be checked into SVN, even if they are generated files, for the
be version-controlled, even if they are generated files, for the
generation of online manuals to work.
The installation manual, @file{doc/install.texi}, is also provided on
@ -425,7 +439,8 @@ comments in more detail.
@subsubsection Miscellaneous Documentation
In addition to the formal documentation that is installed by GCC,
there are several other text files with miscellaneous documentation:
there are several other text files in the @file{gcc} subdirectory
with miscellaneous documentation:
@table @file
@item ABOUT-GCC-NLS
@ -434,9 +449,11 @@ this manual rather than a separate file.
@item ABOUT-NLS
Notes on the Free Translation Project.
@item COPYING
The GNU General Public License.
@itemx COPYING3
The GNU General Public License, Versions 2 and 3.
@item COPYING.LIB
The GNU Lesser General Public License.
@itemx COPYING3.LIB
The GNU Lesser General Public License, Versions 2.1 and 3.
@item *ChangeLog*
@itemx */ChangeLog*
Change log files for various parts of GCC@.
@ -504,8 +521,9 @@ directory. FIXME: document this further.
Details of the directories of any runtime libraries in
@file{gcc/doc/sourcebuild.texi}.
@item
Check targets in Makefile.def for the top-level Makefile to check just
the compiler or the compiler and runtime library for the language.
Check targets in @file{Makefile.def} for the top-level @file{Makefile}
to check just the compiler or the compiler and runtime library for the
language.
@end itemize
If the front end is added to the official GCC source repository, the
@ -551,6 +569,7 @@ updated accordingly.
@menu
* Front End Directory:: The front end @file{@var{language}} directory.
* Front End Config:: The front end @file{config-lang.in} file.
* Front End Makefile:: The front end @file{Make-lang.in} file.
@end menu
@node Front End Directory
@ -559,7 +578,7 @@ updated accordingly.
A front end @file{@var{language}} directory contains the source files
of that front end (but not of any runtime libraries, which should be
outside the @file{gcc} directory). This includes documentation, and
possibly some subsidiary programs build alongside the front end.
possibly some subsidiary programs built alongside the front end.
Certain files are special and other parts of the compiler depend on
their names:
@ -569,89 +588,9 @@ This file is required in all language subdirectories. @xref{Front End
Config, , The Front End @file{config-lang.in} File}, for details of
its contents
@item Make-lang.in
This file is required in all language subdirectories. It contains
targets @code{@var{lang}.@var{hook}} (where @code{@var{lang}} is the
setting of @code{language} in @file{config-lang.in}) for the following
values of @code{@var{hook}}, and any other Makefile rules required to
build those targets (which may if necessary use other Makefiles
specified in @code{outputs} in @file{config-lang.in}, although this is
deprecated). It also adds any testsuite targets that can use the
standard rule in @file{gcc/Makefile.in} to the variable
@code{lang_checks}.
@table @code
@itemx all.cross
@itemx start.encap
@itemx rest.encap
FIXME: exactly what goes in each of these targets?
@item tags
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 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.
@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.
@item pdf
Build PDF documentation for the front end, in the build directory.
This should be done using @code{$(TEXI2PDF)}, with appropriate
@option{-I} arguments pointing to directories of included files.
@item html
Build HTML documentation for the front end, in the build directory.
@item man
Build generated man pages for the front end from Texinfo manuals
(@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.
@item install-common
Install everything that is part of the front end, apart from the
compiler executables listed in @code{compilers} in
@file{config-lang.in}.
@item install-info
Install info documentation for the front end, if it is present in the
source directory. This target should have dependencies on info files
that should be installed.
@item install-man
Install man pages for the front end. This target should ignore
errors.
@item install-plugin
Install headers needed for plugins.
@item srcextra
Copies its dependencies into the source directory. This generally should
be used for generated files such as Bison output files 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
anything.
@item mostlyclean
@itemx clean
@itemx distclean
@itemx maintainer-clean
The language parts of the standard GNU
@samp{*clean} targets. @xref{Standard Targets, , Standard Targets for
Users, standards, GNU Coding Standards}, for details of the standard
targets. For GCC, @code{maintainer-clean} should delete
all generated files in the source directory that are not checked into
CVS, but should not delete anything checked into CVS@.
@end table
@file{Make-lang.in} must also define a variable @code{@var{lang}_OBJS}
to a list of host object files that are used by that language.
This file is required in all language subdirectories. @xref{Front End
Makefile, , The Front End @file{Make-lang.in} File}, for details of its
contents.
@item lang.opt
This file registers the set of switches that the front end accepts on
the command line, and their @option{--help} text. @xref{Options}.
@ -717,12 +656,98 @@ be used to create a file @file{@var{language}/Makefile} from
everything from the single @file{gcc/Makefile} is preferred.
@item gtfiles
If defined, a space-separated list of files that should be scanned by
gengtype.c to generate the garbage collection tables and routines for
@file{gengtype.c} to generate the garbage collection tables and routines for
this language. This excludes the files that are common to all front
ends. @xref{Type Information}.
@end table
@node Front End Makefile
@subsubsection The Front End @file{Make-lang.in} File
Each language subdirectory contains a @file{Make-lang.in} file. It contains
targets @code{@var{lang}.@var{hook}} (where @code{@var{lang}} is the
setting of @code{language} in @file{config-lang.in}) for the following
values of @code{@var{hook}}, and any other Makefile rules required to
build those targets (which may if necessary use other Makefiles
specified in @code{outputs} in @file{config-lang.in}, although this is
deprecated). It also adds any testsuite targets that can use the
standard rule in @file{gcc/Makefile.in} to the variable
@code{lang_checks}.
@table @code
@itemx all.cross
@itemx start.encap
@itemx rest.encap
FIXME: exactly what goes in each of these targets?
@item tags
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 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.
@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.
@item pdf
Build PDF documentation for the front end, in the build directory.
This should be done using @code{$(TEXI2PDF)}, with appropriate
@option{-I} arguments pointing to directories of included files.
@item html
Build HTML documentation for the front end, in the build directory.
@item man
Build generated man pages for the front end from Texinfo manuals
(@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.
@item install-common
Install everything that is part of the front end, apart from the
compiler executables listed in @code{compilers} in
@file{config-lang.in}.
@item install-info
Install info documentation for the front end, if it is present in the
source directory. This target should have dependencies on info files
that should be installed.
@item install-man
Install man pages for the front end. This target should ignore
errors.
@item install-plugin
Install headers needed for plugins.
@item srcextra
Copies its dependencies into the source directory. This generally should
be used for generated files such as Bison output files which are not
version-controlled, 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
anything.
@item mostlyclean
@itemx clean
@itemx distclean
@itemx maintainer-clean
The language parts of the standard GNU
@samp{*clean} targets. @xref{Standard Targets, , Standard Targets for
Users, standards, GNU Coding Standards}, for details of the standard
targets. For GCC, @code{maintainer-clean} should delete
all generated files in the source directory that are not version-controlled,
but should not delete anything that is.
@end table
@file{Make-lang.in} must also define a variable @code{@var{lang}_OBJS}
to a list of host object files that are used by that language.
@node Back End
@subsection Anatomy of a Target Back End
@ -786,7 +811,7 @@ notes about installation for this target, or saying that there are no
special notes if there are none.
@item
Possibly other support outside the @file{gcc} directory for runtime
libraries. FIXME: reference docs for this. The libstdc++ porting
libraries. FIXME: reference docs for this. The @code{libstdc++} porting
manual needs to be installed as info for this to work, or to be a
chapter of this manual.
@end itemize