最速Firefoxをビルドしよう【前編】Firefox Hacks(1/2 ページ)

Mozilla Foundationによって公開されている公式のFirefoxバイナリは、さまざまな環境で安定して動作するようにビルドされている。言い換えれば、チューニングの余地があるということだ。本稿では、Firefoxのビルド方法について解説し、コンパイラやビルドオプションによるパフォーマンス向上に挑戦する。

» 2007年04月29日 18時23分 公開
[ITmedia]

Firefoxのビルド

 Firefoxはオープンソースソフトウェアであるため、環境さえ整っていれば誰もが簡単にコンパイルできる。実際、ユーザーの手によってビルドされた「野良ビルド」などと呼ばれるバイナリがネット上で数多く公開されている*。Mozilla Foundationによって公開されている公式バイナリは、さまざまな環境で安定して動作するよう「消極的」なコンパイルオプションが指定されているが、このような「野良ビルド」の多くはコンパイラによる最適化、特にPentium 4やAthlonなど、特定のCPU向けの最適化が行われていることが多い。

 最近のコンパイラは最適化能力が強化されているため、適切な設定でFirefoxをビルドすることでより高速なFirefoxを作れる可能性が高い。また、コンパイル時のオプションでしか有効/無効化できない機能も存在する。

 そこで、本パートではLinuxおよびWindows環境におけるFirefoxのビルド方法を解説し、さらにビルド時のオプションやコンパイラの違いによって、Firefoxのパフォーマンスがどれだけ変わるのか検証する。

 なお、Firefoxはすべてのプラットフォームに対して同じソースからビルドされており、そのビルド方法もほぼ共通化されている。また、Firefoxはブラウザやメールクライアント、HTMLエディタなどが統合されたアプリケーションであるMozillaに由来しているため、現在でもそのソースの大部分はMozillaやThunderbird、カレンダーアプリケーションであるSunbirdなどと共有されている。よって、ここで解説するFirefoxのビルド方法はほかのMozilla由来アプリケーションのビルドや、ほかのプラットフォームでのビルドなどにも簡単に応用できるだろう。

Linux環境でのビルド

 Linux環境でのコンパイルにはGCCを使用するのが一般的だ。また、各種開発ツールやライブラリが必要である。最低限ビルドに必要なツールやライブラリは表1のとおりだ。最近のディストリビューションではどれもパッケージの形で入手できるので、適宜インストールしてほしい。なお、表1ではDebian GNU/Linux "sarge"(以下、Debian)とFedora Core 4(以下、Fedora)でのパッケージ名も併記してある。

表1 表1 Linux環境でのビルドに必要なツール/ライブラリ

ビルドの手順

 Firefoxのビルドの手順は次のようになる。

  1. ソースの展開
  2. ビルド設定ファイルの作成
  3. ビルド実行
  4. インストールパッケージの作成

 なお、Firefoxのビルドには少なくとも300Mバイト以上、デバッグ版をビルドする場合には1.5Gバイト以上の空きHDDスペースが必要だ。また、Pentium 4/3GHz、メモリ512Mバイトのマシンでビルドを行ったところ、30分〜1時間程度の時間が必要であった。

  • ソースの展開

 Firefoxのソースアーカイブを次のように任意のディレクトリに展開する。

$ tar xvjf firefox-2.0.0.3-source.tar.bz2


 ソースアーカイブを展開するとmozillaディレクトリが作成され、そのディレクトリ内にソースが展開される。なお、このmozillaディレクトリの名称はビルドスクリプト内にハードコーディングされているため、変更すると正しくコンパイルが行えないようだ。

  • ビルド設定ファイルの作成

 Firefoxのビルド設定は一般的なアプリケーションとは異なり、mozillaディレクトリ中に.mozconfigという名前で設定ファイルを作成することで行う。make実行時にこの.mozconfigディレクトリを参照してconfigureが実行され、ビルドが行われる仕組みだ。

. ~/mozilla/browser/config/mozconfig ←Firefox用のデフォルト設定ファイルを読み込み

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox_build ←バイナリの生成先ディレクトリを指定

export CC="/usr/local/bin/gcc" ←使用するCコンパイラを指定

export CXX="/usr/local/bin/g++" ←使用するC++コンパイラを指定

ac_add_options --disable-optimize ←--disable-optimizeオプションを指定


リスト1 .mozconfigファイルの例

 リスト1は.mozconfigファイルの例である。この例では、Firefoxをmozillaディレクトリ以下のfirefox_buildディレクトリ中で、「--disable-optimize」オプション付きでビルドするよう設定している。.mozconfig内ではconfigureに与えるオプションを「ac_add_options」で指定できるほか、configure実行時に設定する環境変数も指定できる。なお、configureで設定できる代表的なビルドオプションは表2のとおりだ。ビルドオプションの完全な一覧は次のようにconfigureを「-help」オプション付きで実行することで表示できる。

$ ./configure --help


表2 表2 Firefoxの代表的なビルドオプション

 また、Web上で.mozconfigファイルの内容を生成できる「UNIX Build Configurator」というツール(図1)も公開されている。適宜利用してほしい。

図1 図1 「UNIX Build Configurator」ツール

このページで出てきた専門用語

ネット上で数多く公開されている

「Firefoxまとめサイト」で多くの最適化ビルドが紹介されている。

GTK

configureオプションではほかのGUIライブラリを選択することもできるが、動作は未確認。


関連キーワード

Firefox | Firefox拡張機能 | Firefox Hacks


       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ