我想在多個目錄中執行一個任務,但到目前爲止還沒有找到「類似makefile」的解決方案。我知道這是一個經常被問到的問題,我知道如何解決子makfiles等,但我正在尋找更簡單的東西。遍歷Makefile中的目錄列表
而不是做
copy:
cd module1 && mkdir foo
cd module2 && mkdir foo
cd module3 && mkdir foo
的,我想有這樣的事情
directories = module1 module2 module3
copy: $(directories)
cd $< && mkdir foo
,但不起作用,因爲receipe被稱爲僅第一次目錄。我想出了這種解決方案,但可能不符合Makefiles的風格:
directories = module1 module2 module3
copy:
for d in $(directories); do cd $$d && mkdir foo && cd ..; done
我該如何做得更好?
謝謝,這是有效的。我選擇瞭解決方案2(從makefile生成'copy'目標),因爲它沒有綁定到'mkdir'的情況。不幸的是,它與使用shell-for-loop沒有多大區別,但這並不重要。 – Robert