From 1d42e4b5702ac25745a74166b91a6fc45b398ad4 Mon Sep 17 00:00:00 2001 From: "ro@138bc75d-0d04-0410-961f-82ee72b054a4" Date: Mon, 22 Mar 2010 20:33:33 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157649 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 16 ++++ gcc/doc/sourcebuild.texi | 209 ++++++++++++++++++++++++++--------------------- 2 files changed, 133 insertions(+), 92 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bfca2171be2..113f2a7720d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,21 @@ 2010-03-22 Rainer Orth + * 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 + PR target/38085 * config/i386/i386.c (x86_function_profiler) [!NO_PROFILE_COUNTERS]: Fix typo. diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index eaceae08d93..a3455db2e2c 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -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{}. 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 -- 2.11.0