我有一个Makefile.am
,看起来像这样:
bin_PROGRAMS = prog
AM_CFLAGS = $(prog_CFLAGS)
prog_SOURCES = \
data.h \
src1.c \
src2.c \
...
src30.c
data.h
文件有时会根据特定条件通过update_data.pl
perl脚本进行更新。我尝试将其添加到Makefile.am
的末尾:
.PHONY: data.h
data.h:
perl update_data.pl
但是脚本永远不会运行。我确定我缺少一些简单的东西,但我只是想不通。
因为您已经有一个data.h
文件,并且它不依赖任何内容,所以make
认为没有什么可更新的文件。
没有真正好方法告诉make
始终重新创建文件。如果要在更新脚本时重新生成它,则可以依赖update_data.pl
文件。或者,如果它正在解析和转换数据文件,则可以依赖于数据文件(以及脚本)。
但是,如果您的构建不是封闭的,并且内容取决于make
所不了解的内容,则没有解决您问题的好方法。