私はツールfoo
を持っており、1つ以上の入力を受け取り、対応する出力を生成できます。例えば、foo a.in
は、a.out
およびfoo a.in b.in
を生成し、a.out
およびb.out
を生成します。 a.out
はa.in
にのみ依存し、b.out
はb.in
にのみ依存します。GNU Makefileは、単一のレシピ実行を使用して複数の前提条件から複数のターゲットを生成します。
ツールは、単一の入力上で実行することができますが、私が個別に各out
ファイルを生成するために
%.out: %.in
foo $?
をルールを使用することができますが、私はバッチしたいと思いますので、複数の入力を使用して実行する方が効率的ですそれらをfoo
への単一の呼び出しに変換します。
パターンルールでは、私はレシピの単一の実行を使用して複数のターゲットを生成することができます。
a%out b%out: a%in b%in
foo $?
しかし、a.out
は現在、不必要に不必要になりましたb.in
とb.out
に依存a.in
に依存します。前提条件とターゲット間のみ1対1の依存関係があるとき、私は、単一のレシピ実行を使用して、複数の入力から複数のターゲットを生成することができますどのように
stamp: a.in b.in a.out b.out
cat
?