configfiles.texi 3.0 KB

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