1. The workflow of command make.
after we execute make xxx, the mainprocedures are as follows:
1. Load all the Makefiles under the main Makefiles.
2. Initialize the variables in files.
3. Implicit rules search.
4. It will check the .conifg files to look up the configuration data about how to solve the variables, such as whether compile the object,and establish the dependent tree for all the objects.
5. Check the modification time to make sure the objects should be rebuild.
6. Commands to be executed.
7. When make execute the commands to produce the xxx file, it will depend on the prerequisite files before commanding.
8. The prerequisite files could also have its own prerequisite files. So make will execute the first file whose perquisite files all have been done, then the new object could be built in this case.
9. The final image will be built until all the main prerequisite files have been constructed.
2. Kconfig &.config.
A. Kconfig
Kconfig providethe help information for make menuconfig, and itis distributed throughout the kernel source tree in the various files. When we configure the kernel with make menuconfig, the command will read the configuration menu from Kconfig. After finishing configuring make menuconfig,the data will be saved in the.config.
And in Kconfig, the format of command is as follows:
config symbol A
options “name”
depend on / select symbol B
default
1. config:key word.
2. symbol A:the name of configuration in make menuconfig.
3. options:bool / stristate / string / hex / integer.
Bool: y choose /n donot choose to be built into the image
Stristate: * compileinto kernel /m buid into component / [ ] remove
4. depend on:which means if we want to configure the symbol A, symbolB must have been configured.
select:which means after we configured symbol A, symbol B must be configured after that.
5. Default: the default situation.
B. .config
.config is used as a reference for Makefile, as.config contains the configuration message about which to be compiled when we use command make.Moreover, as we discussed above that the content of .config can be changed by executing make menuconfig, it also can be configured directly in its own file.