2011年3月29日火曜日

Firefox4.0の自前ビルド

本当に気まぐれ更新になっていますが、とりあえず新しいことをしたので。

先日リリースされたFirefox4.0をDebian/squeeze上で
最適化ビルドしてみました。

参考ページは以下
ちょっと内容が古いかもしれないですが、何とかいけました。

◯多分必要なもの
  • libnotify-dev
  • yasm
  • libasound2-dev
  • libidl-dev
  • libiw30  libiw-dev

これらはビルド中に足りなかったものを都度追加していったものです。

環境によってはさらに必要なものがあったり、ビルドオプションによっては
不要なものもあると思います。
参考ページに各プラットフォーム上での必要環境が書いてますので
参考にしてください。

◯ソースのダウンロード
参考ページのソースの入手から適当に拾ってください(w

◯l10n/ja_JPロケール用のファイル入手
無くてもいいような気がしますが、一応ja_JPのロケールファイルを
入手しておきます。

からbzip2なりCVSから入手するなり適当な方法でDLして、
展開後ディレクトリ名をl10n/ja_JPにしておきます。


◯.mozconfigの作成
firefox単独のmozconfigテンプレートは
$topsrcdir/browser/config/mozconfig
にあるので、これをソースのトップに.mozconfigとしてコピー。

これを編集して好きなようにビルドをしていきます。
とりあえずやったのは簡単なところでSSEの最適化を入れた
ビルドにしました。

自分がやった設定は以下

#$topsrcdir/.mozconfig

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox4p

ac_add_options --enable-application=browser
ac_add_options --with-x
ac_add_options --enable-optimize="-O -msse4"
ac_add_options --enable-ui-locale=ja_JP
ac_add_options --with-l10n-base="※/l10n" #ここはja_JPのあるパスを絶対パスで設定
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --disable-crashreporter


MMXおよびSSE~SSE4.2の拡張命令を最適化に組み込むだけです。
その他は特にいじっていません。

ちなみに、enable-native-uconvやwith-system-libxul(Xulrunner)などは
debian/squeezeだとバージョンが古いため、devパッケージがあっても
ビルドエラーになります。
もしシステムローカルのライブラリを利用するようにしたい場合は
自前で用意するしかないようです。

◯ビルドとtarボール作成
client.mkを使用するだけでconfigureとmakeによる作業を
勝手に行ってくれます。

$ make -f client.mk build
とりあえず最後までいくか、エラーで止まるまでゆっくりお待ちください。
Corei7の4GBメモリでbigmem-i686カーネルを使っていますが、
30分くらいかかりました。
特にXulrunnerなどの作成に時間がかかるみたいです。

もし一度環境をリセットしたい場合には
$ make -f client.mk distclean
とすれば設定キャッシュなど含め、すべて削除されます。

無事に最後までmakeが走ったならば、tarballに固めてしまいます。
自分はホームディレクトリに展開してシステムのiceweacelは使わないように
しています。

$ make -C firefox4p/browser/installer
とすると、公式で配布しているようなtarボールが出来上がります。
ここのfirefox4pは.mozconfigで設定したオブジェクトディレクトリ名に
なります。変更している場合は読み替えてください。

作成されたtarボールは
$ firefox4p/dist/firefox-4.×.ja_JP.linux-i686.tar.bz2
にあります。

あとはこれを好きなところに展開して起動成功すればおkです。

※brandingの設定をしていないので、ロゴはFirefoxではなく、Minefieldになります。

一応これでFirefox4.0私的ビルドができました。
かく言うこの投稿は私的ビルド版Firefoxで書いておりますw

0 件のコメント:

コメントを投稿