2011-11-17 131 views
1

我想将一个Makefile分解为两个模块化/分离所有的好处。在include和submake之间进行选择时,有什么需要注意的地方?Makefile include和运行Submake有什么区别?

我可以立即想到的是,对于submake,您仍然必须将子目标重新映射到父Makefile中父目标中的目标。

回答

1

的这个详细讨论Recursive Make Considered Harmful

正如你可能从标题猜测,RCMH认为,包括一切成一个单一的生成文件(“非递归”)是最好运行submakes(“递归”)。

支持非递归make的主要参数是跨模块依赖性的性能和准确性(这也对并行生成有性能影响)。

递归makefile系统的优点是它们编写起来更简单,因为每个模块的make调用与所有其他调用是分开的。正如RCMH指出的那样,尽管这种完全分离实际上后来会引起问题。