2015-05-14 15 views
3

這裏是行不通製作出計算變量的目標在化妝

say-hello := greeting 
say-bye := farewell 

greeting: 
    @echo "Hello" 

farewell: 
    @echo "Bye" 

.SECONDEXPANSION: 
%-guvnah: $$(say-$*) 
    @echo "Target was: $(say-$*)" 

該命令的示例

make hello-guvnah 

應該產生

hello 
Target was: greeting 

但只有

顯示
Target was: greeting 

回答

2

它將如果你加倍逃脫的先決條件$*所以它得到二次擴張,而不是在第一遍期間擴大:$$(聲言如下─%):

.SECONDEXPANSION: 
%-guvnah: $$(say-$$*) 
    @echo "Target was: $(say-$*)" 
+1

我'%-guvnah做到了'事實上,但那也行得通。謝謝 – fakedrake