メイクファイルの冒頭で、実行されるすべての 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 に依存関係リストをキャッシュし、いつ無効にするかを教えることができますが、それにはより多くのシェルが必要です。参考までに、$(src)/lib/perl の変更時刻がそれぞれの出力ファイルよりも新しい場合、無効化が発生します。
私のメイクファイルでネイティブにキャッシュして無効にする方法はありますか?