Menuconfig2 Build System - How it Works
Defines a whole load of variables which indicate how the software distribution is to be configured. This file is written by make menuconfig.
- Includes targets to check that certain build tool packages are installed like git and multistrap which will be needed for specific targets later in the build.
- Includes each makefile snippet from each package to implement how each option in the .config is expressed as Makefile options.
See also SoftwareBuilding/Menuconfig2Packages
Many of these are just shortcuts to config- targets for convenience.
- Deletes the build and distro directories completely
- Displays help text
- Creates build, distro/binaries, distro/debpackage, distro/sources and makes the file setup.stamp to indicate that they're present.
If a file defconfig$VARIANT is not present, creates it by making a straight copy of defconfig. Then copies this as .config, overwriting any previous config.
Builds the mconf tool which is used to generate the menuconfig user interface.
Runs the menuconfig user interface and produces the .config file which configures the software build.
Actually builds the system, by depending on $(BUILD_TOOLS) (undefined), $(TARGETS_ENV) (indicating that the build environment is OK, for example setup.stamp), $(TARGETS) (defined by the makefiles in each package), $(TARGETS_EXTRA) (undefined)
Makes clean in every target, which really means every package, by adding a dependency on $(TARGET)-clean and in the config directory.
Makes distclean in every target/package, by adding a dependency on $(TARGET)-distclean, and in the config directory
Makes each target/package ready for distribution by adding a dependency on $(TARGET)-dist
Makes source of each target/package ready for distribution by adding a dependency on $(TARGET)-source