3
製作依賴我有一個生成文件如:與現有的目標和丟失的依賴
A : B
echo "made A"
B : D
echo "made B"
這裏,B存在,但d不(有時是這樣,有時沒有)
現在如果我執行make,對我吼叫: make:*沒有規則來制定目標'D','B'需要。停止。
有什麼辦法,以正確的行爲,即:
- B和d不存在:失敗
- b存在,d不和比B更新,應用配方
- b存在, d存在,但較舊的:當B存在並且d不沒有做任何事情
- :不重建B(你不能),但你可以用B來構建一個
使用以D作爲目標的空行總是會執行配方來構建B,但是不會,所以它不是必需的!
有什麼辦法嗎?
我發現用空規則
D :
末,使失蹤d不會失敗的解決方案。所以現在是除了B被重做,如果d丟失,可B中的配方進行測試OK:
B : D
if [ D ] ; then echo "doing B with D"; fi
但它似乎真的hackish的...
謝謝,就是這樣! GNU文檔說 .INTERMEDIATE .INTERMEDIATE依賴的目標被視爲中間文件。見隱式規則鏈。 ,所以我認爲它只與隱式規則有關。 – makapuf