基本的には、前提条件をループする必要があります。これを行うための明白な方法は、シェルにパントすることです:
log: test_A test_B
for f in $^; do ./$$f; done
あるいはループをGNU Make foreach
ループとして書くこともできますが、ループの本体から生じるコマンドが別々の行に表示されるように注意する必要があります( define
>)、またはシェルターミネータで終わる(セミコロンは簡単です)。
log: test_A test_B
$(foreach f,$^,./$(f);)
最後に、この場合、ループオーバーされる各アイテムのパターン置換として、より簡潔に、より明瞭に記述することができます。
log: test_A test_B
$(patsubst %,./%;,$^)
(出力リダイレクトと $(TESTS)
変数を適切に追加できると確信しています)。