同じレシピを複数書きたくない
次のように、それぞれ異なる prerequisites を持つ複数の targets に対して同一の recipe を実行したいときに、その recipe を複数回記述するのは避けたいところです。
target_A : $(prerequisites_for_A)
some_common_recipe
target_B : $(prerequisites_for_B)
some_common_recipe
target_C : $(prerequisites_for_C)
some_common_recipe
複数回書かなくてよいやり方
上の例は次のように書き換えることができ、同一の recipe を複数回書かなくて済みます。
target_A : $(prerequisites_for_A)
target_B : $(prerequisites_for_B)
target_C : $(prerequisites_for_C)
target_A target_B target_C :
some_common_recipe
また、次のような書き方でも、 $^
で prerequisites を参照することができます。
file1 file2 file3 :
cat $^ > $@