5. ビルド

下図はアプリケーションをビルドするまでの概略をフロー図で示したものです。

ビルドに必要となるファイルや処理についての詳細は、CTR-SDK の「ビルドシステム構築ガイド」を参照してください。

図 5-1. アプリケーションをビルドするまでの概略

ソースファイル armcc ダウンロードプレイに対応する場合のみ CIAファイル(子機プログラム) オブジェクトファイル バナー用データ BSFファイル makeciaarchive armlink makebanner CFAファイル AXFファイル ICNファイル BNRファイル ROMアーカイブに含めるファイル 電子取扱説明書(Manual.bcma) makerom RSFファイル CXIファイル makecia CCIファイル(カードアプリ) CIAファイル(ダウンロードアプリ) CIAファイル(子機プログラム) 開発者が用意するファイル ツールで生成されるファイル ツール

5.1. CTR-SDK のビルドシステムでビルドする場合

CTR-SDK のビルドシステムを使用する場合、環境変数やビルドオプション、ビルド変数の設定を OMakefile に記述し、omake を実行するだけで簡単にアプリケーションの実行ファイルを作成することができます。作成するアプリケーションの種類をカードアプリからダウンロードアプリに変更する場合でも、CTR_APPTYPE の指定と、いくつかの設定を変更するだけで行うことができます。

OMakefile で CTR_BANNER_SPEC を指定した場合、CTR_BANNER_SPEC で指定された BSF ファイルの内容に基づいて、ICN ファイルと BNR ファイルがビルド時に作成されます。このため、CTR_BANNER_SPEC を指定した場合は、CTR_BANNER、CTR_ICON を指定していたり、CTR_NO_BANNER、CTR_NO_BANNER_ICON の値を指定していたとしても、その設定は無視されます。

詳細については CTR-SDK の「ビルドルール」を参照してください。

5.1.1. カードアプリの作成

カードアプリをビルドする OMakefile を記述する上で、必須もしくは対応すべき内容は以下のとおりです。

表 5-1. カードアプリをビルドする OMakefile に記述する内容
設定 内容
CTR_APPTYPE 「CARD」
DESCRIPTOR

「$(CTRSDK_ROOT)/resources/specfiles/Application.desc」(標準アプリ)

「$(CTRSDK_ROOT)/resources/specfiles/ExtApplication.desc」(拡張アプリ)

ROM_SPEC_FILE RSF ファイルを指定します。
CTR_BANNER BNR ファイルを指定します。
CTR_ICON ICN ファイルを指定します。
MANUAL_DIR 電子取扱説明書のファイルが格納されているディレクトリを指定します。
CHILD_APPS[] ダウンロードプレイに対応する場合、配信する子機プログラムの CIA ファイル(複数指定可能)を指定します。
コード 5-1. OMakefile の記述例(カードアプリ)
SUPPORTED_TARGETS = CTR-TS.Process.MPCore.*

~ 中略(ヘッダファイル、ソースファイル、ライブラリ、シェーダの指定など) ~

TARGET_PROGRAM = MyApp
TITLE =          MyApp
CTR_APPTYPE =    CARD
DESCRIPTOR =     $(CTRSDK_ROOT)/resources/specfiles/Application.desc
ROM_SPEC_FILE =  MyApp.rsf
CTR_BANNER =     MyApp.bnr
CTR_ICON =       MyApp.icn
ROMFS_ROOT =     romfiles
MANUAL_DIR =     manual
CHILD_APPS[] =
    ../MyChildApp/images/$(BUILD_TARGET_DIR)/$(BUILD_TYPE_DIR)/MyChildApp.cia

include $(ROOT_OMAKE)/modulerules
build: $(DEFAULT_TARGETS)

表にない設定については、CTR-SDK の「ビルドルール」を参照してください。

5.1.2. ダウンロードアプリの作成

ダウンロードアプリをビルドする OMakefile を記述する上で、必須もしくは対応すべき内容は以下のとおりです。

表 5-2. ダウンロードアプリをビルドする OMakefile に記述する内容
設定 内容
CTR_APPTYPE 「SD」
DESCRIPTOR

「$(CTRSDK_ROOT)/resources/specfiles/Application.desc」(標準アプリ・製品版)

「$(CTRSDK_ROOT)/resources/specfiles/DemoVersion.desc」(標準アプリ・体験版)

「$(CTRSDK_ROOT)/resources/specfiles/ExtApplication.desc」(拡張アプリ・製品版)

「$(CTRSDK_ROOT)/resources/specfiles/ExtDemoVersion.desc」(拡張アプリ・体験版)

ROM_SPEC_FILE RSF ファイルを指定します。
CTR_BANNER BNR ファイルを指定します。
CTR_ICON ICN ファイルを指定します。
MANUAL_DIR 電子取扱説明書のファイルが格納されているディレクトリを指定します。
MANUAL_DISCLOSURE

あらかじめダウンロードで電子取扱説明書を見せる場合に public を指定します。見せない場合、指定は不要です。

CHILD_APPS[] ダウンロードプレイに対応する場合、配信する子機プログラムの CIA ファイル(複数指定可能)を指定します。
コード 5-2. OMakefile の記述例(ダウンロードアプリ)
SUPPORTED_TARGETS = CTR-TS.Process.MPCore.*

~ 中略(ヘッダファイル、ソースファイル、ライブラリ、シェーダの指定など) ~

TARGET_PROGRAM = MyDownloadApp
TITLE =          MyApp
CTR_APPTYPE =    SD
DESCRIPTOR =     $(CTRSDK_ROOT)/resources/specfiles/Application.desc
ROM_SPEC_FILE =  MyDownloadApp.rsf
CTR_BANNER =     MyDownloadApp.bnr
CTR_ICON =       MyDownloadApp.icn
ROMFS_ROOT =     romfiles
MANUAL_DIR =     manual
MANUAL_DISCLOSURE = public
CHILD_APPS[] =
    ../MyChildApp/images/$(BUILD_TARGET_DIR)/$(BUILD_TYPE_DIR)/MyChildApp.cia

include $(ROOT_OMAKE)/modulerules
build: $(DEFAULT_TARGETS)

表にない設定については、CTR-SDK の「ビルドルール」を参照してください。

5.1.3. 子機プログラムの作成

子機プログラムをビルドする OMakefile を記述する上で、必須もしくは対応すべき内容は以下のとおりです。

表 5-3. 子機プログラムをビルドする OMakefile に記述する内容
設定 内容
CTR_APPTYPE 「NAND」
DESCRIPTOR

「$(CTRSDK_ROOT)/resources/specfiles/DlpChild.desc」(標準アプリ)

※ 拡張アプリの子機プログラムは作成できません。

ROM_SPEC_FILE RSF ファイルを指定します。
CTR_NO_BANNER 「true」
CTR_ICON ICN ファイルを指定します。
コード 5-3. OMakefile の記述例(子機プログラム)
SUPPORTED_TARGETS = CTR-TS.Process.MPCore.*

~ 中略(ヘッダファイル、ソースファイル、ライブラリ、シェーダの指定など) ~

TARGET_PROGRAM = MyChildApp
TITLE =          ChildApp
CTR_APPTYPE =    NAND
DESCRIPTOR =     $(CTRSDK_ROOT)/resources/specfiles/DlpChild.desc
ROM_SPEC_FILE =  MyChildApp.rsf
CTR_NO_BANNER =  true
CTR_ICON =       MyChildApp.icn
ROMFS_ROOT =     romfiles

include $(ROOT_OMAKE)/modulerules
build: $(DEFAULT_TARGETS)

表にない設定については、CTR-SDK の「ビルドルール」を参照してください。

5.2. CTR-SDK のビルドシステム以外でビルドする場合

CTR-SDK で提供されているビルドシステムを使用せず、独自のビルドシステムを構築する場合にアプリケーションを作成するまでに必要な手順を説明します。

詳細については CTR-SDK の「ビルドシステム構築ガイド」を参照してください。

5.2.1. AXF ファイルの作成

armcc でコンパイルしたオブジェクトファイルやライブラリファイル等を armlink でリンクし、AXF ファイルを作成します。

 

コマンドの実行例:

armlink --datacompressor off --keep=nnMain \
--scatter=$CTRSDK_ROOT/resources/specfiles/linker/CTR.Process.MPCore.ldscript \
-o MyApp.axf MyApp.o MyAppLib.a ...

詳しくは ARMCC のドキュメント、CTR-SDK の「ビルドシステム構築ガイド」を参照してください。

5.2.2. ICN ファイルと BNR ファイルの作成

アプリケーションで使用するアイコンデータとバナーデータのファイルを作成します。

 

コマンドの実行例:

ctr_makebanner32.exe MyApp.bsf

BSF ファイル以外の引数を指定しなかった場合、ICN ファイルと BNR ファイルは BSF ファイルの拡張子を置き換えて作成されます。上記の実行例の場合は MyApp.icn と MyApp.bnr の 2 ファイルが作成されます。

詳しくは「4.2. BSF ファイル」、CTR-SDK のツール「ctr_makebanner」のリファレンスを参照してください。

5.2.3. 電子取扱説明書の CFA ファイルの作成

アプリケーションに付属させる電子取扱説明書の CFA ファイルを作成するには、ctr_makerom32.exe を以下のオプションで実行します。電子取扱説明書のファイル(Manual.bcma)は、事前に CTR-ManualTools で作成してください。

  • -f data
  • -rsf $CTRSDK_ROOT/resources/specfiles/Manual.rsf
  • -DROMFS_ROOT=<電子取扱説明書のファイル(Manual.bcma)が格納されているディレクトリ>
  • -DMANUAL_DISCLOSURE=<あらかじめダウンロードで電子取扱説明書を見せるなら true、見せないなら false>
  • -o <作成する CFA ファイルの名前>

 

コマンドの実行例:

ctr_makerom32.exe -DROMFS_ROOT=manual_dir -DMANUAL_DISCLOSURE=true -f data \
-rsf $CTRSDK_ROOT/resources/specfiles/Manual.rsf -o Manual.cfa

詳しくは「4.3. 電子取扱説明書」、CTR-SDK のツール「ctr_makerom」のリファレンスを参照してください。

 

5.2.4. カードアプリの作成

カードアプリのデバッグやマスターとして提出する ROM には、カードアプリの最終 ROM イメージ形式である CCI ファイルを使用します。

5.2.4.1. CCI ファイルの作成

CCI ファイルの作成には、以下のファイルを必要とします。

  • AXF ファイル
  • DESC ファイル(CTR-SDK に付属のファイル)
  • RSF ファイル
  • ICN ファイル
  • BNR ファイル
  • 電子取扱説明書の CFA ファイル(電子取扱説明書に対応する場合)
  • 子機プログラムの CFA ファイル(ダウンロードプレイに対応する場合)

CCI ファイルを作成するには、以下のオプションを指定して ctr_makerom32.exe を実行します。

  • -f card
  • -rsf <RSF ファイル>
  • -desc $CTRSDK_ROOT/resources/specfiles/Application.desc
    • 拡張アプリの場合は -desc $CTRSDK_ROOT/resources/specfiles/ExtApplication.desc
  • -icon <ICN ファイル>
  • -banner <BNR ファイル>
  • -content <CFA ファイル>:<インデックス>
    • CFA ファイルが電子取扱説明書のファイルの場合はインデックスに 1 を指定します。
    • CFA ファイルが子機プログラムのファイルの場合はインデックスに 2 を指定します。
  • -o <作成する CCI ファイルの名前>

詳しくは CTR-SDK のツール「ctr_makerom」のリファレンスを参照してください。

 

コマンドの実行例:

ctr_makerom32.exe MyApp.axf -f card -rsf MyApp.rsf \
-desc $CTRSDK_ROOT/resources/specfiles/Application.desc \
-icon MyApp.icn -banner MyApp.bnr \
-content Manual.cfa:1 -content MyChildApp.cfa:2 \
-o MyApp.cci

5.2.5. ダウンロードアプリの作成

ダウンロードアプリのデバッグやマスターとして提出する ROM には、ダウンロードアプリの最終 ROM イメージ形式である CIA ファイルを使用します。

CIA ファイルの作成には CXI ファイルが必要ですので、先に CXI ファイルを作成します。

5.2.5.1. CXI ファイルの作成

CXI ファイルの作成には、以下のファイルを必要とします。

  • AXF ファイル
  • DESC ファイル(CTR-SDK に付属のファイル)
  • RSF ファイル
  • ICN ファイル
  • BNR ファイル

CXI ファイルを作成するには、以下のオプションを指定して ctr_makerom32.exe を実行します。

  • -f exec
  • -rsf <RSF ファイル>
  • -desc $CTRSDK_ROOT/resources/specfiles/Application.desc
    • 標準アプリの体験版は -desc $CTRSDK_ROOT/resources/specfiles/DemoVersion.desc
    • 拡張アプリは -desc $CTRSDK_ROOT/resources/specfiles/ExtApplication.desc
    • 拡張アプリの体験版は -desc $CTRSDK_ROOT/resources/specfiles/ExtDemoVersion.desc
  • -icon <ICN ファイル>
  • -banner <BNR ファイル>
  • -o <作成する CXI ファイルの名前>

詳しくは CTR-SDK のツール「ctr_makerom」のリファレンスを参照してください。

 

コマンドの実行例:

ctr_makerom32.exe MyDownloadApp.axf -f exec -rsf MyApp.rsf \
-desc $CTRSDK_ROOT/resources/specfiles/Application.desc \
-icon MyApp.icn -banner MyApp.bnr \
-o MyDownloadApp.cxi

5.2.5.2. CIA ファイルの作成

CIA ファイルの作成には、以下のファイルを必要とします。

  • CXI ファイル
  • 電子取扱説明書の CFA ファイル
  • 子機プログラムの CFA ファイル(ダウンロードプレイに対応する場合)

CIA ファイルを作成するには、以下のオプションを指定して ctr_makecia32.exe を実行します。

  • -i <CXI ファイル>
  • -man <電子取扱説明書の CFA ファイル>
  • -i <子機プログラムのCFA ファイル>:2(インデックスの指定が必要です)
  • -o <作成する CIA ファイルの名前>

詳しくは CTR-SDK のツール「ctr_makecia」のリファレンスを参照してください。

 

コマンドの実行例:

ctr_makecia32.exe -i MyDownloadApp.cxi -man Manual.cfa -o MyDownloadApp.cia

5.2.6. 子機プログラムの作成

カードアプリやダウンロードアプリに含める子機プログラムは 1 つの CFA ファイルにまとめ、カードアプリやダウンロードアプリの作成時のオプションで指定します。

CFA ファイルの作成には CIA ファイル、CIA ファイルには CXI ファイルが必要ですので、CXI ファイル、CIA ファイル、CFA ファイルの順に作成します。

5.2.6.1. CXI ファイルの作成

CXI ファイルの作成には、以下のファイルを必要とします。バナーは表示されませんので、BNR ファイルは必要ありません。

  • AXF ファイル
  • DESC ファイル(CTR-SDK に付属のファイル)
  • RSF ファイル
  • ICN ファイル

CXI ファイルを作成するには、以下のオプションを指定して ctr_makerom32.exe を実行します。

  • -f exec
  • -rsf <RSF ファイル>
  • -desc $CTRSDK_ROOT/resources/specfiles/DlpChild.desc
  • -icon <ICN ファイル>
  • -o <作成する CXI ファイルの名前>

詳しくは CTR-SDK のツール「ctr_makerom」のリファレンスを参照してください。

 

コマンドの実行例:

ctr_makerom32.exe MyChildApp.axf -f exec -rsf MyChildApp.rsf \
-desc $CTRSDK_ROOT/resources/specfiles/DlpChild.desc \
-icon MyChildApp.icn \
-o MyChildApp.cxi

5.2.6.2. CIA ファイルの作成

CIA ファイルの作成には、以下のファイルを必要とします。

  • CXI ファイル

CIA ファイルを作成するには、以下のオプションを指定して ctr_makecia32.exe を実行します。

  • -i <CXI ファイル>
  • -o <作成する CIA ファイルの名前>

詳しくは CTR-SDK のツール「ctr_makecia」のリファレンスを参照してください。

 

コマンドの実行例:

ctr_makecia32.exe -i MyChildApp.cxi -o MyChildApp.cia

5.2.6.3. CFA ファイルの作成

CFA ファイルの作成には、以下のファイルを必要とします。

  • 配信する子機プログラムすべての CIA ファイル

CFA ファイルを作成するには、以下のオプションを指定して ctr_makeciaarchive32.exe を実行します。ダウンロードプレイで配信する子機プログラムは、1 つの CFA ファイルにまとめて格納されます。

  • -cia <子機プログラムの CIA ファイルのリスト>
  • -o <作成する CFA ファイルの名前>

詳しくは CTR-SDK のツール「ctr_makeciaarchive」のリファレンスを参照してください。

 

コマンドの実行例:

ctr_makeciaarchive32.exe -cia MyChildApp.cia -o MyChildApp.cfa

ここで作成した CFA ファイルは、カードアプリの作成時のオプション -content(インデックス 2)や、ダウンロードアプリ作成時のオプション -i(インデックス 2)の指定で使用します。