xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/doc/configfiles.texi (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
1*8feb0f0bSmrg@c Copyright (C) 1988-2020 Free Software Foundation, Inc.
21debfc3dSmrg@c This is part of the GCC manual.
31debfc3dSmrg@c For copying conditions, see the file gcc.texi.
41debfc3dSmrg
51debfc3dSmrg@node Configuration Files
61debfc3dSmrg@subsubsection Files Created by @code{configure}
71debfc3dSmrg
81debfc3dSmrgHere we spell out what files will be set up by @file{configure} in the
91debfc3dSmrg@file{gcc} directory.  Some other files are created as temporary files
101debfc3dSmrgin the configuration process, and are not used in the subsequent
111debfc3dSmrgbuild; these are not documented.
121debfc3dSmrg
131debfc3dSmrg@itemize @bullet
141debfc3dSmrg@item
151debfc3dSmrg@file{Makefile} is constructed from @file{Makefile.in}, together with
161debfc3dSmrgthe host and target fragments (@pxref{Fragments, , Makefile
171debfc3dSmrgFragments}) @file{t-@var{target}} and @file{x-@var{host}} from
181debfc3dSmrg@file{config}, if any, and language Makefile fragments
191debfc3dSmrg@file{@var{language}/Make-lang.in}.
201debfc3dSmrg@item
211debfc3dSmrg@file{auto-host.h} contains information about the host machine
221debfc3dSmrgdetermined by @file{configure}.  If the host machine is different from
231debfc3dSmrgthe build machine, then @file{auto-build.h} is also created,
241debfc3dSmrgcontaining such information about the build machine.
251debfc3dSmrg@item
261debfc3dSmrg@file{config.status} is a script that may be run to recreate the
271debfc3dSmrgcurrent configuration.
281debfc3dSmrg@item
291debfc3dSmrg@file{configargs.h} is a header containing details of the arguments
301debfc3dSmrgpassed to @file{configure} to configure GCC, and of the thread model
311debfc3dSmrgused.
321debfc3dSmrg@item
331debfc3dSmrg@file{cstamp-h} is used as a timestamp.
341debfc3dSmrg@item
351debfc3dSmrgIf a language @file{config-lang.in} file (@pxref{Front End Config, ,
361debfc3dSmrgThe Front End @file{config-lang.in} File}) sets @code{outputs}, then
371debfc3dSmrgthe files listed in @code{outputs} there are also generated.
381debfc3dSmrg@end itemize
391debfc3dSmrg
401debfc3dSmrgThe following configuration headers are created from the Makefile,
411debfc3dSmrgusing @file{mkconfig.sh}, rather than directly by @file{configure}.
421debfc3dSmrg@file{config.h}, @file{bconfig.h} and @file{tconfig.h} all contain the
431debfc3dSmrg@file{xm-@var{machine}.h} header, if any, appropriate to the host,
441debfc3dSmrgbuild and target machines respectively, the configuration headers for
451debfc3dSmrgthe target, and some definitions; for the host and build machines,
461debfc3dSmrgthese include the autoconfigured headers generated by
471debfc3dSmrg@file{configure}.  The other configuration headers are determined by
481debfc3dSmrg@file{config.gcc}.  They also contain the typedefs for @code{rtx},
491debfc3dSmrg@code{rtvec} and @code{tree}.
501debfc3dSmrg
511debfc3dSmrg@itemize @bullet
521debfc3dSmrg@item
531debfc3dSmrg@file{config.h}, for use in programs that run on the host machine.
541debfc3dSmrg@item
551debfc3dSmrg@file{bconfig.h}, for use in programs that run on the build machine.
561debfc3dSmrg@item
571debfc3dSmrg@file{tconfig.h}, for use in programs and libraries for the target
581debfc3dSmrgmachine.
591debfc3dSmrg@item
601debfc3dSmrg@file{tm_p.h}, which includes the header @file{@var{machine}-protos.h}
611debfc3dSmrgthat contains prototypes for functions in the target
62a2dc1f3fSmrg@file{@var{machine}.c} file.  The
63a2dc1f3fSmrg@file{@var{machine}-protos.h} header is included after the @file{rtl.h}
64a2dc1f3fSmrgand/or @file{tree.h} would have been included.
65a2dc1f3fSmrgThe @file{tm_p.h} also
661debfc3dSmrgincludes the header @file{tm-preds.h} which is generated by
671debfc3dSmrg@file{genpreds} program during the build to define the declarations
681debfc3dSmrgand inline functions for the predicate functions.
691debfc3dSmrg@end itemize
70