2010-01-23 2 views
10

내 첫 번째 질문 (예!)은 gnumake 및 병렬 빌드에 관한 것입니다.gnumake 및 필수 구성 요소가있는 병렬 빌드

.PHONY: tool_1 tool_2 tool_3 tool_4 all tools 

all: | tools 

tools: | tool_2 tool_3 tool_4 

tool_1: 
    # commands for tool 1 

tool_2: | tool_1 
    # commands for tool 2 

tool_3: | tool_1 
    # commands for tool 3 

tool_4: | tool_1 
    # commands for tool 4 

내가이 사람에 make -j을 할 경우에, 나는 tool_1의 명령이 정확히 한 번 실행된다는 점을 보장하기 위해 여기에 올바른이 무엇이며, tool_[234]의 구축을 make 전에 시도 : 여기에 빠른 예제 파일입니다?

은 내가 찾고 다음 tool_[234] 병렬로 건설 될 make -j 원인 tool_1가 처음 건설 될 것입니다,하지만 tool_1 세 번 명령을 실행하지 않고. 나는 그것이 의미가 있기를 바랍니다. 어떤 제안이나 아이디어 주셔서 감사합니다!

+0

원하는대로 작동하는 것처럼 보이지만,이 병렬 빌드 작업에는 시스템로드 또는 컴퓨터에서 기계로의 동작을 변경하는 방법이 있습니다. –

답변

8

make -j은 질문에 예상 한대로 동작합니다. 의존성을 여러 번 만들지는 않습니다.

해당 파이프 (|) 문자가 종속성 목록에서 무엇을합니까?

+10

주문 전용 선행 조건 : http : // www.gnu.org/software/make/manual/make.html#Prerequisite- Types – Amro

+0

감사합니다. @Alex. 설명서에 나와있는 내용을 찾지 못했습니다. –

+0

나는 GNU make를 꽤 잘 알고 있다고 생각했지만, 이것은 내가 놓친 기능이었다. – JesperE

관련 문제