如果源文件已更改,Makefile.am将运行脚本

时间:2015-10-23 07:06:46

标签: autotools automake

我有一个文本文件 input.in 和一个shell脚本 input.sh ,它会生成多个 .cpp .h 来自它的文件。

我希望 input.sh 在构建任何目标之前运行,但前提是 input.in 已更改或者缺少要生成的源文件。

有没有办法在 Makefile.am 中执行此操作?

1 个答案:

答案 0 :(得分:4)

最简单的方法是使用BUILT_SOURCES。请参阅the relevant page of the manual

基本思想是BUILT_SOURCES列出了必须预先计算的源文件 - 普通自动依赖关系跟踪无法弄清楚的文件。这些资源将在定期编制之前建立。

然后,您需要一个规则来实际创建这些源。一个想法可能是:

BUILT_SOURCES = something.c

$(BUILT_SOURCES): input.sh input.in
        $(srcdir)/input.sh -o $@