build
dynamis edited this page Jan 25, 2013
·
22 revisions
主に Mac/Ubuntu でのビルドについてメモ
- Command Line Tools をインストール
- XCode 4.3.x の MacOSX10.7.sdk を最新の XCode 配下にコピー
- /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk
- XCode 更新時に消えるので注意
いろいろ苦労するので正直推奨しない。HomeBrew 推奨。
- git
- gpg
- ccache
- yasm
- autoconf-213
- gcc-4.6
- システムの gcc 切り替え
- sudo port select --list gcc
- sudo port select --set gcc mp-gcc46
- デフォルトに戻す
- sudo port select --set gcc none
一通りセットアップするスクリプトが用意されているのでそれを利用する:
# http://mxcl.github.com/homebrew/
ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
#
curl -fsSL https://raw.github.com/mozilla-b2g/B2G/master/scripts/bootstrap-mac.sh | bash
# install yasm from github when the server is down:
brew install --HEAD yasm
Linux は 64bit 版 Ubuntu 12.04 を推奨。Ubuntu 12.10 以降の gcc 4.7 などだとビルドできません。クリーンな Ubuntu 12.04 以外で頑張りたい人は MDN のドキュメント を参照して頑張ってください。
次のコマンドでインストール。
sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make
- Mac: デフォルトで入っているもので問題なし。
- Ubuntu: https://help.ubuntu.com/community/Java
Samsung Galaxy S2 への書き込みには必要。
- Mac: https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.0-mac.dmg
- 最新版 (1.3.1~1.3.3) ではエラーが出るので 1.3.0 をインストールすること
- Ubuntu: sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev
- 最新ビルドでうまくいかない場合は こちらの説明 に書いてあるとおり特定リビジョンのものをビルドして使う
環境ができたら B2G のリポジトリを Clone してビルド対象を設定
git clone git://github.com/mozilla-b2g/B2G.git
cd B2G
# デバイス名のリストを出力
./config.sh
# デバイス名を指定して設定 (エミュレータ向けの場合)
./config.sh emulator
- Galaxy S2 だけは gaia のインストールパスが異なるため、gaia のビルド前に gaia/Makefile の修正が必要。これをしないと Galaxy S2 は起動時に Gecko エンジンだけ読み込んだ黒画面で停止する。他の端末では何もしなくて大丈夫。
-GAIA_INSTALL_PARENT?=/data/local
+GAIA_INSTALL_PARENT?=/system/b2g
それではビルドスタート!上手くいくようにお祈り。実機向けにビルドする場合は Android 4.0 の入った実機を USB に繋いだ状態でビルド開始する必要があるので注意(ドライバなどを抜き出すため)。
# すべてビルド (並列数を -j オプションで指定)
./build.sh -j2
# ログを残してビルド
./build.sh -j2 2>&1 | tee build.log
# gecko だけビルド
./build.sh -j2 gecko
# gaia の特定アプリだけビルド
BUILD_APP_NAME=calendar ./build.sh gaia
out/target/product/galaxys2 に *.img ファイル群が生成される。
最新のソースコードを repo スクリプトで取得
./repo sync
リポジトリ管理スクリプト repo 自体が更新された場合は次のようなメッセージが出るので言われたとおり repo スクリプトを更新する:
... A new repo command ( 1.19) is available.
... You should upgrade soon:
cp /Users/dynamis/build/B2G-unagi/.repo/repo/repo /Users/dynamis/build/B2G-unagi/repo
無事リポジトリの更新ができたら ./build.sh でビルドする。
ビルドが無事完了したら ./build.sh の最後に ./flash.sh しろという指示が出るはず。そしたら次の通り gonk/gecko と gaia を順に書き込む。
# gonk/gecko を書き込み
./flash.sh
# gaia を書き込み
./flash.sh gaia
## 以下のコマンドでもよいか?
#make -C gaia install-gaia
#make -C gaia install-media-samples
無事書き込まれると Firefox OS が起動するハズです。(・・).
- 何か問題がある場合は トラブルシューティング や MDN のドキュメントをご覧ください。
- PC 上で動作する B2G のことをデスクトップビルドと呼んでいます。ハードウェアのエミュレーションなどは実装されていないため、PC で使えないセンサー類やタッチイベント系は再現できませんが、基本的な UI チェックやアプリケーションテストをするのに便利です。
- 最新のコードベースで開発したい場合には r2d2b2g の更新を待たずに自分でビルドしましょう。
- B2G デスクトップクライアントを使用する - 原文
- builds: http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/
- gaia repo: https://github.com/mozilla-b2g/gaia
プロファイルを作成:
DEBUG=1 make profile