##### 6.3.2.3 Files Created by `configure`

Here we spell out what files will be set up by `configure` in the `gcc` directory. Some other files are created as temporary files in the configuration process, and are not used in the subsequent build; these are not documented.

- `Makefile` is constructed from `Makefile.in`, together with the host and target fragments (see Makefile Fragments) `t-target` and `x-host` from `config`, if any, and language Makefile fragments `language/Make-lang.in`.
- `auto-host.h` contains information about the host machine determined by `configure`. If the host machine is different from the build machine, then `auto-build.h` is also created, containing such information about the build machine.
- `config.status` is a script that may be run to recreate the current configuration.
- `configargs.h` is a header containing details of the arguments passed to `configure` to configure GCC, and of the thread model used.
- `cstamp-h` is used as a timestamp.
- `fixinc/Makefile` is constructed from `fixinc/Makefile.in`.
- `gccbug`, a script for reporting bugs in GCC, is constructed from `gccbug.in`.
- `intl/Makefile` is constructed from `intl/Makefile.in`.
- `mklibgcc`, a shell script to create a Makefile to build libgcc, is constructed from `mklibgcc.in`.
- If a language `config-lang.in` file (see The Front End `config-lang.in` File) sets `outputs`, then the files listed in `outputs` there are also generated.

The following configuration headers are created from the Makefile, using `mkconfig.sh`, rather than directly by `configure`. `config.h`, `bconfig.h` and `tconfig.h` all contain the `xm-machine.h` header, if any, appropriate to the host, build and target machines respectively, the configuration headers for the target, and some definitions; for the host and build machines, these include the autoconfigured headers generated by `configure`. The other configuration headers are determined by `config.gcc`. They also contain the typedefs for `rtx`, `rtvec` and `tree`.

- `config.h`, for use in programs that run on the host machine.
- `bconfig.h`, for use in programs that run on the build machine.
- `tconfig.h`, for use in programs and libraries for the target machine.
- `tm_p.h`, which includes the header `machine-protos.h` that contains prototypes for functions in the target `.c` file. FIXME: why is such a separate header necessary?