複数のディレクトリでタスクを実行したいのですが、これまで「makefileのような」ソリューションは見つかりませんでした。これはよくある質問であり、サブmakfileなどで解決する方法は知っていますが、もっと簡単なものを探しています。
する代わりに
copy:
cd module1 && mkdir foo
cd module2 && mkdir foo
cd module3 && mkdir foo
のようなものが欲しいのですが
directories = module1 module2 module3
copy: $(directories)
cd $< && mkdir foo
ただし、受信者は最初のディレクトリで1回だけ呼び出されるため、これは機能しません。私はこのソリューションを思いつきましたが、これは機能しますが、おそらくMakefilesのスタイルではありません。
directories = module1 module2 module3
copy:
for d in $(directories); do cd $$d && mkdir foo && cd ..; done
どうすればこれをもっとうまく行うことができますか?