2013-09-22 2 views
3

'for'루프를 사용하여 하위 디렉토리를 만들지 만 하위 디렉토리를 만들 때 오류가 발생하면 다음 디렉토리를 계속 만듭니다. 하위 디렉토리에 'make'오류가 발생합니까?gnu make : for 루프에서 에러가 발생했을 때 중지하고 종료하는 방법

all: 
     for i in $(SUBDIRS); do $(MAKE) -C $$i dll || exit 1; done 

(주는 항상 재귀 결코 make, 하위 차종를 호출하지 않으려면 $(MAKE) 사용) :

all : 
    for i in $(SUBDIRS); do make -C $$i dll; done; 
       || 
make[1]: *** [bd_snmp.o] error 1 
make[1]: Leaving directory `/home/ping/work/svnsocserv/src/bd_snmp' 
make[1]: Entering directory `/home/ping/work/svnsocserv/src/bd_snmp_proxy' 

답변

5

물론, 단지 확인 쉘 스크립트에 무언가를 추가 할 수 있습니다.

하위 방법이 실패 할 때 즉시 종료되지만 계속 진행하려면 make -k 옵션을 따르지 않으므로 이것은 훌륭한 방법은 아닙니다.

+0

감사합니다. 제대로 작동합니다. .phony를 사용하여 이것을 구현할 수 있습니다 .'PHONY : $ (SUBDIRS) ... – PigeonLueng

관련 문제