Linux内核的make menuconfig实际上是执行了:
scripts/kconfig/mconf arch/mips/Kconfig
mconf表示是menuconfig,如果是用基于QT的配置工具,则执行的将会是qconf,arch/mips/Kconfig是要读取的Kconfig文件,这个会因平台而异,这里因为针对的是MIPS平台,故读取的是arch/mips/目录下的Kconfig文件。
如果Linux源码树顶层目录下已有.config文件,make menuconfig则从.config文件取默认参数,如果没有.config则从各个Kconfig中取默认参数。
mconf会把用户的选择保存到Linux源码树顶层目录的.config文件中,然后解析该文件并将解析结果写入到include/linux/autoconf.h中。include/linux/autoconf.h将会被include/linux/config.h包含,因此,需要关心配置情况的内核源文件只需要#include <linux/config.h>即可。
mconf解析.config文件时所采用的规则具体要仔细分析mconf.c源代码。