저는 실제로 3 개의 서브 프로젝트를 포함하고있는 프로젝트를 출시했습니다.이 프로젝트는 모두 한 번에 컴파일해야합니다.서브 프로젝트의 마스터 메이크 파일은 서브 프로젝트를 컴파일하지 않습니다
all: a b c
a:
@cd a && make
b:
@cd b && make
c:
@cd c && make
돌출와 B는 잘 컴파일 모두 만 3 프로젝트를 위해, 그것은 실제로 코드를 컴파일 않는 C 디렉토리 및 실행 메이크업으로 전환하더라도 수행 할 것이없는 나에게 말한다 : 내 메이크는 다음과 같이 대략 보인다 .
좀 더 구체적으로 : 위의 예에서 프로젝트 C는 실제로 Mozilla의 SpiderMonkey입니다. A와 B는 내가 작성한 코드/메이크 파일이지만 C는 Mozilla 웹 사이트의 SpiderMonkey의 원시 복사본입니다. 그것의 실제로 컴파일 명령은 다음과 같습니다
내 마스터 메이크에서make JS_DIST=/usr JS_THREADSAFE=1 JS_HAS_FILE_OBJECT=1
, 나는이 없다 :
spidermonkey:
@cd spidermonkey/src && $(MAKE) JS_DIST=/usr JS_THREADSAFE=1 JS_HAS_FILE_OBJECT=1
가 출력 "의 SpiderMonkey을"실행 "합니다. 아무것도`의 SpiderMonkey '에 대한 수행되어야" make 명령을 실행하려면 어떻게해야합니까?
편집 : 내 메이크 파일에 다음 줄을 추가하지 시도했다 : 변화 여전히
.PHONY: spidermonkey
뿐만 아니라 SM에 SpiderMonkey를 규칙의 이름을 변경하지만.
편집 : 나쁘다! 나는 탭이 있어야했을 때 공간이있었습니다. doh!
이 GNU make입니까? – JesperE
TAB과 make의 공간 문제는 다소 까다 롭습니다. 그러나 대부분의 현대적인 편집자 (예 : Emacs)는 탭이 있어야 할 공간이있을 때 매우 분명하게 강조 표시합니다. 이맥스는 정말로 공간이 필요한지 묻지 않고 저장하지 못하게 할 것이다. – JesperE