我有一个文本文件 input.in 和一个shell脚本 input.sh ,它会生成多个 .cpp 和 .h 来自它的文件。
我希望 input.sh 在构建任何目标之前运行,但前提是 input.in 已更改或者缺少要生成的源文件。
有没有办法在 Makefile.am 中执行此操作?
答案 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 $@