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,7 +588,84 @@ 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
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}.
@item lang-specs.h
This file provides entries for @code{default_compilers} in
@file{gcc.c} which override the default of giving an error that a
compiler for that language is not installed.
@item @var{language}-tree.def
This file, which need not exist, defines any language-specific tree
codes.
@end table
@node Front End Config
@subsubsection The Front End @file{config-lang.in} File
Each language subdirectory contains a @file{config-lang.in} file. In
addition the main directory contains @file{c-config-lang.in}, which
contains limited information for the C language. This file is a shell
script that may define some variables describing the language:
@table @code
@item language
This definition must be present, and gives the name of the language
for some purposes such as arguments to @option{--enable-languages}.
@item lang_requires
If defined, this variable lists (space-separated) language front ends
other than C that this front end requires to be enabled (with the
names given being their @code{language} settings). For example, the
Java front end depends on the C++ front end, so sets
@samp{lang_requires=c++}.
@item subdir_requires
If defined, this variable lists (space-separated) front end directories
other than C that this front end requires to be present. For example,
the Objective-C++ front end uses source files from the C++ and
Objective-C front ends, so sets @samp{subdir_requires="cp objc"}.
@item target_libs
If defined, this variable lists (space-separated) targets in the top
level @file{Makefile} to build the runtime libraries for this
language, such as @code{target-libobjc}.
@item lang_dirs
If defined, this variable lists (space-separated) top level
directories (parallel to @file{gcc}), apart from the runtime libraries,
that should not be configured if this front end is not built.
@item build_by_default
If defined to @samp{no}, this language front end is not built unless
enabled in a @option{--enable-languages} argument. Otherwise, front
ends are built by default, subject to any special logic in
@file{configure.ac} (as is present to disable the Ada front end if the
Ada compiler is not already installed).
@item boot_language
If defined to @samp{yes}, this front end is built in stage1 of the
bootstrap. This is only relevant to front ends written in their own
languages.
@item compilers
If defined, a space-separated list of compiler executables that will
be run by the driver. The names here will each end
with @samp{\$(exeext)}.
@item outputs
If defined, a space-separated list of files that should be generated
by @file{configure} substituting values in them. This mechanism can
be used to create a file @file{@var{language}/Makefile} from
@file{@var{language}/Makefile.in}, but this is deprecated, building
everything from the single @file{gcc/Makefile} is preferred.
@item gtfiles
If defined, a space-separated list of files that should be scanned by
@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
@ -624,7 +720,7 @@ 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
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.
@ -645,84 +741,13 @@ 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@.
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.
@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}.
@item lang-specs.h
This file provides entries for @code{default_compilers} in
@file{gcc.c} which override the default of giving an error that a
compiler for that language is not installed.
@item @var{language}-tree.def
This file, which need not exist, defines any language-specific tree
codes.
@end table
@node Front End Config
@subsubsection The Front End @file{config-lang.in} File
Each language subdirectory contains a @file{config-lang.in} file. In
addition the main directory contains @file{c-config-lang.in}, which
contains limited information for the C language. This file is a shell
script that may define some variables describing the language:
@table @code
@item language
This definition must be present, and gives the name of the language
for some purposes such as arguments to @option{--enable-languages}.
@item lang_requires
If defined, this variable lists (space-separated) language front ends
other than C that this front end requires to be enabled (with the
names given being their @code{language} settings). For example, the
Java front end depends on the C++ front end, so sets
@samp{lang_requires=c++}.
@item subdir_requires
If defined, this variable lists (space-separated) front end directories
other than C that this front end requires to be present. For example,
the Objective-C++ front end uses source files from the C++ and
Objective-C front ends, so sets @samp{subdir_requires="cp objc"}.
@item target_libs
If defined, this variable lists (space-separated) targets in the top
level @file{Makefile} to build the runtime libraries for this
language, such as @code{target-libobjc}.
@item lang_dirs
If defined, this variable lists (space-separated) top level
directories (parallel to @file{gcc}), apart from the runtime libraries,
that should not be configured if this front end is not built.
@item build_by_default
If defined to @samp{no}, this language front end is not built unless
enabled in a @option{--enable-languages} argument. Otherwise, front
ends are built by default, subject to any special logic in
@file{configure.ac} (as is present to disable the Ada front end if the
Ada compiler is not already installed).
@item boot_language
If defined to @samp{yes}, this front end is built in stage 1 of the
bootstrap. This is only relevant to front ends written in their own
languages.
@item compilers
If defined, a space-separated list of compiler executables that will
be run by the driver. The names here will each end
with @samp{\$(exeext)}.
@item outputs
If defined, a space-separated list of files that should be generated
by @file{configure} substituting values in them. This mechanism can
be used to create a file @file{@var{language}/Makefile} from
@file{@var{language}/Makefile.in}, but this is deprecated, building
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
this language. This excludes the files that are common to all front
ends. @xref{Type Information}.
@end table
@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