【发布时间】:2012-10-31 08:35:10
【问题描述】:
我一直在搜索 stackoverflow,但我的问题没有找到令人满意的答案。
Miller 的论文Recursive Make Considered Harmful 在社区中广为人知。基本上,我多年来一直使用non-recursive make 来管理我的项目的构建。到目前为止,我对非递归 make 的体验非常积极。
为了给其他人一些启发,我已经成功构建了包含大约 200 万行代码的 C++ 代码库。我能够正确管理依赖项。非递归方法的好处是我们可以利用并行构建。
我已经证明this report中的数据至少与5个大项目一致。但我一直在手动编写/移植非递归 make 的 makefile。
正如您可能想象的那样,对于大型项目,这涉及大量工作。此外,主要挑战是新团队成员很难理解/修改/调试现有的 makefile。
所以我的问题是:社区中是否有人知道任何可以执行非递归生成但在更高抽象级别管理生成文件的工具/脚本?我想了解是否有人编写了一些脚本或工具来从一些简单的输入规范生成最终的非递归 makefile。
【问题讨论】:
-
你看过 cmake 吗?还是它实际上创建了递归生成文件?不记得了,不需要在意……
-
cmake 听过很多次,但没有仔细看。现在既然你提到它,我可能只是看看。但鉴于我们拥有的遗留代码,我认为它不太可能转移到除 GNU make 之外的任何其他构建系统。无论如何,谢谢。
标签: c++ scripting build makefile non-recursive