Mozilla

Mozillaのコンパイル

チェックアウトとコンパイル

6月6日現在、次のようにしてコンパイルしています。
  1. .mozconfig にconfigure optionを設定
  2. client.mk にチェックアウトの時刻を設定 (tinderboxを見て良さそうな時刻を狙ってチェックアウトする)
  3. make -f client.mk checkout でチェックアウト (チェックアウト結果を確認してからビルドしたいので、まずチェックアウトだけ行う)
  4. ビルドスクリプト実行
毎日繰り返しているのは2〜4です。

.mozconfigの設定

次のような設定をしています。
# sh
# Build configuration script
#
# See http://www.mozilla.org/build/unix.html for build instructions.
#

# Options for 'configure' (same as command-line options).
ac_add_options --disable-mailnews
ac_add_options --disable-tests
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --enable-strip-libs
ac_add_options --disable-dtd-debug
ac_add_options --with-gtk
ac_add_options --with-pthreads
ac_add_options --enable-crypto
解説

メールやニュースは使わないのでビルドしていません。

テスト、デバッグサポートの類は通常はなしにしています。コンパイルするようになったそもそもの動機が「少しでも速いMozillaをビルドしよう」だった名残です。

--enable-crypto を指定することで psm2 がビルドされます。

client.mkの設定

今は MOZ_CO_DATE = 06/06/2001 01:00:00 PDT のように、チェックアウトする日時を指定してチェックアウトするようにしています。

ビルドスクリプト

通常は make -f clientmk build_all で問題ないのですが、私はこういうスクリプトでコンパイルしています。
#! /bin/sh
export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1
export BUILD_OPT=1
export MOZ_NSS_AUTOCONF=1
export MAKE="make -j3"
make -f client.mk build_all
解説
export MOZILLA_OFFICIAL=1, export BUILD_OFFICIAL=1 はBuild IDにビルド時刻を入れるために設定しています。本当はオフィシャルなビルド以外はこの環境変数は設定せず、Build IDには 0000000000を入れるのが正しいのですが、これではちっとも面白くないので。

export BUILD_OPT=1 は最適化をかけるための環境変数です。

export MOZ_NSS_AUTOCONF=1 はpsm2をビルドする時に必要な環境変数です。今でも必要なのかわかりませんが、psm2に切り替わった時には指定しないと止まっていたので習慣で設定しています。

export MAKE="make -j3" は、makeプロセスが同時に3つ走るようにするための設定です。私のビルド環境はデュアルCPUマシンなので、プロセス数3が最適なようです。PentiumII 300MHzなので、50分程度かかります。

パッチ

カスタマイズ

user.js

user_pref("ui.submenuDelay", 1000); pref("ui.key.accelKey", 18); pref("ui.key.menuAccessKeyFocuses", false); user_pref("capability.policy.popupsites.sites", "http://www.tripod.com"); user_pref("capability.policy.popupsites.windowinternal.open", "noAllAccess"); user_pref("xim.input_style", "over-the-spot"); user_pref("image.animation_mode", "once"); pref("font.min-size.variable.ja", 14); pref("font.min-size.fixed.ja", 14);
解説

user_pref("ui.submenuDelay", 1000); を設定すると、マウスポインタがサブメニューから外れても、指定した時間だけサブメニューを維持します。単位はミリ秒です。

pref("ui.key.accelKey", 18);, pref("ui.key.menuAccessKeyFocuses", false);を設定すると


[back]