指定`bin_PROGRAMS`的依赖关系,而不告诉Automake如何构建`bin_PROGRAMS`

时间:2016-09-17 00:48:39

标签: makefile build gnu-make automake

因此,我的automake设置中*.c的某些bin_PROGRAMS文件取决于no_common.h通过main.h创建符号链接而生成的Makefile.amno_common.h bin_PROGRAMS中最近的一些更改包含在/usr/bin中,以便它可以像应该的那样生成,但这也是为了让它变得如此与make生成的二进制文件一起安装到Makefile.am,这不是我想要的。

我知道我可以在$(bin_PROGRAMS): no_common.h 文件中使用这样的内容:

make

但这并不意味着我必须准确地告诉bin_PROGRAMS我想要no_common.h的构建方式?将bin_PROGRAMS放回noinst_HEADERS然后将其添加到#include会解决此问题吗?

可以做到这一点,是否还有一些我可以使用的棘手技巧,或者我只是要求做一些无法完成的事情?

注意:我不想在受影响的文件中将文件no_common.hmain.h更改为{{1}}。 (是的,我知道我可能很挑剔)。

1 个答案:

答案 0 :(得分:2)

Automake提供BUILT_SOURCES变量来解决此问题。

BUILT_SOURCES中提到的文件将在make期间 - 在任何编辑之前创建。但是,没有暗示其他依赖;也就是说,文件已创建但未编译,并且不被假定为任何其他特定.o的依赖项;这正是你想要的。

所以在你的情况下你会这样做:

BUILT_SOURCES = no_common.h