次のような Makefile ルールがあります。
%.b : %.a
[run some commands...]
%.a から %.b へのすべての変換が、ファイルごとに 1 回ではなく、コマンドの 1 回の実行で処理されるように Makefile を書き直したいと思います。
私は次のことを試しました:
%.b : someDummyFile
someDummyFile :
[run some commands]
問題は、someDummyFile を作成するためのルールが最初のルールで要求されていない場合でも実行され、望ましくない動作につながることです。ターゲットが他のルールで使用されていない場合でも、依存関係のないルールは常に実行されると思いますか?
ここで何が欠けていますか?
この問題をデバッグしようとして、2 番目のルールへの参照をすべて削除しました。たとえば、次のルールを既存の Makefile に挿入すると、他のルールがそれを参照していないのに、なぜそのルールが実行されるのでしょうか?
HELLOWORLD :
echo "# HELLO WORLD! THE NEXT LINE WILL TRIGGER AN ERROR"
DFASDA