1. 读取顶层Makefile和scripts/Kbuild.include,由于如下规则,Makefile和Kbuild.include不会被应用隐式规则,无需编译
$(CURDIR)/Makefile Makefile: ; ... $(srctree)/scripts/Kbuild.include: ;
2. 开始编译menuconfig,由于顶层Makefile中的规则,menuconfig依赖于scripts_basic,outputmakefile和FORCE
%config: scripts_basic outputmakefile FORCE +$(Q)$(CONFIG_SHELL) $(srctree)/scripts/multiconfig.sh $@
scripts_basic用顶层Makefile中的规则进行编译:
$(build) 的定义scripts/Kbuild.include中:scripts_basic: $(Q)$(MAKE) $(build)=scripts/basic $(Q)rm -f .tmp_quiet_recordmcount
build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
<