日曜日で、話題もないため FireFox のコンパイルをしてみることにしました。
インストール環境は Snow Leopard 10.6.2 , Xcode 3.2.1 です。
Mozilla のサポートを見ると MacPorts で、libidl と autoconf213 をインストールするように書いてあったため、 MacPorts パッケージをインストール後、以下のように libidl と autoconf213 をインストール。
$ sudo port sync $ sudo port install libidl autoconf213
これやると依存関係のファイルをみんな持ってくるんですね。30分位かかってインストール終了。
その後、Downloading Source Archives から tar ball をダウンロードして、展開。取り合えす US 版でいいやということで、そのまま .mozconfig に以下を設定
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@ mk_add_options AUTOCONF=autoconf213 ac_add_options --enable-application=browser ac_add_options --disable-libxul ac_add_options --enable-debug --disable-optimize ac_add_options --enable-shared --disable-static ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.4u.sdk mk_add_options MOZ_MAKE_FLAGS=-j4
として、make 開始です。
$ make -f client.mk build
しかし、あえなくエラー終了。MacOSX10.4u.sdk -> MacOSX10.6.sdkと修正して再度挑戦…しかしリンクでエラーとなる…。
gcc4.2.1 だから?と、こちらのページを見ると gcc4.0 を使っていらっしゃる。
export CC=gcc-4.0 export CXX=g++-4.0
として、コンパイルすると、先程の部分は無事に終了。でも、先程 MacPorts で落とした libidl とリンク出来なくてまたしてもアウト、どうして?。
調べたところ、macsofa の投稿に書いてありました。どうやら、Snow Leopard から MacPorts は、X86_64 デフォルトで i386 をつくらないらしい。
えー。基本設定だと FireFox って i386 でできちゃうの?。ということで、MacPorts を一度削除した後、 +universal で再度取得し直ししました。
$ sudo port install libidl +universal $ sudo port install autoconf213 +universal
こうすることで、対応しているものは、i386 と X86_64 の両方が作成されます。
ちなみに
$ sudo port install <portname> configure.compiler=gcc-4.2
で gcc のバージョンも指定できるらしい。勉強になるなぁ。
オブジェクトディレクトリが obj-i386… になっているからおかしいと思いましたよ。
これで無事にコンパイルできたと思ったら、30分ほどして今度は MacOSX10.6.sdk のヘッダがおかいいといってきた。orz。
という訳で「その1」です。
追記:
Apple のダウンロードページに MacWinZipper が注目のダウンロードとして掲載されています。ドラッグ&ドロップで、Windows 間の「余計なファイルの混入」「ファイル名の文字化け」を防げる優れもの、おすすめです。
Just try modifed CleanArchiver.
It’s similar with MacWinZipper, but it has more powerful features.
http://trip2me.tistory.com/56
朴 昶範
CleanArchiver supports 7z rar and more !
I try CleanArchiver. thanks.