音咲研究記

高校生のデジタルな日常

NetWalkerのためにFirefoxを最適化ビルドしてみる

f:id:MaipleLab:20190714231020j:plain
NetWalkerFirefoxが3.6.28ととても古いバージョンなのでアップデートしてみました。
とはいえCPUがARMv7なのでx86のようにパッケージがそこらへんに落ちているわけではないので自分でビルドします。
ビルドは時間もかかるしNANDにも負荷がかかるのであまりやりたくないです・・・
最初クロスコンパイルをしようとしたのですが環境構築で躓いてもう実機でやることにしました。
大体8時間ほどかかるので寝る前にやっておきました。

まず、ビルド環境を整えます。

# sudo apt-get build-dep firefox
# sudo apt-get install mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev mesa-common-dev autoconf2.13 yasm curl

そしてMozilla FTPからソースファイルを落とします。
ftp.mozilla.org
今回は5chで動作確認が取れているFirefox 6.0.2をビルドします。
最初FirefoxESR 10で試したのですがstrdをプロセッサがサポートしてないとかエラー吐いたのでとりあえず動作優先でやってみます。
ここからはシェルメインの作業になります。

# tar xvjf firefox-6.0.2.source.tar.bz2 ←まず展開
# cd mozilla-release
# echo '. $topsrcdir/browser/config/mozconfig' > mozconfig
# echo 'mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-release' >> mozconfig
# gedit mozconfig ←mozconfigを編集

mozconfigを編集してARM向けに最適化していきます。

. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@
mk_add_options AUTOCONF=autoconf2.13
ac_add_options --disable-crashrepoter
mk_add_options MOZ_CO_PROJECT=firefox
ac_add_options --enable-application=browser
ac_add_options --enable-optimize=-O2
<s>ac_add_options --enable-static --disable-libxul</s>

最適化オプションで-O2を指定することでより強力に最適化します。
またライブラリ等を一つのファイルにまとめることで動作をより高速化します。

そしてmozconfigを保存していよいよビルドです。

# ./configure
# make

もしmozconfigに不備があれば./configureの時点でストップしmakeができないので要注意
ビルドが終了したらあとは起動

# cd dist/bin
# ./firefox

実行ファイルはdist/bin/firefoxなのでデスクトップ上でランチャー等を作ってアイコンから実行できるようにするといいかもしれないです。
Chromium 16とかビルドできたらいいんだけどなぁ
詳しい人教えて!!