【发布时间】:2012-03-13 05:35:23
【问题描述】:
我对包含生成文件的源文件的依赖顺序有疑问。例如,在一个名为 unit.cpp 的文件中,我有这个:
#include "generated.hpp"
其中generated.hpp 是生成的文件,将在输出包含目录中生成。现在,这个文件是通过中间命令生成的,生成文件规则如下:
.build-generated:
cmd.sh ... > include/generated.hpp
touch $@
unit.o 文件的构建因此需要首先调用.build-generated。如果我执行以下操作,我会混淆生成的 makefile:
unit.cpp: .build-generated
因为 make 现在将假定 unit.cpp 是一个生成的文件,并忽略源目录中的那个(仅当 .build-generated 必须重新制作时)。我查看了详细的 make 输出,它说它忽略了 VPATH 中的那个。
在普通的 makefile 中,我可能会使 unit.o 依赖于另一个目标,但这似乎不是自动生成方式(因为它可能不可移植)。 实际上它甚至不起作用,因为目标可能是 .lo 文件
我怎样才能正确地告诉 automake 这种依赖关系?
【问题讨论】: