1@c Copyright (C) 1988-2015 Free Software Foundation, Inc.
2@c This is part of the GCC manual.
3@c For copying conditions, see the file gcc.texi.
4
5@node Configuration Files
6@subsubsection Files Created by @code{configure}
7
8Here we spell out what files will be set up by @file{configure} in the
9@file{gcc} directory.  Some other files are created as temporary files
10in the configuration process, and are not used in the subsequent
11build; these are not documented.
12
13@itemize @bullet
14@item
15@file{Makefile} is constructed from @file{Makefile.in}, together with
16the host and target fragments (@pxref{Fragments, , Makefile
17Fragments}) @file{t-@var{target}} and @file{x-@var{host}} from
18@file{config}, if any, and language Makefile fragments
19@file{@var{language}/Make-lang.in}.
20@item
21@file{auto-host.h} contains information about the host machine
22determined by @file{configure}.  If the host machine is different from
23the build machine, then @file{auto-build.h} is also created,
24containing such information about the build machine.
25@item
26@file{config.status} is a script that may be run to recreate the
27current configuration.
28@item
29@file{configargs.h} is a header containing details of the arguments
30passed to @file{configure} to configure GCC, and of the thread model
31used.
32@item
33@file{cstamp-h} is used as a timestamp.
34@item
35If a language @file{config-lang.in} file (@pxref{Front End Config, ,
36The Front End @file{config-lang.in} File}) sets @code{outputs}, then
37the files listed in @code{outputs} there are also generated.
38@end itemize
39
40The following configuration headers are created from the Makefile,
41using @file{mkconfig.sh}, rather than directly by @file{configure}.
42@file{config.h}, @file{bconfig.h} and @file{tconfig.h} all contain the
43@file{xm-@var{machine}.h} header, if any, appropriate to the host,
44build and target machines respectively, the configuration headers for
45the target, and some definitions; for the host and build machines,
46these include the autoconfigured headers generated by
47@file{configure}.  The other configuration headers are determined by
48@file{config.gcc}.  They also contain the typedefs for @code{rtx},
49@code{rtvec} and @code{tree}.
50
51@itemize @bullet
52@item
53@file{config.h}, for use in programs that run on the host machine.
54@item
55@file{bconfig.h}, for use in programs that run on the build machine.
56@item
57@file{tconfig.h}, for use in programs and libraries for the target
58machine.
59@item
60@file{tm_p.h}, which includes the header @file{@var{machine}-protos.h}
61that contains prototypes for functions in the target
62@file{@var{machine}.c} file.  The header @file{@var{machine}-protos.h}
63can include prototypes of functions that use rtl and tree data
64structures inside appropriate @code{#ifdef RTX_CODE} and @code{#ifdef
65TREE_CODE} conditional code segements.  The
66@file{@var{machine}-protos.h} is included after the @file{rtl.h}
67and/or @file{tree.h} would have been included.  The @file{tm_p.h} also
68includes the header @file{tm-preds.h} which is generated by
69@file{genpreds} program during the build to define the declarations
70and inline functions for the predicate functions.
71@end itemize
72