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> 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/38085 PR target/38085

View File

@ -1,5 +1,5 @@
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, @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 This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi. @c For copying conditions, see the file gcc.texi.
@ -33,13 +33,9 @@ used.
@item @item
@file{cstamp-h} is used as a timestamp. @file{cstamp-h} is used as a timestamp.
@item @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}, a script for reporting bugs in GCC, is constructed from
@file{gccbug.in}. @file{gccbug.in}.
@item @item
@file{intl/Makefile} is constructed from @file{intl/Makefile.in}.
@item
If a language @file{config-lang.in} file (@pxref{Front End Config, , 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 Front End @file{config-lang.in} File}) sets @code{outputs}, then
the files listed in @code{outputs} there are also generated. 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 Free Software Foundation, Inc.
@c This is part of the GCC manual. @c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi. @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 @item maintainer-clean
Distclean plus any file that can be generated from other files. Note Distclean plus any file that can be generated from other files. Note
that additional tools may be required beyond what is normally needed to that additional tools may be required beyond what is normally needed to
build gcc. build GCC.
@item srcextra @item srcextra
Generates files in the source directory that do not exist in CVS but Generates files in the source directory that are not version-controlled but
should go into a release tarball. One example is @file{gcc/java/parse.c} should go into a release tarball.
which is generated from the CVS source file @file{gcc/java/parse.y}.
@item srcinfo @item srcinfo
@itemx srcman @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. directory usually for the purpose of generating a release tarball.
@item install @item install
Installs gcc. Installs GCC.
@item uninstall @item uninstall
Deletes installed files. Deletes installed files, though this is not supported.
@item check @item check
Run the testsuite. This creates a @file{testsuite} subdirectory that Run the testsuite. This creates a @file{testsuite} subdirectory that
has various @file{.sum} and @file{.log} files containing the results of 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}. 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 of the @file{.exp} file, optionally followed by (for some tests) an equals
and a file wildcard, like: and a file wildcard, like:
@ -77,7 +76,7 @@ make check-gcc RUNTESTFLAGS="execute.exp=19980413-*"
@end smallexample @end smallexample
Note that running the testsuite may require additional tools be Note that running the testsuite may require additional tools be
installed, such as TCL or dejagnu. installed, such as Tcl or DejaGnu.
@end table @end table
The toplevel tree from which you start GCC compilation is not 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 The Boehm conservative garbage collector, used as part of the Java
runtime library. runtime library.
@item config
Autoconf macros and Makefile fragments used throught the tree.
@item contrib @item contrib
Contributed scripts that may be found useful in conjunction with GCC@. Contributed scripts that may be found useful in conjunction with GCC@.
One of these, @file{contrib/texi2pod.pl}, is used to generate man One of these, @file{contrib/texi2pod.pl}, is used to generate man
pages from Texinfo manuals as part of the GCC build process. 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 @item fixincludes
The support for fixing system headers to work with GCC@. See The support for fixing system headers to work with GCC@. See
@file{fixincludes/README} for more information. The headers fixed by @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 language front ends, and testsuites. @xref{gcc Directory, , The
@file{gcc} Subdirectory}, for details. @file{gcc} Subdirectory}, for details.
@item gnattools
Support tools for GNAT.
@item include @item include
Headers for the @code{libiberty} library. Headers for the @code{libiberty} library.
@item intl @item intl
GNU @code{libintl}, from GNU @code{gettext}, for systems which do not GNU @code{libintl}, from GNU @code{gettext}, for systems which do not
include it in libc. include it in @code{libc}.
@item libada @item libada
The Ada runtime library. The Ada runtime library.
@ -67,12 +69,21 @@ The Ada runtime library.
@item libcpp @item libcpp
The C preprocessor library. The C preprocessor library.
@item libgfortran @item libdecnumber
The Fortran runtime library. The Decimal Float support library.
@item libffi @item libffi
The @code{libffi} library, used as part of the Java runtime library. 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 @item libiberty
The @code{libiberty} library, used for portability and for some The @code{libiberty} library, used for portability and for some
generally useful data structures and algorithms. @xref{Top, , generally useful data structures and algorithms. @xref{Top, ,
@ -89,6 +100,9 @@ dereferencing operations.
@item libobjc @item libobjc
The Objective-C and Objective-C++ runtime library. The Objective-C and Objective-C++ runtime library.
@item libssp
The Stack protector runtime library.
@item libstdc++-v3 @item libstdc++-v3
The C++ runtime library. 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 The main GCC documentation is in the form of manuals in Texinfo
format. These are installed in Info format; DVI versions may be format. These are installed in Info format; DVI versions may be
generated by @samp{make dvi}, PDF versions by @samp{make pdf}, and 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 generated from the Texinfo manuals, there are some other text files
with miscellaneous documentation, and runtime libraries have their own with miscellaneous documentation, and runtime libraries have their own
documentation outside the @file{gcc} directory. FIXME: document the 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)}). @command{texi2dvi} (via the Makefile macro @code{$(TEXI2DVI)}).
PDF-formatted manuals are generated by @samp{make pdf}, which uses PDF-formatted manuals are generated by @samp{make pdf}, which uses
@command{texi2pdf} (via the Makefile macro @code{$(TEXI2PDF)}). HTML @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 manuals are generated by @samp{make info} (which is run as part of
a bootstrap); this generates the manuals in the source directory, a bootstrap); this generates the manuals in the source directory,
using @command{makeinfo} via the Makefile macro @code{$(MAKEINFO)}, 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} @samp{makeinfo --html}, PostScript manuals by @command{texi2dvi}
and @command{dvips}, and PDF manuals by @command{texi2pdf}. and @command{dvips}, and PDF manuals by @command{texi2pdf}.
All Texinfo files that are parts of manuals must 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. generation of online manuals to work.
The installation manual, @file{doc/install.texi}, is also provided on The installation manual, @file{doc/install.texi}, is also provided on
@ -425,7 +439,8 @@ comments in more detail.
@subsubsection Miscellaneous Documentation @subsubsection Miscellaneous Documentation
In addition to the formal documentation that is installed by GCC, 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 @table @file
@item ABOUT-GCC-NLS @item ABOUT-GCC-NLS
@ -434,9 +449,11 @@ this manual rather than a separate file.
@item ABOUT-NLS @item ABOUT-NLS
Notes on the Free Translation Project. Notes on the Free Translation Project.
@item COPYING @item COPYING
The GNU General Public License. @itemx COPYING3
The GNU General Public License, Versions 2 and 3.
@item COPYING.LIB @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* @item *ChangeLog*
@itemx */ChangeLog* @itemx */ChangeLog*
Change log files for various parts of GCC@. 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 Details of the directories of any runtime libraries in
@file{gcc/doc/sourcebuild.texi}. @file{gcc/doc/sourcebuild.texi}.
@item @item
Check targets in Makefile.def for the top-level Makefile to check just Check targets in @file{Makefile.def} for the top-level @file{Makefile}
the compiler or the compiler and runtime library for the language. to check just the compiler or the compiler and runtime library for the
language.
@end itemize @end itemize
If the front end is added to the official GCC source repository, the If the front end is added to the official GCC source repository, the
@ -551,6 +569,7 @@ updated accordingly.
@menu @menu
* Front End Directory:: The front end @file{@var{language}} directory. * Front End Directory:: The front end @file{@var{language}} directory.
* Front End Config:: The front end @file{config-lang.in} file. * Front End Config:: The front end @file{config-lang.in} file.
* Front End Makefile:: The front end @file{Make-lang.in} file.
@end menu @end menu
@node Front End Directory @node Front End Directory
@ -559,7 +578,7 @@ updated accordingly.
A front end @file{@var{language}} directory contains the source files A front end @file{@var{language}} directory contains the source files
of that front end (but not of any runtime libraries, which should be of that front end (but not of any runtime libraries, which should be
outside the @file{gcc} directory). This includes documentation, and 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 Certain files are special and other parts of the compiler depend on
their names: 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 Config, , The Front End @file{config-lang.in} File}, for details of
its contents its contents
@item Make-lang.in @item Make-lang.in
This file is required in all language subdirectories. It contains This file is required in all language subdirectories. @xref{Front End
targets @code{@var{lang}.@var{hook}} (where @code{@var{lang}} is the Makefile, , The Front End @file{Make-lang.in} File}, for details of its
setting of @code{language} in @file{config-lang.in}) for the following contents.
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.
@item lang.opt @item lang.opt
This file registers the set of switches that the front end accepts on This file registers the set of switches that the front end accepts on
the command line, and their @option{--help} text. @xref{Options}. 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. everything from the single @file{gcc/Makefile} is preferred.
@item gtfiles @item gtfiles
If defined, a space-separated list of files that should be scanned by 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 this language. This excludes the files that are common to all front
ends. @xref{Type Information}. ends. @xref{Type Information}.
@end table @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 @node Back End
@subsection Anatomy of a Target 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. special notes if there are none.
@item @item
Possibly other support outside the @file{gcc} directory for runtime 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 manual needs to be installed as info for this to work, or to be a
chapter of this manual. chapter of this manual.
@end itemize @end itemize