Visit Mozilla.org

Windows build prerequisites using cygwin

出典: MDC


目次

[編集] この文書は歴史的な資料です

この文書は 2007 年 3 月の MozillaBuild システム導入前の Mozilla 1.9 コードベースをビルドするためのビルド要件のガイドです。Firefox 1.5.0.10 以上、Firefox 2.0.0.2 以上、Firefox 3 をビルドする場合は標準的な Windows ビルド要件 を見てください。

Firefox 2、Firefox 1.5、また、1.9 より前のブランチベースの他の Mozilla 製品をビルドする場合は 1.7 および 1.8 ブランチにおける Windows ビルド要件 を参照してください。

1.0 ブランチ以前のとても古いバージョンの Mozilla のソースコードをビルドする場合は nmake ビルドガイド に従ってください。

[編集] 必要なハードウェア

Mozilla のビルドには時間がかかります。開発環境の整ったシステムが必要となります。

  • Pentium III または相当のプロセッサ、1GHz 以上、1.5GHz 以上推奨
  • 512 MB RAM、1 GB 推奨
  • 1.5 GB NTFS または 3 GB FAT 以上のディスクスペース
  • Windows NT 系のオペレーティングシステム(NT4.0、W2K (SP4?)、Windows XP、Windows Vista)

[編集] 必要なソフトウェア

Windows での標準的なビルドには以下のソフトウェアが必要です。

スペースやプラス、引用符、メタ文字といった分割文字が含まれるパスにツールがインストールされていると Mozilla をビルドできない可能性があります。Visual C++ ツールはスペースを含むディレクトリにインストールされる可能性があります(デフォルトのインストール場所が望ましい)。

[編集] GNU Tools for Microsoft Windows (Cygwin)

Cygwin は Windows 用の GNU ツールが利用できる Linux ライクな環境です。Mozilla は GNU パッケージの開発者向けセットを使用します。必ずインストールしてください。これには gawk、make および zip ユーティリティが含まれます。GCC は使用しませんのでインストールする必要はありません。必ず Cygwin 1.1.6 以降を使用してください。ご利用のオペレーティングシステムには cygwin を 1 バージョンしかインストールできません。複数インストールした場合にはそれぞれが干渉し、エラーが生じる可能性があります。

ここをクリックし、setup.exe を実行し、インストールガイドに従ってください。Cygwin インストーラウィザードは Windows プログラムとして実行されます。ウィザードにカテゴリやパッケージの概要が表示されるページがあります。標準の設定に加えてパッケージを追加する必要があります。

Cygwin を Mozilla のビルドにのみ使うのであれば標準のパッケージと Mozilla で必要となるパッケージのみをインストールしてください。この文書を書いている時点でのバージョンのインストーラ(バージョン 2.510.2.2)では、標準で選択されていないパッケージは以下のとおりです。

  • zip、unzip(Archive 下)
  • cvs(Devel 下。CVS からチェックアウトする場合のみ。tar ボールを使用する場合は不要。)
  • libiconv(Devel 下。インストーラをビルドする場合のみ。)
  • patchutils(Devel 下)
  • perl(Interpreters 下)
  • make 3.80 は入手不可能になっています。下を見てください。

Cygwin の GNU ツールを他の開発にも使うのであれば、興味のあるものも含めて、エディタや開発者向けツール、インタプリタをインストールしてください。Mozilla が必要とする unzip や zip といったパッケージもすべて忘れないようにしてください!

以下は Mozilla のビルドに必要な完全な cygwin パッケージのリストです。これを使って手元のパッケージを再確認したり、ビルドプロセスを理解したり変更することもできます。

  • ash -- UNIX ライクなコマンドラインインタプリタシェル(Base カテゴリ)
  • coreutils -- GNU コアユーティリティ集(fileutils、install、sh-utils、textutils を含む)(Base カテゴリ)
  • cvs -- バージョン管理システム(Devel カテゴリ)
  • diffutils -- ファイル比較用ユーティリティ(Base カテゴリ)
  • findutils(Base カテゴリ)
  • gawk -- パターンマッチング言語(Base および Interpreters カテゴリ)
  • grep -- テキスト検索ツール(Base カテゴリ)
  • libiconv -- 文字セット変換(Devel カテゴリ)- libiconv2 にはインストーラで必要な iconv プログラムが入っていません
  • make 3.80(3.81 はだめ!下を見てください)-- ソフトウェアビルド用の依存性アナライザ(Devel カテゴリ)
  • patchutils -- パッチファイルを扱うプログラムのコレクション(Devel カテゴリ)
  • perl -- ビルドの各所をコントロールするために使用されるスクリプト言語(Interpreters カテゴリ)
  • sed -- 検索・置換用言語(Base カテゴリ)
  • unzip -- zip ファイルの解凍(Archive カテゴリ)
  • zip -- zip ファイルの作成(Archive カテゴリ)

ビルドシステムの configure.in ファイルを変更しようと考えているのであれば、エディタ(xemacs や joe など)と autoconf-2.13(autoconf-2.5x および 2.60 は機能しません)パッケージもインストールする必要があります。

デバッグビルドをビルドしない場合は binutils パッケージをインストールして strip.exe を使用できるようにすることをお勧めします。

好みによって、Cygwin の perl パッケージの代わりに ActiveState の ActivePerl を使用してもかまいません。

[編集] make

make 3.80 は cygwin のインストーラで入手不可能になっています(バージョン 3.81 は動きません)。そのため、paracoda からダウンロードし、その中の make.exe を %cygwin%\bin\ ディレクトリに配置してください。例えば、cygwin の bash シェルを起動し、次を実行します。

cd /
tar xjf /cygdrive/c/where-your-download-is/make-3.80-1.tar.bz2
bin/make.exe --version

[編集] moztools

moztools パッケージには Mozilla のビルドに必要なバイナリやライブラリが含まれています。MSVC の全バージョンで動作する全 moztools を含む単一の zip ファイルは moztools-static.zip から入手可能です。

zip ファイルには保存すべき moztools という名前のフォルダが格納されています。ツールをインストールしたい場所に zip ファイルを展開してください。しかしながら cygwin ディレクトリ内に moztools ディレクトリをインストールすると Mozilla をビルドできなくなる可能性があります。MOZ_TOOLS 環境変数をこの moztools フォルダを指すようにセットしてください。($MOZ_TOOLS をそれ相応に更新するのであればフォルダをリネームしても結構です。)

注意:1.8.1 ブランチ(Firefox 2)は moztools-static パッケージと互換性がありますが、それより古いブランチ(1.8.0 ブランチを含む)は互換性がありません。詳しくは 各バージョンのビルド要件 をご覧ください。

moztools の zip ファイルにはコンポーネントのソースは含まれていません。コンポーネントをスクラッチからビルドすることに興味があるのであれば、ここ からソースを入手できます。OpenOffice.org をビルドするための ooo-build のシステムでは、このコードを使ってスクラッチからツールをビルドしており、配布されているバイナリを使いたくない人向けの関連する パッチ もあります。

[編集] cvs

CVS は Mozilla によって使用されるソースコントロールシステムです。FTP 経由でソースの tarball をダウンロードし、それからビルドしようとしているのであれば cvs は不要です。その場合このステップを飛ばしてもかまいません。

Mozilla のソースを引っぱってくる のには cvs のバージョン 1.11 以降が必要です。Cygwin CVS を推奨しますが、WinCVS も互換性があります。CVS をインストールする際には emacs や Xemacs のようなエディタもインストールするのがよいでしょう。

[編集] コンパイラとリンカ

CVS トランク(Mozilla 1.9 以上)で開発を行う際に標準的なコンパイラは Microsoft Visual C++ バージョン 8 です。フリーの Microsoft Visual C++ 8 の Express エディション (Visual C++ 2005 Express Edition) は 追加ツールと適切な configure オプション を使用することで動きます。Visual C++ 7.1 も動きます。VC++ 7 は非推奨です。VC6 はサポートされておらず、使えないビルドができるでしょう。

ビルドは Windows のコマンドラインシェルからも cygwin のシェルからもできるようです。Windows のシェルを使用する場合は Visual Studio に付属している vcvars32.bat スクリプトを使用してコンパイラの環境変数をセットアップする必要があります(スタートメニューの VS のエントリから "Visual C++ Command Prompt" を選択すると、新しいシェルでこのスクリプトが実行されます)。

(非推奨ながら)MinGW gcc コンパイラを使っても Mozilla をコンパイルすることができます。MinGW を使った Mozilla のコンパイル をご覧ください。

[編集] Visual Studio コンパイラの対応表

ブランチ HEAD
Gecko 1.9
Firefox 3
MOZILLA_1_8_BRANCH
Gecko 1.8.1
Firefox 2
MOZILLA_1_8_0_BRANCH
Gecko 1.8
Firefox 1.5.0.x
VC6 × ○(オフィシャル) ○(オフィシャル)
VC7 (Visual Studio 2002)
VC7.1 (Visual Studio 2003)
VC8 (Visual Studio 2005) ○(オフィシャル) × ×
VC9 (Visual Studio Codename "Orcas") ○(実験的) × ×

注意 1Firefox 1.5/2.0 / Gecko 1.8.x ビルドガイド はこの文書ではカバーしていません。

注意 2:VC9/"Orcas" に関する情報はすべて January CTP についてのものです。過去や将来のリリースでも当てはまるかもしれませんが、当てはまらないかもしれません。

[編集] Platform SDK

Visual Studio .NET 2003 以降を使用しているのであれば、Mozilla のビルドに必要な SDK はすべて揃っているのでこのステップは飛ばしてもかまいません。それよりも古いコンパイラやフリーの Visual Studio Express Edition の場合、GDI+ ヘッダおよび同ライブラリを手に入れるために Microsoft から SDK をダウンロードする必要があります。

Windows Server 2003 SP1 Platform SDK をダウンロード可能です。"Windows Core SDK"(Tools、Build Environment および Redistributable Components)と "Web Workshop SDK" (Build Environment) を必ずインストールしてください。

ビルド環境がこの SDK をピックアップできるように、以下のようにして SDK をビルド環境に追加する必要があります。

[編集] NSIS

Mozilla コードベースからビルドされるアプリケーションには、そのインストーラとして NSIS を使用するものがあります。これには特に Firefox、Thunderbird そして Sunbird といったツールキットアプリが該当します。NSIS を活用してアンインストーラをビルドするため、通常のビルドプロセスにおいて NSIS が必須になっています。.mozconfigac_add_options --disable-installer を指定してインストーラのビルドを無効化しないのであれば、NSIS をインストールし、そのインストールディレクトリ(インストールディレクトリの "Bin" ディレクトリではない)を 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 8\VC\bin\vcvars32.bat

rem --- MS SDK がインストールされている場所を MSSDK にセット
rem --- SDK が付属していない MSVC7 やフリーの MSVC の場合のみ必要
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 のパスを先頭に追加
rem --- PATH において cygwin の find が windows の find.exe よりも先に来るようにし、cygwin の link は MSVC の link.exe の後ろに来るようにする
set PATH=%CYGWINBASE%\bin;%PATH%

rem --- MSVC の環境変数をセット
call "%VCVARS%"
 
rem --- SDK のパスを先頭に追加
rem --- SDK が付属していない MSVC7 やフリーの MSVC の場合のみ必要
set PATH=%MSSDK%\bin;%PATH%
set INCLUDE=%MSSDK%\include;%MSSDK%\include\atl;%INCLUDE%
set LIB=%MSSDK%\lib;%LIB%

rem --- moztools を最後に持ってくる
set PATH=%PATH%;%MOZ_TOOLS%\bin

rem --- 現在の PATH の状況:
rem MS-SDK; MSVC; Cygwin; Windows; glib/libIDL; Moztools

rem --- 基本的にスクリプトが最後にやることは cygwin シェルを立ち上げること
rem --- 設定した PATH を上書きする可能性がある ~/.profile や /etc/profile を確認すること!
bash --login -i

より便利なターミナルとして PuTTYcyg というものがあります。これは Cygwin 用ターミナルとして使用できる PuTTY SSH クライアントです。PuTTYcyg をパスの通った場所にインストールし、バッチファイルの最後のコマンドを次のものと置き換えるだけで同様のバッチファイルを使用できます。

start putty -cygterm -

このコマンドは PuTTY シェルで Cygwin を起動させるものです。

[編集] cygwin のパスの修正

デフォルトでは cygwin は自分自身を PATH の最初に置き、丁寧に組み立てた PATH の順番を壊してしまいます。次のどちらかを選択してください。

  • /etc/profile/ = %CYGWINBASE%\etc\profile を編集(Unix 形式の改行コードを維持するエディタ、よくわからない場合は cygwin パッケージの nano を使用)し、次の行を変更する。
PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$PATH
を
PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
に
  • または .profile か .bash_profile を home ディレクトリに追加する。

これは Make が "link.exe" というファイルの正しいインスタンスを選択できるようにするために必要です。Cygwin の PATH に手を加えたくない場合は単に link.exe の名前を適当なものに直してください。起動時に自動的にこれを行い、終了時に元に戻すということをバッチファイルにさせることもできます。そうするにはバッチファイルの次の行を置換してください。

bash --login -i

を次のものに置換

rename link.exe cyglink.exe
bash --login -i
rename cyglink.exe link.exe

この方法を使う場合は単にウィンドウを閉じるのではなく、必ず "Exit" と入力して Cygwin のシェルを終了してください。

[編集] よくある問題とヒント、制限

  • Mozilla ビルド FAQ をチェックしてください。頻繁に出くわすビルドについての問題がたくさんリストアップされています。
  • cygwin をインストールするときに DOS 形式の改行コードを選択した場合は必ずソースやオブジェクトツリーを /cygdrive/<c> マウントポイントに置いてください。/home 内に置いてはいけません。
  • cygwin ディレクトリ内に moztools ディレクトリをインストールすると Mozilla をビルドできない可能性があります。
  • PATH 環境変数に引用符 (") が含まれているとビルドに失敗する可能性があります。cygwin のサブシェルに渡す際に引用符を適切に変換できないからです。通常、引用符は必要ないので除去することができます。
  • cygwin パッケージが完全に揃っているか再確認してください。不完全な場合は cygwin インストーラを立ち上げて足りないパッケージを追加してください。
    • Cygwin のメーリングリストによると、make 3.81 での挙動の変化は DOS 形式のパスのパッチが取り除かれたことによるものとのこと。
  • Windows 上での Mozilla のデバッグ FAQ:Windows 上で Mozilla のデバッグする方法。
  • Windows ビルドシステムを VC6 から VC7 へアップグレードする方法