Makefile.am 到 运行 脚本(如果源文件已更改)

Makefile.am to run script if source file changed

我有一个文本文件 input.in 和一个 shell 脚本 input.sh 生成其中有几个 .cpp.h 文件。

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

Makefile.am中有没有办法做到这一点?

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

基本思想是 BUILT_SOURCES 列出必须预先计算的源文件 -- 那些普通的自动依赖关系跟踪无法识别的文件。这些源将在常规编译完成之前构建。

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

BUILT_SOURCES = something.c

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