在我的 makefile 的开头,我为每个执行的 perl 脚本创建了一个依赖列表,如下所示:
deps_script_1 := $(shell perl $(src)/local_deps.pl $(src)/script_1.pl $(src))
deps_script_2 := $(shell perl $(src)/local_deps.pl $(src)/script_2.pl $(src))
...
deps_script_N := $(shell perl $(src)/local_deps.pl $(src)/script_N.pl $(src))
这些变量稍后会像这样使用:
output_1: $(src)/script_1.pl $(input_1) $(deps_script_1)
$< $(input_1) > $@
我已经将 local_deps.pl 的每次调用从 5 秒减少到 <1 秒,但是随着我的脚本列表的增加,它仍然很乏味。
我可以教 local_deps.pl 缓存依赖项列表以及何时失效,但这涉及更多的 shell。仅供参考,当 $(src)/lib/perl 上的修改时间比相应的输出文件新时,会发生失效。
有没有办法在我的makefile中本地缓存和失效?