2017-02-02 70 views
0

我正在使用靜態模式規則編寫一個Makefile,並且我想爲每個TARGETS元素分配一個變量賦予當前目標名稱(這裏是詞幹'%')。Make:在靜態模式規則中設置特定於目標的變量

TARGETS = a b c d 

all : $(TARGETS) 
$(TARGETS) : % : DIR = % 
$(TARGETS) : % : %_setup build 

a_setup : 
code for a 
b_setup : 
code for b 
... 
build 
code using "DIR = XX" previously configured 

但gnumake的抱怨特定目標變量DIR:

make: *** No rule to make target 'DIR', needed by 'a' 

是否可以混合使用靜態模式規則和可變分配?謝謝!

+0

你可以使用'目標:在您例如,您可以直接分配[email protected]但更普遍的,你可以結合使用[email protected]patsubst DIR = $ @'。 –

+0

你永遠不需要這樣做。靜態模式規則的一個要求是你有一個目標列表...所以你可以隨時在目標列表中使用正常的目標特定變量。 – MadScientist

回答

相關問題