公式には載っていない Firefox のコンパイル
Mozilla FirefoxはVisual Studio 2005 Professional Edition で困憊するすのが推奨されているのですが、公式サイト通りにコンパイルしようとしてもうまくいかないので、tips的なものを紹介します。
・用意するもの
VC8.0 (Visual Studio 2005 Express Edition)
Microsoft Windows SDK (Windows Server® 2003 R2 Platform SDK)
MozillaBuild v1.4
ターゲットのFirefoxのソース
ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/バージョン/source/ に存在する firefox-バージョン.source.tar.bz2をダウンロードします。
・bz2の解凍。
UniversalExtractorを使うと楽です。
・準備
Mozilla Build をインストールすると、start-msvc8.bat というのがあると思います。これが、2005用の インストール環境バッチです。
そのままでは動かないので
set VC8DIR=C:\Program Files\Microsoft Visual Studio 8\VC set VC8EXPRESSDIR=C:\Program Files\Microsoft Visual Studio 8\VC set SDKDIR=C:\Microsoft Platform SDK for Windows Server 2003 R2 set SDKVER=5 |
のように環境変数を追加します。
バッチファイルの起動が成功すると、ソースフォルダに移動して
Cygwinのコマンドプロンプト $ が表示され、
make -f client.mk build と入力すればコンパイルができます。
configure: error: --enable-application=APP was not specified and is required. |
しかし、このようなエラーが出た場合は、ファイルが足りません。
cp browser/config/mozconfig . |
を実行します。
configure: error: System header wpcapi.h is not available. See updated http://de veloper.mozilla.org/en/docs/wpcapi.h for details on fixing this problem. |
のようなエラーが出る場合は、SDK v6 が必要なのですが、2つの方法が選択できます。
1.Vista 用のAPIを無効化する
./configure --enable-application=browser --disable-vista-sdk-requirements |
2.追加のInclude ファイルを導入する コンパイルはできるのですが、v6のShObjIdl が必要になるので、結局 v5.2の SDKでは無理のようです。
・Runtime が不要な実行パックを作る。
そのままコンパイルすると次のように MSVC*80.DLLが必要なパッケージができてしまいます。
security\nss\lib\freebl\mpi\MakeFile.win や config\config.mk、js\src\config\config.mk、js\src\ref-config\WINNT*.mk、security\coreconf\WIN32.mk の CFLAGS、RTL_FLAGS、OS_CFLAGS 中の -MD となっている個所を -MT に変更してやることで解決すると思います。
[2010/2/1加筆]大ウソでした(^^;
start-msvc*.bat をいじります。
set MOZCRT=C:\mozilla-build\lfx\memory\jemalloc\src\build\intel
set LIB=%MOZCRT%;%LIB%
set LIBPATH=%MOZCRT%;%LIBPATH%
を書き加えるだけでOKです。
これで、MSVCRxx.dll の代わりに MOZCRT19.dllなどがリンクされます。
関連サイト
Download details: Windows® Server 2003 R2 Platform SDK Full Download
Windows Build Prerequisites - MDC
Comments