
目標
在目標(母目標)呼叫另一個目標(子目標)作為先決條件的通常情況下,我想指派一個特定於模式的變數(請參閱手冊頁),滿足以下條件:
- 變數的值是基於母目標。
- 子目標需要這個變數
情境
我可以將我的用例減少到以下。為了簡單起見,我將使用特定於目標的變數而不是特定於模式的變數(問題是相同的)。這是生成文件:
mother-target: VAR = Var-$@
mother-target: child-target
child-target:
echo VAR=$(VAR)
make
將輸出VAR=Var-child-target
,我希望它輸出VAR=Var-mother-target
。
問題:如何引用定義變數的目標名稱?自動變數@
似乎總是解析為鏈中的「最後一個」目標。
嘗試:
VAR
作為一個簡單的擴展變量,即mother-target: VAR := Var-$@
.卻$@
是空空如也。- 聲明
VAR
私有以便它不被繼承不適合我的用例:子目標需要變數。
真實的情況是使用特定於模式的變量,其中解析目標的名稱實際上是有用的(即%-target: VAR = Var-$@
)