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