Android Zaurusの日記

ザウルスをアンドロイドにしてあげる
本館 Android Zaurus

2010-08-04

Androidの単純なコマンドラインツールのビルド

09:49 |  Androidの単純なコマンドラインツールのビルドを含むブックマーク

Androidglibcではなくbionicを使うので、glibcツールチェーンでビルドするならstaticリンクする必要がある。他のAndroidに含まれるツール同様にbionicとリンクするのであれば、多少まわりくどい方法でビルドする必要がある。だいたいこんな手順。

  1. ソースツリーのダウンロード
  2. 環境変数設定
  3. Android.mkの作成
  4. ビルド
  5. 生成されたバイナリのコピー

ソースツリーはターゲットとなるAndroidのバージョンに合わせてダウンロード*1する。repoの-bにバージョンを設定してinit後、syncする。donutなら-b donut。

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

ビルド用に環境変数を設定するためにbuid/envsetup.shをエバる。

$ source build/envsetup.sh

AndroidAndroid.mkという独自のMakefileを使う。ビルドしたいツールのソースコードをexternalの下にコピーして、external/ping/Android.mkをコピーして編集するのが楽ちん。pingの場合、ping.cをpingにビルドしているので、hoge.cならs/ping/hoge/するだけ。

$ mkdir external/hoge && cd external/hoge
$ cp /dokka/hoge.c hoge.c
$ cp ../ping/Android.mk Android.mk

ビルドはカレントディレクトリ以下のAndroid.mkをビルドするmmコマンド。たぶん大丈夫だと思うが、もし単独ビルドができないなら、いったんmydroidに戻ってmakeコマンドでフルビルドが必要になるかも。

$ mm

生成されたバイナリはout以下にいる。

$ cd ../../
$ adb push out/target/product/generic/system/bin/hoge /local/data/tmp/hoge
$ adb shell /local/data/tmp/hoge

yyuasayyuasa 2010/08/05 11:21 キーは普通にGPIO使っているように見えますけど。

yyuasayyuasa 2010/08/05 11:23 あ、GPIOなinputドライバという意味です。

Connection: close