因此,我的automake设置中*.c
的某些bin_PROGRAMS
文件取决于no_common.h
通过main.h
创建符号链接而生成的Makefile.am
我no_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.h
从main.h
更改为{{1}}。 (是的,我知道我可能很挑剔)。
答案 0 :(得分:2)
Automake提供BUILT_SOURCES
变量来解决此问题。
BUILT_SOURCES
中提到的文件将在make
期间 - 在任何编辑之前创建。但是,没有暗示其他依赖;也就是说,文件已创建但未编译,并且不被假定为任何其他特定.o
的依赖项;这正是你想要的。
所以在你的情况下你会这样做:
BUILT_SOURCES = no_common.h