如果Makefile发生更改,则自动生成重新生成源文件
Automake rebuild source file if Makefile changes
使用autoconf/automake构建系统时,如果Makefile.am(甚至更高级别,如configure.ac(中的编译器标志或其他变量发生更改,则与该Makefile关联的C++源文件将不会自动重建。这一点变得尤为重要,因为我们使用automake作为连续构建系统的一部分,该系统只在需要时重新编译。
我的想法是将Makefile作为.o文件的依赖项,这将在理论上解决上述问题。所以有几个问题:
首先,有可能添加这样的规则吗?我不想把这个自定义规则添加到每个Makefile.am中,所以可以放在顶级文件中的东西(比如configure.ac(会很棒。
其次,这种方法的缺点是,在某些情况下,对Makefile的更改实际上并没有影响编译,所以我最终会在不需要的时候进行重建。我想我愿意接受这一点(或者至少试着看看它有多痛苦(,以更好地保证我的构建是正确的,但有更好的方法来解决这个问题吗?我相信clearmake通过保存实际的编译器命令(以及其他依赖项(来解决这个问题,然后将当前命令与以前的命令进行比较,以确定是否需要重新生成文件。
如果使用ccache(./configure CXX='ccache g++'
,或者只是将ccache的g++添加到路径中(,虚假重建应该非常便宜并且仍然安全。还要确保永远不要使用AM_MAINTAINER_MODE
autoconf宏,这使得依赖项跟踪是可选的(以--enable maintainer模式标志为条件(。
相关文章:
- 查找自动生成键并具有线性内存消耗的小型关联数组
- Qt:更新 QString 时自动生成的代码失败
- 我可以说服自动生成的构造函数将我的 POD 类成员归零吗?
- 在 C++ 中自动生成方法
- 删除了所有自动生成的构造函数/运算符的类仍然可以从函数返回吗
- 在编译时自动生成用于稀疏数组索引的switch语句
- 如何在C++中自动生成运算符=?
- C++自动生成的具有常量和非常量引用的复制构造函数
- 如何使用 boost/operator.hpp 自动生成 == 运算符?
- Qt自动生成的.rc文件无法打开包含文件'windows.h'
- 阅读自动生成的 DOLFIN c++ 库文档
- 修改Mongodb源代码以禁用文档的自动生成"_id"字段
- 移动构造函数是自动生成的,即使成员没有移动构造函数?
- 如何为C++结构自动生成 python 数据解析器
- 通过 qt 对发送方和接收方使用自动生成的 Ui
- 如何使用C 根据当前时间自动生成新的CSV文件
- Qt:自动生成电源点报告或可编辑的pdf报告
- 如何更改日食自动生成的标题注释
- 如何自动生成结构的新实例
- 在C 中自动生成函数签名