【发布时间】:2014-04-25 18:43:47
【问题描述】:
1) makefile 执行流程是如何工作的,如果假设 makefile-1 包含另一个 makefile-2 而 makefile-2 包含另一个 makefile-3 ?
2) 如果包含的 makefile 包含一些应该被所有三个使用的规则和变量 - 它是如何工作的?如果一个人多次包含同一个 makefile 会发生什么?
3) 对包含的 makefile 变量使用导出? - 它们是否在所有 makefile 中都可用,
我的理解是什么, makefile解释器(或者我不知道哪个术语更适合这里)在makefile中读取为行,如果有任何包含指令,它会使makefile中的所有变量/规则都可用(顶级make-包括其他) .
4) 但是如果两个包含的 makefile 覆盖了彼此的变量或规则会发生什么? 是不是最后一个包含的makefile优先?
5) 如果包含的makefile中的任何规则调用了顶级makefile的规则,它是否完全执行顶级makefile(从第一行开始)?
6) make 中有两种赋值:
i) 使用时展开 (=)
ii) 在声明时扩展 (:=) 这种变量如何在多级 makefile 中处理?
7) 如果我在创建列表时使用诸如 notdir、patsubt 之类的 gnumake 函数会发生什么
File = abc def ghi
File += $(notdir ghi/jkl)
这个 notdir 调用什么时候发生?
(and also if I use ':=' what will be the difference ?)
考虑 make 包含以下规则,是否在解决依赖关系时调用它?
rule : File
【问题讨论】: