【发布时间】:2015-01-10 01:42:37
【问题描述】:
关于如何在小型项目中避免使用自动工具并使用裸 GNU Make 的强大功能的文章很少:
- http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
- http://david.rothlis.net/large-gnu-make/
我想要尽可能依赖wildcard 和内置隐式规则的东西。
是否有现成的 GNU Make 脚本可供我使用?
我需要的功能(说明见第二个链接):
- 提供标准目标
- 标准环境变量
- 对 C 和 C++ 头文件的自动依赖
- 使用隐式规则
- 对第三方包的依赖:pkg-config
很高兴拥有但对我来说不是必需的:
- 细粒度的依赖关系
- 检测环境变化
- 清洁输出
- 单独的构建目录
【问题讨论】:
-
我们一直在努力开发我们的 make 模板宏,我不会在这里公开。还有一个正在进行的内部公司讨论,什么应该是正确的方法。如果不是基于意见,您的问题会要求场外资源推荐(这两者都是题外话)。
-
这当然是基于意见,并要求场外资源推荐。有问题要迁移到的 stackexchange 站点吗?
-
也许你会得到关于Meta SO 的建议...正如提到的在构建系统中提供一些更通用的东西的一个很好的起点是使用make templates。
-
不幸的是,我不知道任何可以抓取和使用的预制脚本。在两个单独的 $dayjob$s 中,我最终重新发明了同样的轮子,并实现了一个基于 gmake 的构建系统,它几乎实现了列表中的每个要点。从好的方面来说:虽然这有点乏味,但它仍然非常有趣。而且,哦,还有一个不在您的列表中:与版本控制集成(最后一个是 svn,如果我再做一次,我可能最终会使用 git)。
-
说,github.com/mbcrawfo/GenericMakefile 可能已经足够好了
标签: c++ c gnu-make dependency-management build-system