Named configurations

Named configurations can be specified via the CONFIG=… build parameter.

For headers in config/*.h which support named configurations, the following files are included when building with CONFIG=<name>:

This mechanism allows for predefined named configurations to be checked in to the source tree, as a directory config/<name> containing all of the required header files.

The mechanism also allows for users to define multiple local configurations, by creating header files in the directory config/local/<name>.

Note that the config/*.h files which are used only to configure internal iPXE APIs (e.g. config/umalloc.h) cannot be modified via a named configuration. This avoids rebuilding the entire iPXE codebase whenever switching to a different named configuration.