我想将Makefile分解成两个模块化/分离所有的优点。在include和submake之间进行选择时需要注意什么?
我能立刻想到的是,对于submake,您仍然需要将子目标中的目标重新映射到父Makefile中父目标中的目标。
答案 0 :(得分:1)
对此的详细讨论是Recursive Make Considered Harmful
正如你可能从标题中猜到的那样,RCMH认为将所有内容都包含在一个makefile中(“非递归”)比运行submakes(“递归”)更好。
支持非递归make
的主要论据是跨模块依赖性的性能和准确性(这对并行构建也有性能影响)。
递归makefile系统的优点是它们更易于编写,因为每个模块的make
调用都与其他模块分开。正如RCMH指出的那样,这种完全分离实际上会导致问题。