Windows Build Prerequisites on the 1.7 and 1.8 Branches

by 3 contributors:

 

はじめに

この文書は 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)

Cygwin setup

必要なパッケージ:

  • 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 がマッチしている必要がある。http://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 のデバッグする方法。

ドキュメントのタグと貢献者

Contributors to this page: fscholz, Mgjbot, Electrolysis
最終更新者: fscholz,