]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/doc/configfiles.texi
Merge basic-improvements-branch to trunk
[thirdparty/gcc.git] / gcc / doc / configfiles.texi
CommitLineData
a2e68e6d 1@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
2@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
eea5e1ee 3@c This is part of the GCC manual.
4@c For copying conditions, see the file gcc.texi.
5
6@node Configuration Files
a2e68e6d 7@subsubsection Files Created by @code{configure}
eea5e1ee 8
a2e68e6d 9Here we spell out what files will be set up by @file{configure} in the
10@file{gcc} directory. Some other files are created as temporary files
11in the configuration process, and are not used in the subsequent
12build; these are not documented.
eea5e1ee 13
14@itemize @bullet
15@item
a2e68e6d 16@file{Makefile} is constructed from @file{Makefile.in}, together with
17the host and target fragments (@pxref{Fragments, , Makefile
18Fragments}) @file{t-@var{target}} and @file{x-@var{host}} from
19@file{config}, if any, and language Makefile fragments
20@file{@var{language}/Make-lang.in}.
21@item
22@file{auto-host.h} contains information about the host machine
23determined by @file{configure}. If the host machine is different from
24the build machine, then @file{auto-build.h} is also created,
25containing such information about the build machine.
26@item
27@file{config.status} is a script that may be run to recreate the
28current configuration.
29@item
30@file{configargs.h} is a header containing details of the arguments
31passed to @file{configure} to configure GCC, and of the thread model
32used.
33@item
34@file{cstamp-h} is used as a timestamp.
35@item
36@file{fixinc/Makefile} is constructed from @file{fixinc/Makefile.in}.
37@item
38@file{gccbug}, a script for reporting bugs in GCC, is constructed from
39@file{gccbug.in}.
40@item
41@file{intl/Makefile} is constructed from @file{intl/Makefile.in}.
42@item
43@file{mklibgcc}, a shell script to create a Makefile to build libgcc,
44is constructed from @file{mklibgcc.in}.
45@item
46If a language @file{config-lang.in} file (@pxref{Front End Config, ,
47The Front End @file{config-lang.in} File}) sets @code{outputs}, then
48the files listed in @code{outputs} there are also generated.
49@end itemize
eea5e1ee 50
a2e68e6d 51The following configuration headers are created from the Makefile,
52using @file{mkconfig.sh}, rather than directly by @file{configure}.
805e22b2 53@file{config.h}, @file{bconfig.h} and @file{tconfig.h} all contain the
a2e68e6d 54@file{xm-@var{machine}.h} header, if any, appropriate to the host,
55build and target machines respectively, the configuration headers for
56the target, and some definitions; for the host and build machines,
57these include the autoconfigured headers generated by
58@file{configure}. The other configuration headers are determined by
59@file{config.gcc}. They also contain the typedefs for @code{rtx},
60@code{rtvec} and @code{tree}.
eea5e1ee 61
a2e68e6d 62@itemize @bullet
eea5e1ee 63@item
a2e68e6d 64@file{config.h}, for use in programs that run on the host machine.
eea5e1ee 65@item
805e22b2 66@file{bconfig.h}, for use in programs that run on the build machine.
a2e68e6d 67@item
68@file{tconfig.h}, for use in programs and libraries for the target
69machine.
eea5e1ee 70@item
a2e68e6d 71@file{tm_p.h}, which includes the header @file{@var{machine}-protos.h}
72that contains prototypes for functions in the target @file{.c} file.
73FIXME: why is such a separate header necessary?
eea5e1ee 74@end itemize