2013-02-11 21 views
1

這裏是從我的makefile片段:

main_DEPS = $(TARGETS_$(d)/classes/player) $(TARGETS_$(d)/classes/monster) 

它設置main_DEPS其他兩個變量的擴展版本。
這可以正常工作。


我怎麼能代替:

$(TARGETS_$(d)/classes/player) $(TARGETS_$(d)/classes/monster) 

有一個計劃,提供同樣的輸出?

我想:

main_DEPS = $(shell program) 

但似乎設置main_DEPS等於字符串值$(TARGETS_$(d)/classes/player) $(TARGETS_$(d)/classes/monster),而不是擴展版本。

我也試過:

main_DEPS = $(eval $(shell program)) 
main_DEPS = $(value $(shell program)) 
main_DEPS = $(value $(eval $(shell program))) 
main_DEPS = $(eval $(value $(shell program))) 

回答

1

你試試這個:

$(eval main_DEPS = $(shell program)) 

這裏,eval(內表達shell)參數擴展來獲得語句來計算:

main_DEPS = $(TARGETS_$(d)/classes/player) $(TARGETS_$(d)/classes/monster) 

如果我正確理解,這應該是正確的w你想要的帽子。

+0

這個工程。謝謝 – 2013-02-11 17:29:32