2013-01-15 3 views
0
TOUCHFILE=.touch 
NM = meow 
.PHONY: extract 
extract: $(TOUCHFILE) 
$(TOUCHFILE): $(ARCHIVE) Makefile 
    ifeq ($(wildcard TOUCHFILE),) 
    rm -rf $NM 
    touch $(TOUCHFILE) 
    else 
     @echo "nice going"; 

위의 작업을 수행해야합니까? 처음으로 .touch가 없으면 dir을 제거하고 .touch를 만듭니다. 다음 번에 나는 추출물로 달린다. make가 meow 디렉토리를 제거하고 나머지 작업을 할 때마다 확인합니다. A는 경우 - 당시 다른 확인하는 것이메이크 파일 조건부

+0

당신이 * 경우 --다른 후, 또는 * 제조사를 A * 쉘을 사용하려고 : - (".touch"하지 그것은 "TOUCHFILE"를 검색 또한주의 와일드 카드 표현은 잘못된 것) * if-then-else? – Beta

+0

make then then –

답변

2

참고 endif 종료되어야하며이 명령이 아니기 때문에 지시어는 하지는 탭으로 선행되어야한다.

$(TOUCHFILE): $(ARCHIVE) Makefile 
ifeq ($(wildcard $(TOUCHFILE)),) 
    rm -rf $NM 
    touch $(TOUCHFILE) 
else 
    @echo "nice going"; 
endif 
+0

예 이미 가지고 있습니다. 여전히 동일한 문제가 발생합니다. –

+0

@SreeramRavinoothala : 어떤 버전의 Make를 사용하고 있습니까? – Beta

+0

나는 다른 곳으로 endif를 넣었다. –