WebKit 빌드 성공담

Dev 2008. 10. 31. 17:09
WebKit (이후 웹킷) 소스를 다운 받아 빌드를 시도하고 있다. 소스를 개발하는 것도 아니고, 다른 사람들이 잘 만들어 놓은 소스를 받아다 빌드만 하는건데... 왜 이리 힘든지... 빌드 하며 겪은 시행 착오를 메모 해둔다.

우선 사전에 확인할 사항이 몇개 있다.

1. unix 파일 포맷
빌드 과정에 cygwin 상에서 *.sh 파일들이 몇개 실행된다. 근데, 이놈들이 dos 텍스트 모드다. 파일 찾기로 *.sh을 모두 찾아서 dos2unix 해줘야 한다. 그러지 않으면 "\r 파일을 처리할 수 없다... 어쩌구..." 하는 에러가 출력된다.
*.sh 파일만 바꾸면 될 줄 알았는데, 빌드에 관련된 소스 파일들을 모두 변환해줘야 한다. 빌드 할 때, perl 을 이용해서 소스를 자동 생성하는데, 텍스트 파일 모드를 변환하지 않으면 에러가 발생한다.

2. cygwin 툴 설치
WebKit 빌드를 위해 필요한 cygwin의 모든 패키지가 설치되어 있는지 확인해야 한다. 당연히 모두 설치되어 있을 거라고 자신했는데, 실상은 그렇지 않았다. 조금만 겸손하게 확인해도 많은 시간을 절약할 수 있다. 겸손한 마음으로 http://webkit.org/building/tools.html 를 한번 더 확인해보자.

웹킷을 갖고 작업하는 변방의 개발자들 끼리 많은 정보를 공개했으면 좋겠다. 댓글이나 트랙백 아주 많이 환영한다.



(win xp 32bit 환경에서)
WebKit
빌드& 실행 과정 정리

 

 

개발툴 설치, 특히 필요한 cygwin의 모든 패키지가 설치됐는지 확인

참조 URL

l  http://webkit.org/building/tools.html

l  http://trac.webkit.org/wiki/BuildingOnWindows

 

할일

-       VS2005 설치

-       VS2005 patch 설치

-       Cygwin 설치

-       QuickTime SDK 설치

 

 

 

WebKit 소스 확보

참조 URL

l  http://webkit.org/building/checkout.html

l  http://svn.webkit.org/repository/webkit/trunk(subversion 소스 URL)

 

할일

-       subversion client(TortoiseSVN)으로 http://svn.webkit.org/repository/webkit/trunk 소스 가져오기

 

 

 

WebKitSupportLibrary.zip 을 작업 디렉토리 루트에 복사

참조 URL

l  http://webkit.org/building/checkout.html

 

할일

-       http://developer.apple.com/opensource/internet/webkit_sptlib_agree.html 에서 WebKitSupportLibrary.zip 파일을 다운로드 하여 WebKit 프로젝트 홈디렉토리에 복사

 

 

 

소스 업데이트

참조 URL

l  http://webkit.org/building/checkout.html

 

할일

-       WebKitTools/Scripts/update-webkit 스크립트 실행

 

사용자 삽입 이미지

 

 

모든 소스 파일을 unix text file로 변환 (dos2unix)

참조 URL

l  http://trac.webkit.org/wiki/BuildingOnWindows

l  *.sh 파일만 변환하면 될 줄 알았는데, 그게 아님. 모든 소스를 변환해야 함. 빌드과정에서 perl을 통해 소스파일을 생성할 때 문제가 생김.

l  빌드에 참여하는 소스 코드만 변환해야 시간을 절약할 수 있다. 소스 디렉토리에는 테스트 관련 파일들이 무척 많다. 전부 변환하려면 세월이다.

 

할일

-       *.sh 변환

find . -name "*.sh" -exec dos2unix {} \;

-       JavaScriptCore/* 변환

find JavaScriptCore -type f -exec dos2unix {} \;

-       JavaScriptGlue/* 변환

find JavaScriptGlue -type f -exec dos2unix {} \;

-       WebCore/* 변환

find WebCore -type f -exec dos2unix {} \;

-       WebKit/* 변환

find WebKit -type f -exec dos2unix {} \;

-       WebKitLibraries/* 변환

find WebKitLibraries -type f -exec dos2unix {} \;

 

사용자 삽입 이미지

 

 

환경변수 WEBKITOUTPUTDIR, WEBKITLIBRARIESDIR 설정

참조 URL

l  http://trac.webkit.org/wiki/BuildingOnWindows

 

사용자 삽입 이미지

 

 

VS2005로 WebKit sln 파일을 로드하여 컴파일 옵션 수정

일러두기

l  VS2005 프로젝트 파일이 build-webkit 스크립트에도 동일하게 사용된다. 그래서 ~/WebKit/win/WebKit.vcproj/WebKit.sln 의 빌드 옵션을 설정하면, 스크립트(WebKitTools/Scripts/build-webkit)로 빌드 할 때도 여기서 설정한 빌드 옵션이 적용된다.

 

할일

-       VS2005~/WebKit/win/WebKit.vcproj/WebKit.sln 로드

-       아래 프로젝트의 컴파일러 옵션에 /wd4819 추가 ( 이렇게 하지 않으면 빌드 과정에서 문자열 코드 페이지관련 워닝을 낸다. 영어권 개발자들은 경험하지 못할 문제다. 해당 워닝을 무시하지 않으면 이를 에러로 취급한다. )

QTMovieWin, WebCore, WebKit, TestNetscapePlugin

 

사용자 삽입 이미지

 

 

빌드

할일

-       WebKitTools/Scripts/build-webkit --debug 실행

 

사용자 삽입 이미지

 

 

빌드 성공!

 

사용자 삽입 이미지

 

 

웹킷 실행, 디버그

참조 URL

l  http://webkit.org/building/debug.html

 

할일

-       WebKitTools/Scripts/debug-safari 실행 (PC에 Safari 브라우저가 설치되어 있어야 한다.)

-       debug-safari를 실행하면 VS2005 디버깅 환경이 뜬다.

-       소스를 열고, 원하는 지점에 브레이크 포인트를 설정한다.

-       F5를 눌러 디버깅을 시작한다.

 

사용자 삽입 이미지

 

 

debug-safari 스크립트로 웹킷을 실행시키려면, PC에 사파리 브라우저가 설치되어 있어야 한다. 다시 한번 말하지만, 웹킷은 브라우저가 아니라 브라우저 엔진이다.

(
)

 

Posted by ingeeC
,