2009-08-02 14 views
5

Aşağıdaki GNU makefile var: Hedefi 'd' istiyoruz hedef yeniden yürütmek

.PHONY a b c d 

a: b c 
b: d 
c: d 
d: 
    echo HI 

iki kez çalıştırılmak üzere - bu bir bağımlılık olarak belirtilir beri her ikisi de b & c. Ne yazık ki, hedef 'd' sadece bir kez gerçekleştirilecek. Koşu yapmanın çıktısı sadece 'HI HI' yerine 'HI' olacaktır.

Bunu nasıl düzeltebilirim?

Teşekkürler!

subdirs = a b c 

build: x y 

x: target=build 
x: $(subdirs) 

y: target=prepare 
y: $(subdirs) 

$(subdirs): 
    $(make) -f [email protected]/makefile $(target) 

cevap

1

Eğer böyle bir şey yapmak çalışıyorsunuz: netleştirin için

, amaç böyle bir şeydir

.PHONY: a b c 

define print-hi 
@echo HI 
endef 

a: b c 
b: 
    $(print-hi) 
c: 
    $(print-hi) 
+0

Oldukça değil. Bu gibi daha şey: altklasörlere = ABC inşa: xy x: Hedef = inşa x: $ (altklasörlere) y: Hedef = hazırlamak z: $ (altklasörlere) $ (altklasörlere): $ (make) -f $ @/makefile $ (hedef) –

İlgili konular