의존성을 줌으로서

병렬 빌드시 모든 파일이 준비되어야 하도록 해주어야 함


여기서 미묘한 점이 있는데 직렬 질드에서는 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
makefile 병렬 대비하기  (0) 2015.11.30
make burn 0.0.0 ???  (0) 2014.11.11
make를 조용하게  (0) 2014.09.12
cmake 사용  (0) 2011.10.07
Posted by 구차니

댓글을 달아 주세요