■準備
必要なパッケージをインストールする。その他は適宜。
sudo yum install make git bison libxslt flex gperf gcc-c++ glibc-devel zlib-devel
以下はUbuntu12.0.4の場合である。
sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
OpenJDKが邪魔なので一旦消す。
sudo yum remove java-1.6.0-openjdk
Ubuntuは以下のコマンドを実行する。
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
OpenJDKでビルドしようとすると以下のようにエラーがでる。
Checking build tools versions... ************************************************************ You are attempting to build with an unsupported JDK. You use OpenJDK but only Sun/Oracle JDK is supported. Please follow the machine setup instructions at https://source.android.com/source/download.html ************************************************************
oracleのサイトに行って、JDK6をダウンロードしてインストールする。かなり省略するが、以下の様な感じにPATHを通せば良い。
PATH=$PATH:$HOME/jdk1.6.0_39/bin JAVA_HOME=$HOME/jdk1.6.0_39 export JAVA_HOME
oracleアカウントが必要になってかなりイライラさせられるが、ダウンロードの準備をする。
mkdir ~/bin curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo PATH=~/bin:$PATH
mkdir android cd android repo init -u https://android.googlesource.com/platform/manifest
以下のコマンドでbranchをリストアップし切り替える。
ls -1 .repo/manifests.git/logs/refs/remotes/origin/ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
■ダウンロード
以下のコマンドでダウンロードする。恐らく1時間以上かかる。
repo sync
■ビルド
source build/envsetup.sh
largeでも4時間以上かかるらしいのでそれよりも大きいインスタンスを選択する事を勧める。
make
考えてみたらlargeだと4コアなので以下のコマンドでビルドする。
make -j4
ちなみにOpenWnnをビルドしたかったので以下のように実行した。smallインスタンスでも1時間以上かかるのでlarge以上にするのが良い。
make OpenWnn
共有ライブラリは以下のパスに生成される。
out/target/product/generic/obj/lib/libwnndict.so out/target/product/generic/obj/lib/libWnnJpnDic.so out/target/product/generic/obj/lib/libWnnEngDic.so
OpenWnnのソースの取得
リモートのソースをそのまま持ってきても問題ないのだが、OpenWnnのソースの取得だけだったら、以下のコマンドですぐに終わる。
git clone https://android.googlesource.com/platform/packages/inputmethods/OpenWnn.git
ちなみに中国語は以下のディレクトリにある。
git clone https://android.googlesource.com/platform/packages/inputmethods/PinyinIME.git
その他の言語はLatin語としてまとまっていて以下のコマンドを実行する。
git clone https://android.googlesource.com/platform/packages/inputmethods/LatinIME.git
必要ならば適切なブランチに切り替える。
git checkout -b ics-mr1-release origin/ics-mr1-release
以下のコマンドを実行してリモートの共有ライブラリをローカルに配置する。
cd OpenWnn/libs/ mkdir armeabi cd armeabi scp -i your_key.pem user@host:/home/user/android/out/target/product/generic/obj/lib/libwnndict.so ./ scp -i your_key.pem user@host:/home/user/android/out/target/product/generic/obj/lib/libWnnJpnDic.so ./ scp -i your_key.pem user@host:/home/user/android/out/target/product/generic/obj/lib/libWnnEngDic.so ./
EclipseのProject ExplorerでImport > Existing Android ProjectでImportする。この時、Copy projects into work spaceにチェックを入れる必要がある。