2011년 9월 20일 화요일

Chromium 분석 - Build

이번 포스트에서는 다운 받은 Chromium 소스코드를 빌드하는 방법을 알아보겠습니다.

빌드하기 전에 어제 다운받은 소스코드를 최신버전으로 업데이트하기 위해 "gclient sync"를 이용하여 최신버전으로 업데이트 해보겠습니다.

이런... 리비전 101697에서 101737로 업데이트가 되었습니다...

이런 개발속도를 따라가려면 하루 24시간 따라가도 모자라겠네요 ;;;

Chromium은 많은 다른 오픈소스 라이브러리를 필요로합니다.
따라서 빌드를 위해서는 시스템에 의존성이 있는 라이브러리들을 밀 설치해야하는데, Chromium은 이를 위해 ./build/install-build-deps.sh 를 제공하고 있습니다.
이 스크립트를 실행하면 Chromium이 의존성을 가지고 있는 라이브러리들을 설치할 수 있습니다. (참 편하죠? ^^ - 나중에 ARM 환경에서 Cross-compile도 시도해 보아야겠습니다.)

이제 의존성을 다 해결했으니 Makefile을 생성해야겠죠?

이전 포스트에서 depot tools 에 대해 잠깐 살펴보았는데요, 빌드는 gyp라는 빌드 시스템을 사용하고 있습니다. gyp는 configure 스크립트 처럼 Make를 위해 Makefile을 생성해주는 시스템 입니다.

gclient sync를 하면 자동으로 gyp 을 실행하면서 Makefile을 생성해줍니다.
새로 Makefile을 업데이트 하고 싶다면 "./build/gyp_chromium -Dflag1=value1 -Dflag2=value2" 명령을 이용해서 원하는 플래그도 설정합니다.
(기본적으로 Chromium은 compiler warning이 발생하면 빌드를 멈춥니다. warning 을 만나도 빌드를 계속하게 하려면 -Dwerror= 을 추가해 줍니다)

이제 make 명령을 사용하여 빌드를 시작할 수 있습니다.

저는 make -j4 BUILDTYPE=Debug chrome 으로 빌드를 하였습니다.
BUILDTYPE은 Release 와 Debug를 선택할 수 있습니다. Debug 빌드는 디버그 심볼등이 포함되어 있어서 Release 모드 빌드 보다 chrome 실행 파일 크기가 큽니다.

빌드가 오래 걸리네요... 낼 출근을 위해 빌드를 걸어놓고 잠을 자야겠습니다.

낼 아침 빌드가 잘 되어 있으면 다음 포스트는 Chromium 의 소스트리에 대해 알아보도록 하겠습니다.

댓글 4개:

  1. 자료 잘봤습니다 ! 감사합니다.

    답글삭제
  2. 오랫동안 업데이트를 못하고 있는데, 찾아와주시는 분이 계시네요.
    감사합니다!

    답글삭제
  3. make -j4 보다는 BUILDTYPE 지정때문인지.. 여튼 남겨주신 자료 덕분에 크로미움 빌드 성공했습니다 감사합니다 ^^

    답글삭제
  4. 알수 없는 이유로 삽질을 계속했는데 진심으로 감사드립니다~

    답글삭제