1. make ARCH=arm sama5_defconfig
%config: scripts_basic outputmakefile FORCE
$(Q)$(MAKE) $(build)=scripts/kconfig $@
sama5_defconfig: scripts_basic
make -f ./scripts/Makefile.build obj=scripts/kconfig sama5_defconfig
scripts_basic:
$(Q)$(MAKE) $(build)=scripts/basic
$(Q)rm -f .tmp_quiet_recordmcount
scripts_basic:
make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
从上面看到实际要执行的指令如下
make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.build obj=scripts/kconfig sama5_defconfig
2. make -f ./scripts/Makefile.build obj=scripts/basic
因为没有指定目标,因此,__build为默认目标
__build: $(if $(KBUILD_BUILTIN),$(builtin-target) $(lib-target) $(extra-y)) \
$(if $(KBUILD_MODULES),$(obj-m) $(modorder-target)) \
$(subdir-ym) $(always)
@:
__build: scripts/basic/fixdep
@:
最终这条命令会将fixdep.c编译出fixdep
3. make -f ./scripts/Makefile.build obj=scripts/kconfig sama5_defconfig
从执行的输出来看,这句话是先用zconf.tab.c和conf.c编译出了conf,然后执行
scripts/kconfig/conf --defconfig=arch/arm/configs/sama5_defconfig Kconfig
来生成.config文件