标签:kernel sub Makefile make 使用 makefile linux need 部分
上一篇:https://www.cnblogs.com/zhangzhiwei122/p/16025859.html
背景说明
版本:
5.10.0 - 下面分析中 使用的行号,都是 参考 这个 版本的 Makefile 。
在线浏览: https://lxr.missinglinkelectronics.com/linux/Makefile
使用场景:
在源码文件夹下面建立一个build 文件夹,然后使用 O=build
mkdir build
make O=build
讨论首次使用和最后一次使用
前文中提到两个变量 sub_make_done need-sub-make 来控制 首次使用 和 最后一次使用。
依据这两个变量,将整个 Makefile 文件 分为 3 部分。
需要注意,用两个变量控制,不是一个变量控制,则 首次 和 最后一次 这两个概念 就不是 对立的,即可以同时存在。
1、首次使用就是最后一次使用,即这个Makefile 只使用一次。
在 首次使用 部分,黄色的 37 ~ 188 中,没有设置 need-sub-make 为 1。
见前文,need-sub-make 被设置为1 的3中情况,若这三种情况都没达到,则need-sub-make 就是空的。
则,下面的 绿色的191 ~ 1948 也就被使用了。
这时,整个Makefile 就可以看作一个 部分,即 黄色部分和绿色部分都 可见。
2、Makefile 被使用两次及以上
2.1 首次使用
在 首次使用 部分,黄色的 37 ~ 188 中, 有设置 need-sub-make 为 1。则 下面的 191 ~ 1948 部分都被忽略。相当于第一次make 可见的只有 灰色和黄色部分。
2.2 第二次使用
由于 首次使用时,export sub_make_done=1 ,第二次启动make工具,有这个变量,37 ~ 188 部分内容,对第二次make工具不可见。
由于need-sub-make 没有被export ,所以第二次启动的 make 工具中,这个变量为空。 191 ~ 1948 部分内容对第二次make工具可见
这 是我们的使用场景中的情况
第一次make 工具 可见 37 ~ 188 部分内容,abs_objtree和abs_srctree 不相同,导致 设置了 need-sub-make=1,导致 191 ~ 1948 部分内容不可见。然后 启动第二个make工具,
第二个make 工具仅仅可见通用部分和 191 ~ 1948 部分内容
标签:kernel,sub,Makefile,make,使用,makefile,linux,need,部分 来源: https://www.cnblogs.com/zhangzhiwei122/p/16025969.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。