make
コマンドは、Gaia リポジトリ内で Gaia プロファイルを作成するのに使われます。このプロファイルは、端末に読み込んだり B2G デスクトップ ビルド内で実行されます。この記事では、利用できる様々な make オプションを詳しく見ていきます。
注記: Makefile には多くの環境変数があります。将来削除される可能性があるので、これらに依存しないでください。
作成したプロファイルは、一般的に gaia ディレクトリのルート、例えば /gaia/profile
に作成され、次の項目を含みます:
defaults/
: 電話機の再起動後にリロードされるデフォルト設定を含むディレクトリ。extensions/
: 拡張機能を含むディレクトリ。settings.json
: 設定ファイル。user.js
: その他の設定を含む、もう一つのファイル。webapps/
: 電話機にインストールされる、全 Web アプリを含むディレクトリ。
注記: プロファイルを作成済みで新しいものを作成したい場合は、新規に生成する前に、既存のプロファイルディレクトリを消さなければなりません。
デフォルト
make
これは単にノーブランドの、非デバッグのビルドを与えます。ブランドのビルドには、Mozilla 公式ブランドの make を使う必要があります。デバッグビルドは デバッグ make をする必要があります。
端末へプッシュする
make install-gaia make reset-gaia
ADB (Android デバッグブリッジ) のセットアップでは、これらの make ターゲットは Gaia を端末にプッシュするでしょう。install-gaia
では作業ディレクトリ内の Gaia の更新を端末にプッシュします。 reset-gaia
では、Gaia のプッシュ前に、既存の設定やプロファイル、Webアプリ、データベース内容 (新設定のデータベースが初期化されます) が掃除されます。
注記: make install-gaia
または make reset-gaia
を用いて端末に Gaia をプッシュすると、デフォルトで 1 倍の解像度のアセットで Gaia をビルドします。さらに高い解像度を指定するには、GAIA_DEV_PIXELS_PER_PX
または GAIA_DPPX
の make オプションを指定します (このオプションの詳細は、High resolution image assets を参照)。この方法で端末に Gaia をプッシュする場合は、関連する make オプションを端末のスケールファクタに合わせて指定するべきです。例えば、Flame 端末には make install-gaia GAIA_DEV_PIXELS_PER_PX=1.5
(または 2 や 2.5 など。スケールファクタ値は 512 icon for device display の中の表を見てください。)
特定アプリのビルド
APP=system make APP=system make install-gaia
既にプロファイルがある場合、すべてのアプリを再パッケージ化して再プッシュする代わりに、再パッケージするアプリを APP
で指定できます。このコマンドは、新しいアプリパッケージとマニフェストをプッシュします。マニフェストの変更 (例えば、新しいパーミッションやキーボードレイアウトや宣言) は Gecko によって選択されません。
カスタムプロファイルフォルダを指定する
ビルドしたプロファイルを保存するディレクトリを指定できます。次のように、PROFILE_FOLDER
で指定します:
PROFILE_FOLDER=profile-b2g-desktop make
異なる端末のビルド
異なる目的で、異なる端末のビルドを作成する make オプションがいくつかあります。
Gaia の電話機ビルドの生成
GAIA_DEVICE_TYPE=phone make
このビルドは、アプリを /gaia/build/config/phone/apps-engineering.list
から取得します。
Gaia のタブレットビルドの生成
GAIA_DEVICE_TYPE=tablet make
このビルドは、アプリを /gaia/build/config/tablet/apps-engineering.list
から取得します。
spark ビルドの生成
GAIA_DISTRIBUTION_DIR=distros/spark make reset-gaia
端末に spark をインストールします。同等な B2G build.sh オプションは次のようになります:
GAIA_DISTRIBUTION_DIR=distros/spark ./build.sh
異なるビルドタイプ
異なる目的で、異なるタイプのビルドを作成する make オプションがいくつかあります。
プロダクション make
PRODUCTION=1 make
これは Gaia のプロダクション (製品版) ビルドを生成します:
- Gaia はパッケージ型アプリとして実行され、デバッグは難しくなりますが、アプリにとっての API パーミッションなどの利用性は最も良いです。
- テストアプリはビルドに含まれません。
- デフォルトでリモートデバッグがオフになります。
- 画面ロックはオンになります (その代わり USB 接続は切断されます)。
- Marionette はオフになります。
- はじめてガイドアプリはオンになります。
- オフラインキャッシュが使用されます。
注記: 別名のコマンド make production
でも生成できます。
デバッグmake
DEBUG=1 make
DEBUG
変数は、Gaia をデフォルトを変更するごとに再パッケージが必要なパッケージ型アプリでなく、特定の GAIA_PORT
でのビルトイン Web サーバ上でホスト型アプリとして実行します。これでテストが簡単になります。最新の Firefox Nightly のプロファイルで起動すると、素晴らしい B2G 固有の Firefox 開発ツールのパネルがあります。
それに加え:
- テストアプリがビルドに含まれます。
- デフォルトでリモートデバッグがオンになります。
- 画面ロックはオンになります (その代わり USB 接続は切断されません)。
- Marionette がオンになります。これは Gaia ユニットテスト 時に必要になります。
- はじめてガイドアプリはオフになります。
- オフラインキャッシュは、たとえ生成されても使用されません。
注記: 現在、バグ (バグ 1180103) があり、Gaia のデバッグプロファイルでFirefox OS シミュレータ (WebIDE でも何経由でも) を実行した時、空のホーム画面が描画されます。これを回避するには、代わりに DEBUG=1 DESKTOP=0 make
とします ( 端末デバッグ make を参照)。
端末デバッグ make
DEVICE_DEBUG=1 make
これは端末の画面ロックをオンにし、ADB ツールのデバッグを有効にするので、端末のデバッグに便利です。
このパラメータは、Firefox OS 1.2 以降のバージョンで、Firefox OS Webアプリを WebIDE でデバッグする時に指定します
デスクトップデバッグ make
DEBUG=1 DESKTOP=0 make
このオプションは、B2G デスクトップ 内で実行する、デスクトップデバッグ版を作成します。
公式 Mozilla ブランド make
MOZILLA_OFFICIAL=1 make
公式の Mozilla ブランドのビルドを make するのに使います。
ドッグフード make
DOGFOOD=1 make
ドッグフードオプションとユーティリティがオンになります、例えば、Feedback アプリで、簡単に OS のフィードバック投稿ができます。
システムアプリ make
B2G_SYSTEM_APPS=1 make
この環境変数は、アプリを /data/local
ではなく、/system/b2g
に配置します。ユーザビルドの作業をする時に使うべきです。この変数は、make production
を実行した時に自動セットされます。また install-gaia
や reset-gaia
にも使われます。
ディストリビューションおよびマーケット向けのカスタマイズビルド
GAIA_DISTRIBUTION_DIR=./dir
注記: 詳細は Market カスタマイズ をお読みください。
開発者/デバッグ オプション
デバッグ用途で、機能を追加・削除したり、設定を変更する make オプションもあります。
リモートデバッグを有効化
REMOTE_DEBUGGER=1
これは、開発者設定 のオプション設定と同じ、端末上のリモートデバッグを有効にします。
JavaScript 最適化 make
GAIA_OPTIMIZE=1 make
これは、Gaia の JavaScript 最適化の起点となり、ファイルを連結・圧縮します。これは、make production
を実行した時に自動でセットされます。また、install-gaia
や reset-gaia
にも使われます。
高解像度のイメージアセット
GAIA_DEV_PIXELS_PER_PX=1.5 make
あるいは、別名で:
GAIA_DPPX=1.5 make
アプリのパッケージ時に、このオプションは、画像を *@1.5x.(gif|jpg|png)
の同等品が存在する場合に、その画像に置き換えます。上記オプションを標準の make
コマンドの部分的なオプションとして使う必要があります。例えば:
GAIA_DEV_PIXELS_PER_PX=1.5 make reset-gaia GAIA_DEV_PIXELS_PER_PX=1.5 make install-gaia
Gaia は現在、次の画面解像度をターゲットとしています:
- qHD: ~540×960; 端末のピクセル比 = 1.6875
- WVGA: ~480×800; 端末のピクセル比 = 1.5
- HBGA (320x240); 端末のピクセル比 = 1
qHD と WVGA 端末で画像が確実にシャープに見えるために、GAIA_DEV_PIXELS_PER_PX
を使います。CSS ピクセル単位あたりの端末ピクセルについて、詳しい情報は、A pixel is not a pixel 参照してください
統合テストの実行
make を使って Gaia の統合テストを実行できます。詳細はGaia 統合テスト を参照してください。
Raptor パフォーマンステストの実行
Raptor テストを実行するためには、テストを実際に行う前に、端末を構成する必要があります。詳しくは、Raptor を参照してください。
make raptor
低メモリプロファイルのビルド
GAIA_MEMORY_PROFILE=low make
この変数は、Gaia の低メモリプロファイルを生成します。これは、Tarako のような低メモリ端末を想定しています。
はじめてガイド (FTU) の無効化
NOFTU=1
この環境変数で FTU が無効になります。
ロック画面の無効化
Firefox OS のロック画面を NO_LOCK_SCREEN
オプションを使って無効化できます、例えば:
NO_LOCK_SCREEN=1 make
リファレンス負荷データ
リファレンス負荷データを使うと、開発者やテスト担当者は、新たにフラッシュされた電話機に対して、いくつかのアプリに大量のデータを素早くインストールできます。
そのコマンドは次の通り (gaia ディレクトリから):
make reference-workload-light
- 200 件の連絡先
- 200 件の SMS メッセージ
- 50 件の通話履歴エントリ
- 20 枚のギャラリー画像
- 20 曲の歌
- 5 本の動画
make reference-workload-medium
- 500 件の連絡先
- 500 件の SMS メッセージ
- 100 件の通話履歴エントリ
- 50 枚のギャラリー画像
- 50 曲の歌
- 10 本の動画
make reference-workload-heavy
- 1000 件の連絡先
- 1000 件の SMS メッセージ
- 200 件の通話履歴エントリ
- 100 枚のギャラリー画像
- 100 曲の歌
- 20 本の動画
make reference-workload-x-heavy
- 2000 件の連絡先
- 2000 件の SMS メッセージ
- 500 件の通話履歴エントリ
- 250 枚のギャラリー画像
- 250 曲の歌
- 50 本の動画
これらのターゲットには、アプリ名をスペースで区切った APP
環境変数か、APPS
環境変数が指定できます。例えば:
APP=sms make reference-workload-light APPS="sms communications/contacts" make reference-workload-heavy
利用可能なアプリは次の通り:
APPS="gallery music video communications/contacts sms communications/dialer"
リファレンス負荷データに音楽 (歌) を入れるには、mid3v2 ユーティリティがインストールされていなければなりません。このユーティリティは次のコマンドでインストールします:
sudo apt-get install python-mutagen
代わりに、Fedora や RHEL を実行している場合、これを使います:
sudo yum install python-mutagen
ドキュメント make
Gaia のドキュメントは、jsdoc3 を通じてビルドされます。これを生成するには、次のコマンドを使います:
make docs
IME レイアウトと辞書の有効化
キーボード IME レイアウトと辞書を有効化するには、次のコマンド構成を使用します:
GAIA_KEYBOARD_LAYOUTS=en,de,fr,jp-kanji make
現在デフォルトでは、ディスク容量のために、全てのレイアウトを積んでいません。レイアウトと辞書を切り離すために Bug 1029951 が作業中です (ユーザ辞書をダウンロード提供します)。
すべての利用可能なレイアウトを知るには shared/js/keyboard_helper.js のファイルを見てください。