我正在學習make
的過程中,並且陷入是否有可能在prereq列表中使用目標函數。假設我有以下幾種...使先決條件中的功能
FILES = folder1/file folder2/file folder3/file
$(FILES) : code/my_script.bash $(subst folder,dir,[email protected])
bash code/my_script.bash $(subst folder,dir,[email protected])
在這種情況下,即使folder1/file不存在,my_script.bash也會運行。我預計它會執行另一個規則來首先構建這個目標。當我用echo $^
替換bash
行時,輸出的全部是code/myscript.bash
。它似乎沒有在[email protected]
上做替換來構建prereq。我現在看到,我可以通過在目標和prereq中使用%
來獲得期望的目標,但可以在prereqs中使用函數嗎?
您可以使用函數,但不能*使用目標特定變量(如'$ @')而不使用輔助擴展。 –
所以'$$(subst文件夾,目錄,$ @)'應該作爲一個prereq? –
您是否希望每個輸出文件都依賴* all *輸入文件?或一對一映射? –