您是否知道使用非递归make方法管理构建的任何构建工具?

时间:2012-11-11 20:04:35

标签: c++ scripting build makefile non-recursive

我一直在搜索stackoverflow,但我没有找到一个令人满意的答案来回答我的问题。

米勒的论文Recursive Make Considered Harmful在社区中众所周知。基本上,我多年来一直使用non-recursive make来管理我的项目的构建。到目前为止,我对非递归制作的体验非常积极。

为了为其他人提供一些亮点,我成功构建了拥有大约200万行代码的C ++代码库。我能够正确地管理依赖关系。关于非递归方法的好处是我们可以利用并行构建。

我已经证明this report中的数据与至少5个大型项目一致。但我一直在为非递归make手动编写/移植makefile。

正如您可能想象的那样,对于大型项目,这涉及大量工作。此外,主要的挑战是新团队成员很难理解/修改/调试现有的makefile。

所以我的问题是:社区中的任何人都知道任何可以进行非递归make的工具/脚本,但是在更高的抽象级别管理makefile吗?我想了解是否有人编写了一些脚本或工具来从一些简单的输入规范生成最终的非递归makefile。

1 个答案:

答案 0 :(得分:0)

我正准备阅读该论文,但似乎主要问题是来自微小变化的较长构建时间。

虽然构建系统一般都很糟糕(我有想法自己制作),但我必须建议CMake(正如hyde所做的那样)。

虽然不完美,但对于多个文件的项目来说,它优于普通品牌。脚本语言有点难看,但比make更好。它需要一点点习惯,因为它抽象了许多你手动写入make的东西,但我建议: http://web.cs.swarthmore.edu/~adanner/tips/cmake.php