私はn個コマンドのリストを持っている場合は、C CN = C1 ... 、どのように私は指定されたターゲットのためにそれらを実行することができますか?私はのforeach構文に各コマンドをリストで実行するにはどうすればよいですか?
$(foreach x,$(c),./$(x))
を試してみましたが、それは1行にすべてのコマンドを置きます。すべての手がかりは?
私はn個コマンドのリストを持っている場合は、C CN = C1 ... 、どのように私は指定されたターゲットのためにそれらを実行することができますか?私はのforeach構文に各コマンドをリストで実行するにはどうすればよいですか?
$(foreach x,$(c),./$(x))
を試してみましたが、それは1行にすべてのコマンドを置きます。すべての手がかりは?
あなたは、問題を特定し(“それが1行”上のすべてのコマンドを置きます)。ループ内で$x
を展開するたびに改行を追加するだけです。
define \n
endef
レシピに$(foreach x,$c,./$(x)${\n})
と入力してください。
よろしくお願い致します。 –
成功のためにチェックする必要がない場合は、セミコロンを追加すると、動作するはずです:
$(foreach x,$c,./$(x);)
あなたは、リスト内のコマンドのいずれかが失敗を返す場合に失敗する必要がある場合は、ステップでそれを破るする必要があります。代わりにコマンドを直接実行するので、私たちはメイク機能に実行をラップ:
define execute-command
$(1)
endef
execute-list:
$(foreach x,$(c),$(call execute-command,./$(x)))
メイク以外にもbashをしたいような音がします。 – Flexo