Commit 0a553c7e by Joseph Myers Committed by Joseph Myers

Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional dependencies.

	* Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
	dependencies.
	* doc/languages.texi, doc/sourcebuild.texi: New files.
	* doc/configfiles.texi: Make a subsubsection.  Update.
	* doc/configterms.texi: Add @node.  Remove warning that this isn't
	instructions for building GCC.
	* doc/makefile.texi: Make a subsection.
	* doc/gccint.texi: Update.

From-SVN: r48731
parent 195a5def
2002-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
* Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
dependencies.
* doc/languages.texi, doc/sourcebuild.texi: New files.
* doc/configfiles.texi: Make a subsubsection. Update.
* doc/configterms.texi: Add @node. Remove warning that this isn't
instructions for building GCC.
* doc/makefile.texi: Make a subsection.
* doc/gccint.texi: Update.
Thu Jan 10 16:39:58 CET 2002 Jan Hubicka <jh@suse.cz>
* i386.md (sse_mov?fcc_const0_?): Fix constraints.
......
......@@ -2278,7 +2278,8 @@ $(docdir)/gccint.info: $(docdir)/gccint.texi \
$(docdir)/configfiles.texi $(docdir)/collect2.texi \
$(docdir)/headerdirs.texi $(docdir)/include/funding.texi \
$(docdir)/gnu.texi $(docdir)/include/gpl.texi \
$(docdir)/include/fdl.texi $(docdir)/contrib.texi
$(docdir)/include/fdl.texi $(docdir)/contrib.texi \
$(docdir)/languages.texi $(docdir)/sourcebuild.texi
cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -I doc -I doc/include -o doc/gccint.info doc/gccint.texi
$(docdir)/cppinternals.info: $(docdir)/cppinternals.texi
......@@ -2312,7 +2313,8 @@ gccint.dvi: $(docdir)/gccint.texi \
$(docdir)/configfiles.texi $(docdir)/collect2.texi \
$(docdir)/headerdirs.texi $(docdir)/include/funding.texi \
$(docdir)/gnu.texi $(docdir)/include/gpl.texi \
$(docdir)/include/fdl.texi $(docdir)/contrib.texi
$(docdir)/include/fdl.texi $(docdir)/contrib.texi \
$(docdir)/languages.texi $(docdir)/sourcebuild.texi
$(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/gccint.texi
cppinternals.dvi: $(docdir)/cppinternals.texi
......
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@node Configuration Files
@chapter Files Created by @code{configure}
@subsubsection Files Created by @code{configure}
Here we spell out what files will be set up by @code{configure}. Normally
you need not be concerned with these files.
Here we spell out what files will be set up by @file{configure} in the
@file{gcc} directory. Some other files are created as temporary files
in the configuration process, and are not used in the subsequent
build; these are not documented.
@itemize @bullet
@item
A file named @file{config.h} is created that contains a @samp{#include}
of the top-level config file for the machine you will run the compiler
on (@pxref{Config}). This file is responsible for defining information
about the host machine. It includes @file{tm.h}.
The top-level config file is located in the subdirectory @file{config}.
Its name is always @file{xm-@var{something}.h}; usually
@file{xm-@var{machine}.h}, but there are some exceptions.
@file{Makefile} is constructed from @file{Makefile.in}, together with
the host and target fragments (@pxref{Fragments, , Makefile
Fragments}) @file{t-@var{target}} and @file{x-@var{host}} from
@file{config}, if any, and language Makefile fragments
@file{@var{language}/Make-lang.in}.
@item
@file{auto-host.h} contains information about the host machine
determined by @file{configure}. If the host machine is different from
the build machine, then @file{auto-build.h} is also created,
containing such information about the build machine.
@item
@file{config.status} is a script that may be run to recreate the
current configuration.
@item
@file{configargs.h} is a header containing details of the arguments
passed to @file{configure} to configure GCC, and of the thread model
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
@file{mklibgcc}, a shell script to create a Makefile to build libgcc,
is constructed from @file{mklibgcc.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.
@end itemize
If your system does not support symbolic links, you might want to
set up @file{config.h} to contain a @samp{#include} command which
refers to the appropriate file.
The following configuration headers are created from the Makefile,
using @file{mkconfig.sh}, rather than directly by @file{configure}.
@file{config.h}, @file{hconfig.h} and @file{tconfig.h} all contain the
@file{xm-@var{machine}.h} header, if any, appropriate to the host,
build and target machines respectively, the configuration headers for
the target, and some definitions; for the host and build machines,
these include the autoconfigured headers generated by
@file{configure}. The other configuration headers are determined by
@file{config.gcc}. They also contain the typedefs for @code{rtx},
@code{rtvec} and @code{tree}.
@itemize @bullet
@item
A file named @file{tconfig.h} is created which includes the top-level config
file for your target machine. This is used for compiling certain
programs to run on that machine.
@file{config.h}, for use in programs that run on the host machine.
@item
A file named @file{tm.h} is created which includes the
machine-description macro file for your target machine. It should be in
the subdirectory @file{config} and its name is often
@file{@var{machine}.h}.
@file{hconfig.h}, for use in programs that run on the build machine.
@item
@file{tconfig.h}, for use in programs and libraries for the target
machine.
@item
The command file @file{configure} also constructs the file
@file{Makefile} by adding some text to the template file
@file{Makefile.in}. The additional text comes from files in the
@file{config} directory, named @file{t-@var{target}} and
@file{x-@var{host}}. If these files do not exist, it means nothing
needs to be added for a given target or host.
@file{tm_p.h}, which includes the header @file{@var{machine}-protos.h}
that contains prototypes for functions in the target @file{.c} file.
FIXME: why is such a separate header necessary?
@end itemize
@c Copyright (C) 2001 Free Software Foundation, Inc.
@c Copyright (C) 2001, 2002 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@node Configure Terms
@section Configure Terms and History
@cindex configure terms
@cindex canadian
This section is not instructions for building GCC. If you are trying to
do a build, you should first read @uref{http://gcc.gnu.org/install/} or
whatever installation instructions came with your source package.
The configure and build process has a long and colorful history, and can
be confusing to anyone who doesn't know why things are the way they are.
While there are other documents which describe the configuration process
......
......@@ -88,7 +88,7 @@ included in the section entitled ``GNU Free Documentation License''.
@sp 2
@center Richard M. Stallman
@sp 3
@center Last updated 7 January 2002
@center Last updated 10 January 2002
@sp 1
@center for GCC @value{version-GCC}
......@@ -141,11 +141,25 @@ write front ends for new languages. It corresponds to GCC version
separate manual. @xref{Top,, Introduction, gcc, Using the GNU
Compiler Collection (GCC)}.
This manual is mainly a reference manual rather than a tutorial. It
discusses how to contribute to GCC (@pxref{Contributing}), the
characteristics of the machines supported by GCC as hosts and targets
(@pxref{Portability}), how GCC relates to the ABIs on such systems
(@pxref{Interface}), and the characteristics of the languages for
which GCC front ends are written (@pxref{Languages}). It then
describes the GCC source tree structure and build system, some of the
interfaces to GCC front ends, and how support for a target system is
implemented in GCC@.
Additional tutorial information is linked to from
@uref{http://gcc.gnu.org/readings.html}.
@menu
* Contributing:: How to contribute to testing and developing GCC.
* Makefile:: Additional Makefile and configure information.
* Portability:: Goals of GCC's portability features.
* Interface:: Function-call interface of GCC output.
* Languages:: Languages for which GCC front ends are written.
* Source Tree:: GCC source tree structure and build system.
* Passes:: Order of passes, what they do, and what each file is for.
* Trees:: The source representation used by the C and C++ front ends.
* RTL:: The intermediate representation that most passes work on.
......@@ -153,7 +167,6 @@ Compiler Collection (GCC)}.
* Target Macros:: How to write the machine description C macros and functions.
* Config:: Writing the @file{xm-@var{machine}.h} file.
* Fragments:: Writing the @file{t-@var{target}} and @file{x-@var{host}} files.
* Configuration Files:: Files created by running @code{configure}.
* Collect2:: How @code{collect2} works; how it finds @code{ld}.
* Header Dirs:: Understanding the standard header file directories.
......@@ -170,10 +183,10 @@ Compiler Collection (GCC)}.
@end menu
@include contribute.texi
@include makefile.texi
@include configterms.texi
@include portability.texi
@include interface.texi
@include languages.texi
@include sourcebuild.texi
@include passes.texi
@include c-tree.texi
@include rtl.texi
......@@ -181,7 +194,6 @@ Compiler Collection (GCC)}.
@include tm.texi
@include hostconfig.texi
@include fragments.texi
@include configfiles.texi
@include collect2.texi
@include headerdirs.texi
......
@c Copyright (C) 2002 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@node Languages
@chapter Language Front Ends in GCC
The interface to front ends for languages in GCC, and in particular
the @code{tree} structure (@pxref{Trees}), was initially designed for
C, and many aspects of it are still somewhat biased towards C and
C-like languages. It is, however, reasonably well suited to other
procedural languages, and front ends for many such languages have been
written for GCC@.
Writing a compiler as a front end for GCC, rather than compiling
directly to assembler or generating C code which is then compiled by
GCC, has several advantages:
@itemize @bullet
@item GCC front ends benefit from the support for many different
target machines already present in GCC@.
@item GCC front ends benefit from all the optimizations in GCC@. Some
of these, such as alias analysis, may work better when GCC is
compiling directly from source code then when it is compiling from
generated C code.
@item Better debugging information is generated when compiling
directly from source code than when going via intermediate generated C
code.
@end itemize
Because of the advantages of writing a compiler as a GCC front end,
GCC front ends have also been created for languages very different
from those for which GCC was designed, such as the declarative
logic/functional language Mercury. For these reasons, it may also be
useful to implement compilers created for specialized purposes (for
example, as part of a research project) as GCC front ends.
@c Copyright (C) 2001 Free Software Foundation, Inc.
@c Copyright (C) 2001, 2002 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@node Makefile
@chapter Additional Makefile and configure information.
@section Makefile Targets
@subsection Makefile Targets
@cindex makefile targets
@cindex targets, makefile
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment