続・Mac OS X 10.6 Snow LeopardでDonutブランチをビルドする方法


先日のブログ記事「Mac OS X 10.6 Snow LeopardDonutブランチをビルドする方法」で
Snow Leopardでのビルド方法を記述しましたが色々試行錯誤した結果、手順を簡素化することができましたので情報を公開いたします。

2009/09/25 11:00時点でmasterバージョン、android-1.6_r1、donutブランチにてビルド可能なことを確認しております。

xcodeのインストール

xcodeの最新版(現時点では3.2)をインストールします。ダウンロード(ログインが必要)。※Snow LeopardのDVDにも同梱されています。
インストール時に10.4のサポートにチェックを入れてください。

Rosettaのインストール

Rosettaをインストールします。(flexが要求してきます。)※Snow LeopardのDVDに同梱されています。
オプションインストール>Optional Installs.mpkgを実行しRosettaにチェックを入れてください。

MacPortsのインストール

MacPortsをインストールします。こちらからsnowleopard用のをダウンロード。
いつもどおりマウントしインストールします。


・インストールが完了したらPortsをアップデートします。

sudo port selfupdate
sudo port sync

・続いて必要なportをインストールします。

POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg
sudo port install wget

・PATHを通しコマンドが実行可能にします。
~/.bash_profileに追記します。

export PATH=/opt/local/bin:$PATH

Javaのバージョン設定

Snow Leopardからjava1.5が削除された為、javaの1.5をダウンロードして解凍し、システムに登録します。

wget http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.5.0-leopard.tar.gz
tar -xvzf java.1.5.0-leopard.tar.gz
sudo mv 1.5.0 /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0-leopard
cd /System/Library/Frameworks/JavaVM.framework/Versions/
sudo rm 1.5.0
sudo ln -s 1.5.0-leopard 1.5.0

Javaの環境設定を開いて、使用するJavaのバージョンを設定します。
前回64bitを優先としましたが、今回は32bitです。

open "/Applications/Utilities/Java Preferences.app"

以下のようにJ2SE 5.0 32-bitが上に来るように変更します。

ビルド用ディスクイメージの作成

大文字/小文字を判別可能なファイルシステムである必要があるためディスクユーティリティを用いて
ディスクイメージを作成します。
※ディスクイメージサイズは8Gくらい〜お好きなだけ設定してください。

repo init、sync

$ repo init -u git://android.git.kernel.org/platform/manifest.git -b donut
$ repo sync

buildspec.mkの作成

buildspec.mkをmydroidのルートディレクトリに作成し下記のように追記します。
追記箇所は任意の箇所で問題ないようです。
※buildspec.mkはmydroid/build/buildspecdefault.mkをコピーして作成

CC=gcc-4.0
CXX=g++-4.0

ビルド

「-j」オプションを付加すると何故かエラーになることがあるのでその際は「-j」を外してください。

$ make

もちろんSDKビルドも可能です。

$ make PRODUCT-sdk-sdk

実機バイナリ

Generated: (out/target/product/generic/android-info.txt)
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img
Installed file list: out/target/product/generic/installed-files.txt

SDKビルド

out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.username_mac-x86.zip

のように出れば完了です。