make syncconfig V=1分析

文章目录

make syncconfig

# 顶层 Makefile
94 	ifeq ("$(origin V)", "command line")
95 	  KBUILD_VERBOSE = $(V)
96 	endif
97 	ifndef KBUILD_VERBOSE
98 	  KBUILD_VERBOSE = 0
99 	endif
100
101	ifeq ($(KBUILD_VERBOSE),1)
102	  quiet =
103	  Q =
104	else
105	  quiet=quiet_
106	  Q = @
107	endif
......	
563	%config: scripts_basic outputmakefile FORCE
564		$(Q)$(MAKE) $(build)=scripts/kconfig $@
......
2318 FORCE:

执行命令 make syncconfig V=1 时,94行条件成立,KBUILD_VERBOSE = 1,则101行条件成立,quiet 和 Q 为空,则输出整个命令。
在顶层Makefile的 <386行> 引用scripts/Kbuild.include,其中有如下定义:

# scripts/Kbuild.include 
184	build := -f $(srctree)/scripts/Makefile.build obj

最终展开为:

# make syncconfig V=1
# 顶层 Makefile
563	syncconfig: scripts_basic outputmakefile FORCE
564		make -f ./scripts/Makefile.build obj=scripts/kconfig syncconfig

由上可知,依赖关系如下图所示:
在这里插入图片描述

  1. 创建目标syncconfig,见《4. make -f ./scripts/Makefile.build obj=scripts/kconfig syncconfig》 回显 4-10
    1.1 创建 scripts_basic ,见《1. 创建 scripts_basic》 回显 1-3
    1.2 创建 outputmakefile,见《2. 创建 outputmakefile》,什么都不做
    1.3 创建 FORCE,什么都不做


最终:《2. conf 工具》
在这里插入图片描述

在这里插入图片描述


回显 1-10

1 make -f ./scripts/Makefile.build obj=scripts/basic
2   cc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -std=gnu11     -o scripts/basic/fixdep scripts/basic/fixdep.c   
3 rm -f .tmp_quiet_recordmcount
4 make -f ./scripts/Makefile.build obj=scripts/kconfig syncconfig
5   cc -Wp,-MD,scripts/kconfig/.conf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -std=gnu11     -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c
6   bison -oscripts/kconfig/zconf.tab.c -t -l scripts/kconfig/zconf.y
7   flex -oscripts/kconfig/zconf.lex.c -L scripts/kconfig/zconf.l
8   cc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -std=gnu11    -Iscripts/kconfig -c -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c
9   cc   -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o   
10 scripts/kconfig/conf --syncconfig Kconfig
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值