FrontPage  Index  Search  Changes  RSS  Login

Firefoxをビルドする(Mercurial/Linux編)

ページを編集するにはログインが必要です。

Firefoxのtrunkは、バージョンコントロールシステムがCVSからMercurialと変更されました。ここでは、Debian GNU/Linux Sid(Unstable)で、Mercurialよりソースコードを取得して、Firefoxをビルドする手順を書いてみます。

ThunderbirdとSeaMonkeyもMercurialに移行しました。こちらは、comm-centralが使われています。

Firefox 3をビルドしたい場合は、Firefoxをビルドする(CVS/Linux編)をご覧ください。

準備

Mercurialからソースを取得してビルドする場合は、以下のツールが必要となります。

  • mercurial 1.0以上
  • python 2.4/2.5
  • autoconf 2.13
  • make
  • gcc/g++
  • yasm
  • tar/bzip2 (ビルド後にtarballを作成する場合)

autoconfは必ず2.13を使用してください。

その他にも、多数のライブラリの開発用パッケージが必要となります。

ソースコードの取得

リポジトリのコピーの作成

最初にFirefoxのリボジトリのコピーを作成します。適当なディレクトリ(ここでは、/home/hoge/source/とします)に移動してから、

hg clone http://hg.mozilla.org/mozilla-central/ mozilla

を実行します。すると、/home/hoge/source/mozilla/以下にリボジトリのコピーが作成されます。

ここで、ビルド中に使用される一時ディレクトリを作っておきましょう。ここでは、/home/hoge/source/fx/としておきます。

.mozconfigの作成

ビルドのオプションは、.mozcofigファイルに記述します。.mozconfigは/home/hoge/source/mozilla/に置きましょう。最低限必要なものは、

. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/fx
mk_add_options AUTOCONF=autoconf2.13
# Options for 'configure' (same as command-line options).

です。その他のオプションは、この後に続けてください。オプションの詳細については、Configuring Build Optionsを参照してください。

なお、.mozconfigの例の2番目の行のautoconf2.13の部分は、お使いのautoconf 2.13のコマンド名を記述してください。

ビルドする

ソースコードのビルド

ソースコードの取得が完了したら、ビルドしてみましょう。

make -f client.mk build

とすると、ビルドが始まります。最初に必要なツールやヘッダファイルなどのチェックが行われますので、エラーで止まってしまった場合は、適宜必要なパッケージをインストールしてください。

ビルドが成功すると、/home/hoge/source/mozilla/fx/dist/に必要なファイル群が生成されます。/home/hoge/source/mozilla/fx/dist/bin/firefoxを実行すれば、ビルドされたFirefoxを試すことができます。

tarballの作成

/home/hoge/source/fx/で

make package

を実行することにより、/home/hoge/source/fx/dist/以下にfirefox-x.y.z.tar.bz2(x:Firefoxのバージョン、y:ロケール、z:プラットフォーム)が作成されます。

Profile-Guided Optimizationでビルドする

Profile-Guided Optimization(PG)でビルドする方法は、Building with Profile-Guided Optimizationに説明されています。実際に殺ってみると非情に簡単で、.mozconfigにたった1行、

mk_add_options PROFILE_GEN_SCRIPT='$(MAKE) -C $(MOZ_OBJDIR) pgo-profile-run'

を追加して、

make -f client.mk build

の替りに、

make -f client.mk profiledbuild

とすればOKです。ただし、通常のビルドよりもかなり時間がかかりますので、ご注意を。

付録

日々のビルド

すでにリポジトリのコピーが作成されている時には、以下のようにすれば、新しいFirefoxが手に入ります。

cd /home/hoge/source/mozilla/
make -f client.mk clean
hg pull -u
make -f client.mk build

ビルドでトラブルがあった場合は、

make -f client.mk clean

の代わりに、

rm -r fx/*

を実行してみてください。