우선 사전에 확인할 사항이 몇개 있다.
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에 사파리 브라우저가 설치되어 있어야 한다. 다시 한번 말하지만, 웹킷은 브라우저가 아니라 브라우저 엔진이다.
(끝)