2009-08-02 5 views
5

나는 다음과 같은 GNU 메이크있다 : I 대상 'D'를 싶습니다 목표를 다시 실행

.PHONY a b c d 

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

두 번 실행하는 -가에 의해 종속성으로 지정된 이후를 둘 다 & c. 불행히도 목표 'd'는 단 한 번만 실행됩니다. 실행중인 make의 결과는 단순히 'HI HI'대신 'HI'가됩니다.

어떻게 해결할 수 있습니까?

감사합니다.

subdirs = a b c 

build: x y 

x: target=build 
x: $(subdirs) 

y: target=prepare 
y: $(subdirs) 

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

답변

1

당신이 그런 짓을하려고 : 명확히하기 위해

는, 목표는이 같은 것입니다

.PHONY: a b c 

define print-hi 
@echo HI 
endef 

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

아닙니다. 이 같은 더 일 : SUBDIRS = ABC 빌드 : XY X : 타겟 = 빌드 X : $ (하위 디렉토리) Y : 대상 = 제조 Z : $ (하위 디렉토리) $ (하위 디렉토리) $ (make) -f $ @/makefile $ (target) –