2009-08-07 4 views
2

모든 프로젝트를 빌드하기위한 빠른 makefile을 작성해야합니다. 이것은 C++ 코드이며 gmake를 사용하고 있습니다.재귀 gmake 질문

디렉토리 목록이 있다고 말하면 각자 cd하고 gmake 명령을 실행하고 성공하면 다음 명령으로 이동합니다. 난 그냥 gmake를 입력하면, 그것은 옳은 일을한다 -

나는 그것은 "모든"대상에 대해 작동 gmake manual

.PHONY: all clean dirs $(DIRS) 

dirs: $(DIRS) 

$(DIRS): \n\t 
    $(MAKE) -C [email protected] 

보고이 요리. 그러나 내가 깨끗하게하면 아무것도하지 못합니다.

내가 가서 내가 gmake를 배우고, 그래서 나는 확실히 여기에서 뭔가 바보 :) 어떤 도움

감사를하고있는 중이 야.

답변

8

첫 번째 대상이 아닌 다른 대상을 재귀 적으로 만들려면 (모든 것이 첫 번째 대상이라고 추측합니다) 하위 작성자에게 무엇을 빌드할지에 대한 아이디어를 제공해야합니다. MAKEFLAGS 및 MAKECMDGOALS 변수로 그렇게 할 수 있습니다. 규칙이 대상 이름을 따라 통과되지

$(DIRS): 
     $(MAKE) -C "[email protected]" $(MAKEFLAGS) $(MAKECMDGOALS) 

, 예를 들면 : 예를 들어

깨끗했기 때문에 서브 - 메이크는 할 일이 없었습니다 (모두 이미 만들어 졌기 때문에).

+0

예, 실제로 고쳐졌습니다. 감사. –