Firefox ExtensionでC++プログラムを動かしてみるテスト 〜番外編 SDKをSnow Leopardで動かす〜

まず、MacPortsをインストールする。

お好みによってこの辺を設定しても良い。ビルドが早くなる↓
macports.confの設定 - 『書物の迷宮』予告篇

$ sudo port install autoconf213 libidl

を実行する。

::Berkwood Systems:: Official Homepage of Berkwood Systems  Berkwood.com
からMac OS X版のMercurialをダウンロード、インストールする。

出来たら、

$ hg clone http://hg.mozilla.org/releases/mozilla-1.9.1/ 191src

リポジトリから1.9.1のソースコードを取得。これにはかなり時間がかかる。

~/.mozconfigファイルを作成。
内容はこんな感じ:

. $topsrcdir/browser/config/mozconfig

CC="gcc-4.2 -arch i386"
CXX="g++-4.2 -arch i386"
ac_add_options --target=i386-apple-darwin8.0.0
ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.5.sdk
ac_add_options --enable-macos-target=10.5
# bug 491774. crashreporter won't build in cross compile
ac_add_options --disable-crashreporter

HOST_CC="gcc-4.2"
HOST_CXX="g++-4.2"
RANLIB=ranlib
AR=ar
AS=$CC
LD=ld
STRIP="strip -x -S"
CROSS_COMPILE=1
mk_add_options MOZ_MAKE_FLAGS="-j4"

.mozconfigが用意出来たらビルドを行う。

$ cd 191src
$ make -f client.mk build

すんごい時間かかる。

終わると、dist/以下にビルドしたバイナリが収められているはず。

$ open dist/Shiretoko.app

とかやると、Firefoxが立ち上がる。

SDKはdist/sdkに入っているのだが、xpidlコマンドはdist/host/bin/host_xpidlに入っているので注意(クロスビルドした為)。