Mac(SnowLeopard)でAndroidのソースコードをビルドする


TechBoosterではLinux(Ubuntu)上でAndroidのソースコードを入手し、ビルドする方法を説明しています。

Linux上だけでなく、Mac OS X上でもAndroidのソースコードを入手し、ビルドすることが可能です。Gitを用いてソースコードを入手する方法や、ビルドコマンドに関してはLinux上と同様ですが、今回はMacでの環境構築方法Macならではの注意する点を説明します。

※今回はソースコードの入手、ビルド方法の説明は省きます。上記の記事を参照してください。

Linux上と異なりMacならではのポイントは以下の通りです。

  • 大文字、小文字を区別するディスクイメージの作成
  • MacPortsのインストール

それでは続きで説明します。

ソースコードをダウンロードする際の注意点

Macのデフォルトのファイルシステムではファイル名の大文字/小文字を区別していません

ビルドせずにソースを見るだけなら問題ないですが、ビルドを行う場合は問題が発生し、正常にビルドすることが出来ません

ファイルシステムを大文字/小文字を区別するタイプに再フォーマットする(=OSの再インストールも含む)のも一つの手ですが、あまりにも手間がかかります。また、大文字/小文字を区別することで逆に正常に動作しなくなるアプリケーションも中に存在します。

そこで、大文字/小文字を区別するディスクイメージを作成することで一番の解決策となります。

ディスクイメージの作り方

ディスクイメージを作るにはディスクユーティリティ(アプリケーション/ユーティリティ内)を使います。ここで新規イメージのボタンを選択して

  • サイズ:8GB
  • フォーマット:Mac OS 拡張(大文字/小文字を区別する)

と設定してディスクイメージを作成します。

ディスクイメージが作成できたら次はビルドのための環境構築です。パッケージ管理ツールであるMacPortsをインストールする必要があります。AndroidのソースコードをビルドするためのツールはMacPortsを使って手に入れることになります。

MacPortsのインストール

前提としてMacの開発環境であるXcode3がインストールされている必要があります。

インストールしていない場合は、Mac付属のインストールディスクからインストールするか、ADC(AppleDeveloperConnection)の会員であればADCのサイトからダウンロードしてインストールします。
※ADCの会員には無料でなることができます。
※有料会員の場合、Xcode4がインストール可能ですが、Androidのビルドに必要な10.5用のSDK(MacOSX10.5.sdkフォルダ)が入っていないので別途Xcode3をインストールする必要があります。

Xcodeの準備ができたらMacPortsをインストールしましょう。

MacPortsはインストーラが用意されています。公式ページから、SnowLeopard用のインストーラ(バージョン1.9.2のリンクです。今後バージョンアップしてリンクが変わった場合は公式ページからダウンロードしてください。)をダウンロードします。

ダウンロードしたらディスクイメージをマウントしてインストーラを実行します。
インストールが完了したらパスが通っているか確認します。インストーラがパスを記述してくれるはずですがもし通っていない場合は ~/.bashrc に以下の設定をして反映させます。(Bashの場合)
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH

パスが通っていることを確認したらMacPortsのアップデートも実施しておきましょう。
$ sudo port -d selfupdate
$ sudo port -d sync

ビルド用ツールのインストール

MacPortsを使うので簡単にインストールできます。
必要なツール(パッケージ)

  • gmake
  • libsdl
  • gnupg
  • git-core(Xcode4をインストールしているなら不要)

MacPortsでインストールするには
port install ○○(インストールしたいパッケージ名)
を実行すれば良いので上記の4つをインストールするには以下のように実行します。

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

インストールは上記のコマンドを実行するだけで簡単に終了するのですがそのままだとqmakeのバージョンが3.82でAndroidのソースのビルドができません。qmakeを3.81にダウングレードする必要があります。

qmakeのダウングレード

/opt/local/etc/macports/sources.conf
の先頭の方(rsync:〜の行より前)に
file:///Users/Shared/dports
と記述します。

$ mkdir /Users/Shared/dports
$ svn co –revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
$ portindex /Users/Shared/dports
$ sudo port install gmake @3.81

qmakeにはシンボリックリンクを張っておきます。

$ sudo ln -s gmake /opt/local/bin/make

ファイルサイズの制限を記述

bashであれば~/.bash_profileに以下の記述を追記します。

ulimit -S -n 1024

repoコマンド

repoコマンドもLinuxと同様の手順でダウンロードしておきます。

※以下ではホーム直下にbinフォルダを生成して置いていますが、パスが通っている場所であればどこでも問題ありません。

$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod 755 ~/bin/repo

おつかれさまでした。これでMacでAndroidのソースをビルドする準備が整いました。

を参考に、大文字/小文字を区別するディスクイメージ上にソースコードをダウンロードすれば、Linux同様にビルドすることができます。

補足

2.2(Froyo)以前のソースコードをコンパイルする際にはJDK5が必要となります。Mac OS X 10.6(SnowLeopard)にはJDK6がインストールされており、JDK5は後からインストールすることが必要となるのでご注意ください。UpDownGのブログなどが参考になります。

  • 2.3(Gingerbread)のソースコードのコンパイルを行うにはハイスペックなマシンが要求されます

コンパイルにかかる時間を考えるとCoreiシリーズのCPUをお勧めします。メモリも大量に消費するので4GB以上(できれば8GB)ある方が良いです。