はじめに
この文書は Windows プラットフォーム上で 1.7 ブランチ (Mozilla 1.7.*)、aviary ブランチ (Firefox 1.0.*)、1.8.0 ブランチ (Firefox 1.5.0.*)、1.8 ブランチ (Firefox 2) の Mozilla をビルドするのに必要なソフトウェアのガイドです。Mozilla トランクのビルド要件は こちら です。
必要なハードウェア
- Pentium または相当のプロセッサ、266 MHz 以上、600MHz 以上推奨
- 256 MB RAM、512 MB 推奨
- 1.5 GB NTFS または 3 GB FAT 以上のディスクスペース
- Windows NT 系のオペレーティングシステム(NT4.0、Win2k、Windows XP Professional、XP Home Edition)
必要なソフトウェア
GNU Tools for Microsoft Windows (Cygwin)
必要なパッケージ:
- ash -- UNIX ライクなコマンドラインインタプリタシェル(Base カテゴリ)
- coreutils -- GNU コアユーティリティ集(fileutils、sh-utils、textutils を含む)(Base カテゴリ)
- diffutils -- ファイル比較用ユーティリティ(Base カテゴリ)
- findutils(Base カテゴリ)
- gawk -- パターンマッチング言語(Base および Interpreters カテゴリ)
- grep -- テキスト検索ツール(Base カテゴリ)
- make -- ソフトウェアビルド用の依存性アナライザ(Devel カテゴリ)
- patchutils -- パッチファイルを扱うプログラムのコレクション(Devel カテゴリ)
- perl -- ビルドの各所をコントロールするために使用されるスクリプト言語(Interpreters カテゴリ)
- sed -- 検索・置換用言語(Base カテゴリ)
- unzip -- zip ファイルの解凍(Archive カテゴリ)
- zip -- zip ファイルの作成(Archive カテゴリ)
ビルドシステムの configure.in ファイルを変更しようと考えているのであれば、エディタ(xemacs や vim など)および autoconf-2.13(autoconf-2.5x や 2.60 は使用しないでください)パッケージもインストールする必要があります。
cygwin インストーラで "DOS" 形式の改行コードを選択することを強く勧めます。
好みによって、cygwin の perl パッケージの代わりに ActiveState の ActivePerl を使用してもかまいません。
Netscape wintools
1.8 ブランチまたはトランクをビルドする場合(1.8.0 以前のブランチは該当しない)、MSVC の全バージョン向けの moztools、glib、libIDL のスタティック版である moztools-static パッケージを利用するようにしてください。1.8.0 以前のブランチをビルドする場合は MSVC++ 7 に適したバージョンのものと一緒に wintools をダウンロードする必要があります。
1.8.0 ブランチ以前をビルドしようとしているのであれば、Netscape の wintools.zip に Mozilla のビルドに必要なあらかじめビルドされたライブラリやツールが収められています。MSVC++ 7 でビルドするときはさらに glib および libidl ライブラリをインストールする必要があります。下をご覧ください。
zip ファイルを一時ディレクトリに解凍し、Windows コマンドウィンドウを開いてください。そしてビルドツールをインストールしたいディレクトリを MOZ_TOOLS に設定してください。例えば:
set MOZ_TOOLS=C:\moztools
MOZ_TOOLS ディレクトリは cygwin をインストールしたディレクトリの内部に設定してはいけません。cygwin のサブディレクトリに設定するのもいけません。このような設定ではビルドに失敗します。
wintools インストールスクリプトを実行します。このバッチスクリプトはファイルを %MOZ_TOOLS%/bin にインストールします。
cd buildtools\windows install.bat
MSVC の全バージョン向けの moztools、glib、libIDL のスタティック版である moztools-static パッケージが利用できます。この moztools-static パッケージは 1.8 ブランチおよびトランクでのみ使用できます。1.8.0 以前のブランチでは使用できません。
MSVC7/7.1 用の glib/libIDL
MSVC++ 7 または 7.1 を使ってビルドする場合は、あらかじめビルドされたバージョンの glib および libILD ライブラリをインストールする必要があります。スタティックな moztools パッケージにはこれらのライブラリが含まれていますので、それを使用するのであれば他に何も入手する必要はありません。そうでない場合は、これらのライブラリのあらかじめビルドされたバージョンを mozilla.org の FTP サーバ から入手してください。これらのライブラリを既存の moztools ディレクトリに上書きインストールしないようにしてください。その代わりに、別の場所にインストールし、MOZCONFIG ファイルか環境変数で GLIB_PREFIX、LIBIDL_PREFIX および PATH を適切に設定してください(下をご覧ください)。
cvs
Mozilla のソースを引っぱってくるのには cvs のバージョン 1.11 以降が必要です。Cygwin CVS を推奨します。CVS をインストールする際には emacs のようなエディタもインストールするのがよいでしょう。
コンパイラとリンカ
Windows で Mozilla をビルドための標準的なコンパイラは Microsoft Visual C++ バージョン 6 以降です。MSVC の GUI ツール環境は使用しません。コマンドラインツールである CL(C/C++ コンパイラ)、LINK(リンカ)、RC(リソースコンパイラ)および ML(アセンブラ)のみを使用します。Visual C++ Service Pack 5 および Visual C++ Processor Pack が必要です。Service Pack 6 はサポートしていません。MSVC バージョン 5 もサポートしていません。
MSVC ツールを使えるようにするために環境を設定する必要があります。これには vcvars32.bat
スクリプトを使用するのが基本です。詳しくは下をご覧ください。
2002 (VC7.0) や 2003 (VC7.1) といった、より新しい Microsoft visual C++ コンパイラを使ってこれらのブランチをコンパイルすることも可能です。バージョン 2005 (VC8) は使えません。
(非推奨ながら)MinGW gcc コンパイラを使っても Mozilla をコンパイルすることができます。MinGW を使った Mozilla のコンパイル をご覧ください。
Platform SDK
少なくとも Visual Studio .NET 2003 を使用しているのであれば、mozilla のビルドに必要な SDK はすべて揃っているのでこのステップは飛ばしてもかまいません。それよりも古いコンパイラの場合、Microsoft から SDK をダウンロードし、GDI+ ヘッダおよび同ライブラリを手に入れる必要があります。
Visual C++ 6 を使用するときは platform SDK の october 2002 または february 2003 のバージョンのどちらかを入手する必要があります。最新版は Visual C++ 6 では全く使えません。中間のバージョンではデバッグ情報に互換性のないものもあり、そのときはリリースモードしかきちんと動きません。実際、february 2003 バージョンでさえも Visual C++ 6 と互換性のないデバッグファイルが 1 つありますが、これは mozilla には影響を与えません。
Platform SDK は Microsoft Download Center から入手可能です。"Windows Core SDK"(Tools、Build Environment および Redistributable Components)と "Web Workshop SDK" (Build Environment) を必ずインストールしてください。
古いバージョンが必要な方は ここの february 2003 PSDK から入手できます。もっと古いバージョンの PSDK の CD をここ から注文することもできます。
SDK のパスをピックアップできるようにビルド環境を変更する必要があります。下の例をご覧ください。
NSIS
Mozilla 1.8 ブランチからビルドされるアプリケーションには、そのインストーラとして NSIS を使用するものがあります。これには特に Firefox 2、Thunderbird 2 そして Sunbird 0.3 といったツールキットアプリが該当します。インストーラをビルドする必要があるのであれば、NSIS をセットアップし、PATH にそれを追加してください。バージョン 2.17 以上を推奨します。
環境変数の設定
ビルド環境は mozilla のビルドシステムが適切なコンパイラやライブラリを見つけられるように設定されている必要があります。このためには DOS バッチスクリプトを利用するのが最良です。パスにスペースや他の特殊な文字が入っているとビルドに失敗する可能性があります。Visual C++ を除いてそのようなパスにインストールされているソフトウェアがないかを確認してください。
以下が環境変数の設定に使うバッチスクリプトです(cmd.exe で実行するか cygwin.bat ファイルを変更してください)。
rem --- cvs や ssh が正常に動くように HOME をセット rem --- cvs は .cvspass ファイルを、ssh は .ssh ファイルを置くために HOME を使用する rem --- ssh を使用する場合は /etc/passwd で指定されたホームディレクトリに HOME がマッチしている必要がある。https://www.cygwin.com/faq/faq0.html を参照。 set HOME=C:\home rem --- MSVC の vcvars.bat ファイルがある場所を VCVARS にセット set VCVARS=C:\Program Files\Microsoft Visual Studio 6\VC98\Bin\VCVARS32.BAT rem --- MS SDK がインストールされている場所を MSSDK にセット rem --- MSVC6 でのみ別個 SDK が必要 set MSSDK=C:\Program Files\Microsoft Platform SDK rem --- moztools パッケージがインストールされている場所を MOZ_TOOLS にセット set MOZ_TOOLS=C:\moztools rem --- cygwin がインストールされている場所を CYGWINBASE にセット rem --- CYGWIN という名前を使ってはならない。cygserver や cygrunsrv、他の cygwin のサービスが正しく機能しなくなる。 rem --- CYGWIN 変数は Cygwin の挙動を少し変える目的で使用する。 set CYGWINBASE=C:\cygwin rem --- Cygwin が DOS 形式のパスについての警告を出力しないようにする set CYGWIN=nodosfilewarning rem --- VC7 または VC7.1 を使用する場合、GLIB_PREFIX および LIBIDL_PREFIX をセットする必要がある set GLIB_PREFIX=C:\moztools_vc71 set LIBIDL_PREFIX=C:\moztools_vc71 rem --- Cygwin のパスを先頭に追加 rem --- PATH において cygwin のfind
が windows のfind.exe
よりも先に来るようにし、cygwin のlink
は MSVC のlink.exe
の後ろに来るようにする rem PATH=%CYGWINBASE%\bin;%PATH% rem --- MSVC の環境変数をセット call "%VCVARS%" rem --- SDK のパスを先頭に追加 rem --- MSVC6 の場合のみ必要 set PATH=%MSSDK%\bin;%PATH% set INCLUDE=%MSSDK%\include;%INCLUDE% set LIB=%MSSDK%\lib;%LIB% rem --- glib/libidl をビルド環境に追加 rem --- VC7 または 7.1 でのみ必要 set PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%\bin set INCLUDE=%GLIB_PREFIX%\include;%INCLUDE% set LIB=%GLIB_PREFIX%\lib;%LIB% rem --- moztools を glib/libIDL の後の最後に持ってくる set PATH=%PATH%;%MOZ_TOOLS%\bin rem --- 現在の PATH の状況: rem MS-SDK; MSVC; Cygwin; Windows; glib/libIDL; Moztools rem --- 基本的にスクリプトが最後にやることは cygwin シェルを立ち上げること rem --- 警告:これは設定したパスをリセットする可能性がある!/etc/profile や ~/.profile を確認すること。 bash --login -i
コンパイルする前に %CYGWINBASE%\bin\link.exe を glink.exe などにリネームしてください。そうしないと(configure 時に)このようなエラーが生じるでしょう。
configure: error: The incremental linker version, , does not match the compiler suite version, 7.1. Fix above errors and restart with "make -f client.mk build"
よくある問題とヒント
- Mozilla ビルド FAQ をチェックしてください
- ソースツリーが /cygdrive/<c> マウントポイント下にあるようにしてください。/home 下にあってはいけません。
- cygwin ディレクトリ内に wintools ディレクトリをインストールすると Mozilla をビルドできない可能性があります。
- w32api が見つからないために configure やビルドが失敗するのであれば、mingw32 の /include ディレクトリを INCLUDE 環境変数の最後に追加してください。mingw32 のライブラリやバイナリではなく、そのヘッダのみが必要です。
- PATH 環境変数に引用符 (") が含まれているとビルドに失敗する可能性があります。cygwin のサブシェルに渡す際に引用符を適切に変換できないからです。通常、引用符は必要ないので除去することができます。
- 今のところビルドシステムは make 3.81 と互換性がありません。そのため、必ず make 3.80 を使用してください。この問題は bug 325148 で追跡されており、部分的なパッチもあります。
- Cygwin のメーリングリストによると、make 3.81 での挙動の変化は DOS 形式のパスのパッチが取り除かれたことによるものとのこと。そのパッチは make 3.80 では有効。
- cygwin パッケージが完全に揃っているか再確認してください。不完全な場合は cygwin インストーラを立ち上げて足りないパッケージを追加してください。
- Windows 上での Mozilla のデバッグ FAQ:Windows 上で Mozilla のデバッグする方法。