1 .config文件产生
- 研究
.config文件的产生流程,添加自己的配置 - U-Boot 2017.11
- Source Insight
- Ubuntu 18.04
- arm-linux-gnueabi-xxx
1.1 find %config
当我们执行sudo make smdk5250_defconfig命令行后,make会进入顶层Makefile文件,执行下面的语句. 而%config依赖scripts_basic 和 ouputmakefile, 所以我问首先去看scripts_basic
%config: scripts_basic outputmakefile FORCE
@echo "eric_debug.........start:$@"
$(Q)$(MAKE) $(build)=scripts/kconfig $@
@echo "eric_debug.........end $@"
1.2 find scripts_basic
在顶层Makefile中会发现如下代码段
scripts_basic:
$(Q)$(MAKE) $(build)=scripts/basic
$(Q)rm -f .tmp_quiet_recordmcount
make 直接执行命令行$(Q)$(MAKE) $(build)=scripts/basic, 展开后得到下面的片段,默认目标是all
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.build obj=scripts/basic
1.2.1 进入Makefile.build 执行
- 包含scripts/basic/Makefile
- 包含scripts/Makefile.host
将obj=scripts/basic通过下面的语句, 展开后得到 include ./scripts/basic/Makefile .
PHONY := __build
__build:
src := scripts/basic
include scripts/Kbuild.include
# For backward compatibility check that these variables do not change
save-cflags := $(CFLAGS)
#kbuild-dir := ./scripts/basic
kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
#kbuild-file := ./scripts/basic/Makefile
kbuild-file := $(if $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Kbuild,$(kbuild-dir)/Makefile)
#include ./scripts/basic/Makefile
include $(kbuild-file)
ifneq ($(hostprogs-y)$(hostprogs-m),)
include scripts/Makefile.host
endif
__build: $(if $(KBUILD_BUILTIN),$(builtin-target) $(lib-target) $(extra-y)) \
$(

本文详细解析了U-Boot的.config文件生成过程,并指导如何添加自定义配置。从make命令执行开始,逐步介绍了scripts_basic、outputmakefile的生成及fixdep的作用。最后,通过实例演示了如何为特定目录添加编译选项。
最低0.47元/天 解锁文章
1万+





