CU_linuxmakemenuconfig执行流程小结(2.6.20.6).docVIP

CU_linuxmakemenuconfig执行流程小结(2.6.20.6).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CU_linuxmakemenuconfig执行流程小结(2.6.20.6)

linux make menuconfig 执行流程小结 /u2/63991/showart_1820030.html linux//make menuconfig ???? ???? ????当在顶层目录执行”make menuconfig”会执行顶层Makefile 第415行的规则 ???? ????config %config: scripts_basic outputmakefile FORCE ???? $(Q)mkdir -p include/linux include/config ???? $(Q)$(MAKE) $(build)=scripts/kconfig $@ ???? ????这里”menuconfig”与模式”%config”匹配。所以其执行的规则如下: ???? ????menuconfig: scripts_basic outputmakefile FORCE ???? $(Q)mkdir -p include/linux include/config ???? $(Q)$(MAKE) $(build)=scripts/kconfig menuconfig ???? ????这个规则有三个依赖:scripts_basic、outputmakefile、FORCE。下面看一下这三个依赖: ???? ????1、 FORCE ???? ????首先分析一下这个依赖,它的规则定式义在1485行: ???? ????PHONY += FORCE ????FORCE: ???? ????这个规则没有命令也没有依赖,它的目标也不是一个存在的文件名。在执行此规则时,目标FORCE总会被认为是最新的。这样当它作为其它规则的依赖时,因为依赖总被认为被更新过的,所以那个规则的中定义的命令总会被执行。 ???? ????2、 scripts_basic ????这个依赖的规则在347行定义: ???? ????scripts_basic: ???? $(Q)$(MAKE) $(build)=scripts/basic ???? ????build这个变量定义在scripts/kbuild.include的114行: ???? ????build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj ???? ????所以上面的规则可写成如下形式: ???? ????scripts_basic: ???? $(Q)$(MAKE) -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj=scripts/basic ???? ????这个规则的命令最终会进入scripts目录,执行Makefile.build文件,并传递参数obj=scripts/basic. ???? ????在Makefile.build的第5行有: ???? ????src := $(obj) ???? ????这就把传递进来的值赋给了src,所以 ???? ????src := scripts/basic ???? ????从第16行开始的两行把src (即scripts/basic)目录下的Makefile包含进来(如果有Kbuild则包含Kbuild) ???? ????kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src)) ????include $(if $(wildcard $(kbuild-dir)/Kbuild), $(kbuild-dir)/Kbuild, $(kbuild-dir)/Makefile) ???? ????在第19行包含了scripts/Makefile.lib进来, ???? ????在Makefile.build的第83行,是make在Makefile.build中遇到的第一个目标 ???? ????__build: $(if $(KBUILD_BUILTIN),$(builtin-target) $(lib-target) $(extra-y)) \ ???? $(if $(KBUILD_MODULES),$(obj-m)) \ ???? $(subdir-ym) $(always) ???? @: ???? ????KBUILD_BUILTIN在顶层Makefile的第207行定义 ???? ????KBUILD_BUILTIN := 1 ???? ????如果执行

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档