2012-10-25 2 views

답변

0

그것은 잘못된 형식을 가지고, 그래서 난 단지 그것을 음 ... 전에 무엇인지 추측 할 수 있으므로이 :

첫 번째 줄의 assignes 목록 "foo는 바 바즈"라는 변수 SUBDIRS

초 라인 모든 지정된 대상을 '음성 학적'으로 만드는 특수 명령입니다. "make dirs"또는 "foo"를 호출 할 수 있으며, 그 이름을 가진 대상을 찾아 실행합니다. 그러나이 이름을 가진 실제 파일은 없습니다 (일반적인 non- 가짜 목표)

세 번째 - SUBDIRS 변수의 값에 따라 'dirs'라는 대상을 만듭니다. 공백으로 구분 된 목록. 이 타겟에는 실제 액션이 없습니다.

네 번째 줄은 종속 관계가없는 SUBRIDS 변수 내용에 대한 규칙을 만듭니다. 텍스트의 나머지 부분은이 대상을 '만들기'위해 수행해야하는 작업입니다 (그래서, 경우에 따라 - "make"를 호출하면 "make dirs"를 호출합니다 (첫 번째 대상이기 때문에). foo, bar, baz -이 타겟이 호출됩니다. 각각의 타겟을 수행하기 위해 make는 echo와 ls를 호출합니다 -

+0

'SUBDIRS = foo bar 바즈. PHONY : dirs $ (SUBDIRS) $ (SUBDIRS) : echo $ @ ls $ @'이 메이크 파일을 사용하면 foo 디렉토리 목록 만 출력되는 이유는 무엇입니까? – androidbuddy

+0

'''''''makefile을 사용한다면''SUBDIRS = foo bar baz .PHONY : $ (SUBDIRS) $ (SUBDIRS) : echo $ @ ls $ @'이유는 단지 foo 디렉토리 목록을 출력하는 것입니까? – androidbuddy

+0

foo가 처음 대상이기 때문에 makefile에 'all'타겟을 지정하지 않았습니다 (IIRS 'make'는 'make all'과 동일합니다). 귀하의 의견 중 하나를 삭제, btw, 그것은 이상한 보입니다. – keltar