Go to the first, previous, next, last section, table of contents.

# Final Notes

By configures, I mean that links, Makefile, .gdbinit, and config.status are built. Configuration is always done from the source directory.

`./configure name`
  configures this directory, perhaps recursively, for a single host+target pair where the host and target are both name. If a previous configuration existed, it will be overwritten.
`./configure hostname --target=targetname`
  configures this directory, perhaps recursively, for a single host+target pair where the host is hostname and target is targetname. If a previous configuration existed, it will be overwritten.

- Hacking Configurations: Hacking Configurations

## Hacking Configurations

The configure scripts essentially do three things, create subdirectories if appropriate, build a ``Makefile'`, and create links to files, all based on and tailored to, a specific host+target pair. The scripts also create a ``.gdbinit'` if appropriate but this is not tailored.

The Makefile is created by prepending some variable definitions to a Makefile template called ``Makefile.in'` and then inserting host and target specific Makefile fragments. The variables are set based on the chosen host+target pair and build style, that is, if you use `--srcdir` or not. The host and target specific Makefile may or may not exist.

- Makefiles can be edited directly, but those changes will eventually be lost. Changes intended to be permanent for a specific host should be made to the host specific Makefile fragment. This should be in ``./config/mh-host'` if it exists. Changes intended to be permanent for a specific target should be made to the target specific Makefile fragment. This should be in ``./config/mt-target'` if it exists. Changes intended to be permanent for the directory should be made in ``Makefile.in'`. To propogate changes to any of these, either use `make Makefile` or `./config.status` or re-configure.

Go to the first, previous, next, last section, table of contents.