의존성을 줌으로서
병렬 빌드시 모든 파일이 준비되어야 하도록 해주어야 함
여기서 미묘한 점이 있는데 직렬 질드에서는 make 가 application 의 의존성 목록에서 왼쪽에서 오른쪽으로 작업을 시작할 것입니다. 첫번째로 ${OBJECTS} 의 모든 오브젝트들을 빌드 하고 나서 menu.o 를 빌드하는 규칙을 적용할 것입니다. 이러한 직렬 환경에서는 문제가 없습니다 왜냐하면 menu.o 가 처리될때 필요한 ${OBJECTS} 의 모든 오브젝트들은 이미 제자리에 있을 것이기 떄문입니다. 그러나 병렬 빌드에서 make 는 병렬 환경에서 모든 의존성들을 처리할 수 있으므로 menu.o 의 생성과 컴파일은 모든 오브젝트 들이 준비 되기 전에 시작 될 수 있습니다.
OBJECTS=app.o helper.o utility.o ... application: ${OBJECTS} menu.o cc -o application ${OBJECTS} menu.o # Automatically generate menu.c from the other modules menu.o: nm ${OBJECTS} | pattern_match_and_gen_code > menu.c cc -c menu.c |
application: ${OBJECTS} menu.o cc -o application ${OBJECTS} menu.o menu.o: ${OBJECTS} nm ${OBJECTS} | pattern_match_and_gen_code > menu.c cc -c menu.c |
[링크 : http://blog.syszone.co.kr/2099]
+
[링크 : http://forum.falinux.com/zbxe/index.php?document_srl=405822&]
[링크 : http://korea.gnu.org/manual/4check/make-3.77/ko/make_toc.html]
'프로그램 사용 > make, configure' 카테고리의 다른 글
make 매크로 (0) | 2015.12.14 |
---|---|
make -j -l (0) | 2015.11.30 |
make burn 0.0.0 ??? (0) | 2014.11.11 |
make를 조용하게 (0) | 2014.09.12 |
cmake 사용 (0) | 2011.10.07 |