2018年4月25日水曜日

android上でbazelをビルドする方法

[概要l
android上のArchLinux (TermuxArch)でbazelをビルドする方法

[詳細]
-Oracle jdk 8をインストールする。
(pacmanのopenjdk8は古すぎるため)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

> pacman -S zip
(これ重要。ビルドの最後の最後でzipが無いとエラーで最初からやり直し。)

bazel-*-dist.zipを取ってくる。(bazel-0.12.0-dist.zipで確認)
https://github.com/bazelbuild/bazel/releases

script/bootstrap/compile.sh を修正しjavaのヒープメモリを増やしておく。
run "${JAVAC}" -verbose -J-Xms1024m -J-Xmx1024m -classpath ...

環境変数でジョブ数を1に制限。
> export EXTRA_BAZEL_ARGS='--jobs 1'
(増やすとillegal seekエラーが出てビルドに失敗する。)

トップディレクトリで
> ./compile.sh
を実行。数時間待つ。

ビルドに成功したら。コピーする。
> cp output/bazel /usr/local/bin/

完了。

(所感: bazelのビルドは失敗すると最初からやり直しで数時間コース。デフォルトではログも出ない、illegal seekなど罠も多く、いったい何回試行錯誤したことか!ちなみにjdk9でもまだうまくいきません。)

(次回: おまちかね、tensorflowのビルド!そこにはさらなる罠が!?)

0 件のコメント:

コメントを投稿