1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5<meta http-equiv="Content-Style-Type" content="text/css"> 6<title>Build Rules</title> 7<style type="text/css"> 8<!-- 9body { 10/* 11 font-size : 10pt; 12*/ 13 font-weight : normal; 14 color : #000000; 15 margin : 8px; 16} 17 18div { 19 width : 98%; 20 white-space : nowrap; 21} 22 23div.title { 24 text-align : left; 25 font-weight : bold; 26/* 27 font-size : 16pt; 28*/ 29 font-size : 150%; 30 color : #202020; 31 border-style : double; 32 border-width : 8px; 33 /* タイトルを囲む枠線の色を指定 */ 34 border-color : #FF6600; 35 36 margin : 4px; 37 padding : 4px; 38} 39 40h1 { 41 font-size : 150%; 42 font-family : Arial; 43 border-bottom-width : 5px; 44 border-bottom-style : solid; 45 border-bottom-color : #FF6600; 46 padding-bottom : 1px; 47 margin-bottom : 20px; 48 letter-spacing : normal; 49 font-weight : bold; 50} 51 52 53h2 { 54 font-weight : bold; 55/* 56 font-size : 16pt; 57*/ 58 font-size : 150%; 59 border-style : none none solid double; 60 border-width : 0px 0px 2px 8px; 61 /* 見出しの線の色を指定 */ 62 border-color : #FF6600; 63 64 margin-left : 2px; 65 padding-left : 4px; 66} 67td { 68 vertical-align : top; 69} 70th { 71 vertical-align : top; 72} 73 74p { 75 margin-left : 4px; 76} 77.enable { background :#ffcccc; text-align : center } 78.disable { text-align : center } 79.exsample { 80 border-style : none none none none; 81 background : #e8f4f4; 82} 83 84--> 85</style> 86 87</head> 88<body> 89<h1>Using the <CODE>omake</CODE> Tool</h1> 90This document provides a brief explanation of the <CODE>omake</CODE> tool used in the CTR-SDK build system.<br/> The following descriptions assume that the build environment can locate the <CODE>omake</CODE> executable through the <CODE>PATH</CODE> environment variable. 91<h3>Building</h3> 92<ul> 93 <li>Building 94 <p><CODE>% omake</CODE></p></li> 95 <li>Building in Parallel 96 <p><CODE>% omake -j 2 # Run two build commands (jobs) in parallel</CODE></p></li> 97 <li>Building While Displaying the Command Being Run 98 <p><CODE>% omake --verbose</CODE></p></li> 99</ul> 100<h3>Deleting</h3> 101<ul> 102 <li>Deleting the Results of a Build 103 <p><CODE>% omake clean</CODE></p></li> 104</ul> 105<h3>Special Options for <CODE>omake</CODE></h3> 106<ul> 107 <li>Ignoring Dependencies 108 <p><CODE>% omake --depend #</CODE> Build, ignoring dependencies<br/> <CODE>% omake -U #</CODE> Build, ignoring dependencies and cache<br/><br/> 109 110 This discards all cached dependencies and is useful in cases such as when header files have been deleted.</p></li> 111</ul> 112 113<h1>How to Use the Build System</h1> 114This section describes how to use the environment variables, build options, and build variables that are used by the CTR-SDK build system. 115<h2 id="h2_content_1_0">Environment Variables Required When Building the SDK<a class="anchor_super" id="ufb8427e"></a></h2> 116The following are the environment variables that must be set when building using the CTR-SDK build system.<br/> If an option is not set, the default value is used. 117 118<table border="1" width="100%" cellspacing="0" cellpadding="2"> 119 <COL span="1" width="160"> 120 <tbody> 121 <tr bgcolor="#CCFFCC"> 122 <th align="center"><strong>Environment Variables</strong></th> 123 <td align="center"><strong>Description</strong></td> 124 <td align="center"><strong>Default Value</strong></td> 125 </tr> 126 <tr> 127 <th align="left"><CODE>CTRSDK_ROOT</CODE><br/>(<CODE>HORIZON_ROOT</CODE>)<br/> <font color="#ff0000">►IMPORTANT</font></th> 128 <td align="left"> 129 Directory where the CTR-SDK is installed (the directory where <CODE>$CTR-SDK</CODE> is extracted). 130 </td> 131 <td><CODE>$OMAKEROOT</CODE></td> 132 </tr> 133 <tr> 134 <th align="left"><CODE>RVCT40BIN<br/>RVCT40INC<br/>RVCT40LIB<br/>(ARMCC41BIN<br/>ARMCC41INC<br/>ARMCC41LIB)</CODE></th> 135 <td align="left"> 136 Directory where the ARM compiler is installed. 137 </td> 138 <td>Normally, these are set automatically during installation of the ARM compiler.</td> 139 </tr> 140 <tr> 141 <th align="left"><CODE>CTRSDK_RVCT_VER</CODE></th> 142 <td align="left"> 143 Sets the ARM compiler version to use for the build. If the environment variable corresponding to the specified ARM compiler has not been configured, the ARM compiler used is the most recent one that supports the CTR-SDK among the configured environment variables.<br/><br/> Example (to build with RVCT 4.0):<br/> 144 <table> 145 <td class="exsample"><CODE>CTRSDK_RVCT_VER=40</CODE></td> 146 </table> 147 Example (to build with ARMCC 4.1):<br/> 148 <table> 149 <td class="exsample"><CODE>CTRSDK_RVCT_VER=41</CODE></td> 150 </table> 151 </td> 152 <td><CODE>40</CODE> (to build with RVCT 4.0)</td> 153 </tr> 154 <tr> 155 <th align="left"><CODE>CTRSDK_TARGETS</CODE></th> 156 <td align="left"> 157 Sets the target hardware and optimization options in environment variables.<br/> The only specifiable hardware is <CODE>TS</CODE>, and the specifiable optimization options are <CODE>fast</CODE> and <CODE>small</CODE>.<br/> <font color="#ff0000">If <CODE>FILTER</CODE> is set, these options are ignored.</font><br/><br/> 158 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 159 <col span="1" width="120"> 160 <tbody> 161 <tr> 162 <td><strong><CODE>CTR-TS.*</CODE></strong></td> 163 <td>TS board</td> 164 </tr> 165 </tbody> 166 </table><br/> 167 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 168 <col span="1" width="120"> 169 <tbody> 170 <tr> 171 <td><strong><CODE>*.fast</CODE></strong></td> 172 <td>Optimized for speed</td> 173 </tr> 174 <tr> 175 <td><strong><CODE>*.small</CODE></strong></td> 176 <td>Optimized for size</td> 177 </tr> 178 </tbody> 179 </table><br/> Example (to support only speed-optimized builds on TS boards):<br/> 180 <table> 181 <td class="exsample"><CODE>CTRSDK_TARGETS=CTR-TS.Process.MPCore.fast</CODE></td> 182 </table> 183 Example (to support both <CODE>fast</CODE> and <CODE>small</CODE> builds on TS boards):<br/> 184 <table> 185 <td class="exsample"><CODE>CTRSDK_TARGETS=CTR-TS.Process.MPCore.*</CODE></td> 186 </table> 187 </td><br/> 188 <td>None.</td> 189 </tr> 190 </tbody> 191</table> 192<h2 id="h2_content_1_0">Available Build Options When Building the SDK<a class="anchor_super" id="ufb8427e"></a></h2> 193The following are the build options used when building using the CTR-SDK build system.<br/> These can be specified as arguments to the <CODE>omake</CODE> command.<br/> If an option is not set, the default value is used. 194<table border="1" width="100%" cellspacing="0" cellpadding="2"> 195 <COL span="1" width="160"> 196 <tbody> 197 <tr bgcolor="#CCFFCC"> 198 <th align="center"><strong>Build Options</strong></th> 199 <td align="center"><strong>Description</strong></td> 200 <td width="10%" align="center"><strong>Default Value</strong></td> 201 </tr> 202 <tr> 203 <th align="left"><CODE>BUILD</CODE></th> 204 <td align="left"> 205 Sets the target build type.<br/> The three possible settings are <CODE>debug</CODE>, <CODE>development</CODE>, and <CODE>release</CODE>.<br/> Changing this setting will change the compile options and which libraries are linked when running the <CODE>omake</CODE> command.<br/><br/> The details for each build type are as follows.<br/> 206 <table cellspacing="1" border="1" bgcolor="#e8f4f4"> 207 <col span="1" width="120"> 208 <tbody> 209 <tr bgcolor="#CCFFCC"> 210 <td width="40%" align="center"><strong>Features</strong></td> 211 <td width="20%" align="center"><strong><CODE>debug</CODE></strong></td> 212 <td width="20%" align="center"><strong><CODE>development</CODE></strong></td> 213 <td width="20%" align="center"><strong><CODE>release</CODE></strong></td> 214 </tr> 215 <tr> 216 <td><strong>Operations guaranteed</strong></td> 217 <td class="disable">No</td> 218 <td colspan="2" class="enable">Scope</td> 219 </tr> 220 <tr> 221 <td><strong>Debug Output Functions from OS API</strong></td> 222 <td colspan="2" class="enable">Enabled</td> 223 <td class="disable">Disabled</td> 224 </tr> 225 <tr> 226 <td><strong>Application Optimization</strong></td> 227 <td colspan="2" class="disable">OFF</td> 228 <td class="enable">ON</td> 229 </tr> 230 <tr> 231 <td><strong>Library Optimization</strong></td> 232 <td class="disable">OFF</td> 233 <td colspan="2" class="enable">ON</td> 234 </tr> 235 <tr> 236 <td><strong>SDK internal debug codes</strong></td> 237 <td colspan="2" class="enable">Enabled</td> 238 <td class="disable">Disabled</td> 239 </tr> 240 <tr> 241 <td><strong>ASSERT</strong></td> 242 <td colspan="2" class="enable">Enabled</td> 243 <td class="disable">Disabled</td> 244 </tr> 245 <tr> 246 <td><strong>HostIO</strong></td> 247 <td colspan="2" class="enable">Enabled</td> 248 <td class="disable">Disabled</td> 249 </tr> 250 </tbody> 251 </table><br/> Although debug information is included in release build object files, it is removed by makerom.<br/> 252 </td> 253 <td><CODE>development</CODE></td> 254 </tr> 255 <tr> 256 <th align="left"><CODE>DEBUG_PRINT</CODE></th> 257 <td align="left"> 258 Enables or disables debug output functions regardless of build type.<br/> Specifying <CODE>true</CODE> to the macro enables <CODE>NN_LOG</CODE> (OS debug output); specifying <CODE>false</CODE> leaves <CODE>NN_LOG</CODE> empty.<br/><br/> However, the debug output used in the SDK cannot be enabled or disabled. 259 </td> 260 <td>For release builds: <CODE>false</CODE>.<BR>Otherwise: <CODE>true</CODE>.</td> 261 </tr> 262 <tr> 263 <th align="left"><CODE>ASSERT_WARNING</CODE></th> 264 <td align="left"> 265 Enables or disables ASSERTs/WARNINGs regardless of build type.<br/> Specifying <CODE>true</CODE> to the macro enables <CODE>NN_*ASSERT/NN_WARNING</CODE>; specifying <CODE>false</CODE> leaves <CODE>NN_*ASSERT/NN_WARNING</CODE> empty.<br/><br/> However, the ASSERTs/WARNINGs used in the SDK cannot be enabled or disabled. 266 </td> 267 <td>For release builds: <CODE>false</CODE>.<BR>Otherwise: <CODE>true</CODE>.</td> 268 </tr> 269 <tr> 270 <th align="left"><CODE>FILTER</CODE></th> 271 <td align="left"> 272 Sets the target hardware and optimization options.<br/> The only specifiable hardware is <CODE>TS</CODE>, and the specifiable optimization options are <CODE>fast</CODE> and <CODE>small</CODE>.<br/> <font color="#ff0000">If these are set, the <CODE>CTRSDK_TARGETS</CODE> setting is ignored.</font><br/><br/> 273 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 274 <col span="1" width="120"> 275 <tbody> 276 <tr> 277 <td><strong><CODE>CTR-TS.*</CODE></strong></td> 278 <td>TS board</td> 279 </tr> 280 </tbody> 281 </table><br/> 282 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 283 <col span="1" width="120"> 284 <tbody> 285 <tr> 286 <td><strong><CODE>*.fast</CODE></strong></td> 287 <td>Optimized for speed</td> 288 </tr> 289 <tr> 290 <td><strong><CODE>*.small</CODE></strong></td> 291 <td>Optimized for size</td> 292 </tr> 293 </tbody> 294 </table><br/> Example (supporting only speed-optimized builds on TS boards):<br/> 295 <table> 296 <td class="exsample"><CODE>FILTER=CTR-TS.Process.MPCore.fast</CODE></td> 297 </table> 298 Example (to support both <CODE>fast</CODE> and <CODE>small</CODE> builds on TS boards):<br/> 299 <table> 300 <td class="exsample"><CODE>FILTER=CTR-TS.Process.MPCore.*</CODE></td> 301 </table> 302 </td><br/> 303 <td><CODE>CTR-TS*MPCore*</CODE><br/>(to support both <CODE>fast</CODE> and <CODE>small</CODE> on TS boards)</td> 304 </tr> 305 </tbody> 306</table> 307<h2 id="h2_content_1_0">Available Build Options in the SDK <CODE>OMakefile</CODE><a class="anchor_super" id="ufb8427e"></a></h2> 308The following options are available for setting build conditions per directory in the CTR-SDK <CODE>OMakefile</CODE>.<br/> These specify source files and concatenated <CODE>OMakefile</CODE>s.<br/> If an option is not set, the default value is used. 309<table border="1" width="100%" cellspacing="0" cellpadding="2"> 310 <COL span="1" width="160"> 311 <tbody> 312 <tr bgcolor="#CCFFCC"> 313 <th width="20%" align="center"><strong>Build Variable</strong></th> 314 <td width="60%" align="center"><strong>Description</strong></td> 315 <td width="10%" align="center"><strong>Default Value</strong></td> 316 </tr> 317 <tr> 318 <th align="left"><CODE>SUPPORTED_TARGETS</CODE><br/> <font color="#ff0000">►IMPORTANT</font></th> 319 <td align="left"> 320 Sets the targets supported by the program.<br/> The only specifiable hardware is <CODE>TS</CODE>, and the specifiable optimization options are <CODE>fast</CODE> and <CODE>small</CODE>.<br/><br/> 321 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 322 <col span="1" width="120"> 323 <tbody> 324 <tr> 325 <td><strong><CODE>CTR-TS.*</CODE></strong></td> 326 <td>TS board</td> 327 </tr> 328 </tbody> 329 </table><br/> 330 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 331 <col span="1" width="120"> 332 <tbody> 333 <tr> 334 <td><strong><CODE>*.fast</CODE></strong></td> 335 <td>Optimized for speed</td> 336 </tr> 337 <tr> 338 <td><strong><CODE>*.small</CODE></strong></td> 339 <td>Optimized for size</td> 340 </tr> 341 </tbody> 342 </table><br/> Example (to support only speed-optimized builds on TS boards):<br/> 343 <table> 344 <td class="exsample"><CODE>SUPPORTED_TARGETS = CTR-TS.Process.MPCore.fast</CODE></td> 345 </table> 346 Example (to support both <CODE>fast</CODE> and <CODE>small</CODE> builds on TS boards):<br/> 347 <table> 348 <td class="exsample"><CODE>SUPPORTED_TARGETS = CTR-TS.Process.MPCore.*</CODE></td> 349 </table> 350 </td><br/> 351 <td>None.</td> 352 </tr> 353 <tr> 354 <th align="left"><CODE>CTR_APPTYPE</CODE><a class="anchor_super" name="makeciavariable" id="x542d3cd"></th> 355 <td align="left"> 356Sets the type of CTR application to create. You can specify multiple types by delimiting them with spaces.<br/> 357 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 358 <col span="1" width="120"> 359 <tbody> 360 <tr> 361<td><strong><CODE>CARD</CODE></strong></td> 362<td>Creates a CCI file for card-based software.</td> 363 </tr> 364 <tr> 365<td><strong><CODE>NAND</CODE></strong></td> 366<td>Creates a CIA file for DLP child devices.</td> 367 </tr> 368 <tr> 369<td><strong>SD</strong></td> 370<td>Creates a CIA file for downloadable applications.</td> 371 </tr> 372 <tr> 373<td><strong>LIST</strong></td> 374<td>Creates a CCL file.</td> 375 </tr> 376 </tbody> 377 </table> 378 <td><CODE>CARD</CODE></td> 379 </tr> 380 <tr> 381 <th align="left"><CODE>SOURCES</CODE></th> 382 <td align="left"> 383 Enumerates the source files to be compiled/assembled.<br/> The build system attempts to generate object files using the compiler or assembler that is appropriate for a given file extension (for example, <CODE>.c</CODE>, <CODE>.cpp</CODE>, or <CODE>.s</CODE>). 384 </td> 385 <td>None.</td> 386 </tr> 387 <tr> 388 <th align="left"><CODE>INCLUDES</CODE></th> 389 <td align="left"> 390 Specifies the directory if there are any include files specific to this program.<br/> <font color="#ff0000">By default, this variable is set to the <CODE>$CTR-SDK/include</CODE> and <CODE>$OMAKEROOT/include</CODE> directories, so any additional settings must be specified using the <CODE>+=</CODE> operator.</font><br/> 391 </td> 392 <td><CODE>$CTR-SDK/include<br/>$OMakeroot/include</CODE></td> 393 </tr> 394 <tr> 395 <th align="left"><CODE>LIBS</CODE></th> 396 <td align="left"> 397 Specifies the libraries to link. The filename extension is not needed.<br/> The build system automatically links several standard libraries, but any special libraries required for a specific program must be explicitly specified here.<br/> Usually, a <CODE>fast</CODE> build will have the <CODE>libnn_xxx.fast</CODE> library linked in as the library matching the optimization option, but it is also possible to explicitly specify the optimization option, as for <CODE>libnn_xxx.fast</CODE>.<br/> <font color="#ff0000">This variable is set by default to the standard library, so any additional settings must be specified using the <CODE>+=</CODE> operator.</font><br/><br/> Example (to link against the additional library <CODE>libnn_xxx</CODE>):<br/> 398 <table> 399 <td class="exsample"><CODE>LIBS += libnn_xxx</CODE></td> 400 </table> 401 </td> 402 <td>Standard library</td> 403 </tr> 404 <tr> 405 <th align="left"><CODE>LIBFILES</CODE></th> 406 <td align="left"> 407 Specifies additional libraries to link to this program.<br/><br/> Example (to link the additional library <CODE>$TMP/libraries/CTR-TS.Process.MPCore/[noopt|release|verbose]/libnn_xxx.[fast|small].a</CODE>):<br/> 408 <table> 409 <td class="exsample"><CODE>LIBFILES = $`(addprefix $(TMP)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnn_xxx)</CODE></td> 410 </table> 411 </td> 412 <td>None.</td> 413 </tr> 414 <tr> 415 <th align="left"><CODE>TARGET_PROGRAM</CODE></th> 416 <td align="left"> 417 Specifies the name of the image to generate. The filename extension is not needed.<br/> Links the object files created by compiling/assembling the source files specified in <CODE>SOURCES</CODE>, and creates the target file.<br/> The extension of the created target file is normally <CODE>cci</CODE>.<br/> 418 </td> 419 <td>None.</td> 420 </tr> 421 <tr> 422 <th align="left"><CODE>TARGET_LIBRARY</CODE></th> 423 <td align="left"> 424 Specifies the names of the library to build. The filename extension is not needed.<br/> Concatenates the object files created by compiling/assembling the source files specified in <CODE>SOURCES</CODE>, creating a library.<br/> 425 </td> 426 <td>None.</td> 427 </tr> 428 <tr> 429 <th align="left"><CODE>CCFLAGS</CODE></th> 430 <td align="left"> 431 Set this variable when you want to change the options passed to the compiler when compiling source files or creating linker script files.<br/> <font color="#ff0000">This variable is set to the required options by default, so any additional options must be specified using the <CODE>+=</CODE> operator.</font><br/> 432 </td> 433 <td>See <CODE>commondefs.cctype.RVCT.om</CODE> for more information.</td> 434 </tr> 435 <tr> 436 <th align="left"><CODE>CCFLAGS_WARNING</CODE><br/><font color="#ff0000">►CAUTION</font></th> 437 <td align="left"> 438 Set this variable when you want to change the warning options passed to the compiler.<br/> <font color="#ff0000">The warning options should be set always using this variable, not <CODE>CCFLAGS</CODE>.</font><br/> <font color="#ff0000">This variable is set to the required options by default, so any additional options must be specified using the <CODE>+=</CODE> operator.</font><br/> 439 </td> 440 <td>See <CODE>commondefs.cctype.RVCT.om</CODE> for more information.</td> 441 </tr> 442 <tr> 443 <th align="left"><CODE>CCFLAGS_DEV_OPT</CODE></th> 444 <td align="left"> 445 Use this variable to set the optimization level of a <CODE>development</CODE> build of an application, when you want the level to be different for <CODE>development</CODE> builds. The specified optimization level does not affect <CODE>release</CODE> or <CODE>debug</CODE> builds.<br/> 446 </td> 447 <td>See <CODE>commondefs.cctype.RVCT.om</CODE> for more information.</td> 448 </tr> 449 <tr> 450 <th align="left"><CODE>CFLAGS</CODE></th> 451 <td align="left"> 452 Set this variable when you want to change the options passed to the compiler only when compiling C files.<br/> <font color="#ff0000">This variable is set to the required options by default, so any additional options must be specified using the <CODE>+=</CODE> operator.</font><br/> 453 </td> 454 <td>See <CODE>commondefs.cctype.RVCT.om</CODE> for more information.</td> 455 </tr> 456 <tr> 457 <th align="left"><CODE>CXXFLAGS</CODE></th> 458 <td align="left"> 459 Set this variable when you want to change the options passed to the compiler only when compiling C++ files.<br/> <font color="#ff0000">This variable is set to the required options by default, so any additional options must be specified using the <CODE>+=</CODE> operator.</font><br/> 460 </td> 461 <td>See <CODE>commondefs.cctype.RVCT.om</CODE> for more information.</td> 462 </tr> 463 <tr> 464 <th align="left"><CODE>ASFLAGS</CODE></th> 465 <td align="left"> 466 Set this variable when you want to change the options passed to the compiler only when compiling assembler files.<br/> <font color="#ff0000">This variable is set to the required options by default, so any additional options must be specified using the <CODE>+=</CODE> operator.</font><br/> 467 </td> 468 <td>See <CODE>commondefs.cctype.RVCT.om</CODE> for more information.</td> 469 </tr> 470 <tr> 471 <th align="left"><CODE>LDFLAGS</CODE></th> 472 <td align="left"> 473 Set this variable when you want to change the options passed to the linker.<br/> <font color="#ff0000">This variable is set to the required options by default, so any additional options must be specified using the <CODE>+=</CODE> operator.</font><br/> 474 </td> 475 <td>See <CODE>commondefs.cctype.RVCT.om</CODE> for more information.</td> 476 </tr> 477 <tr> 478 <th align="left"><CODE>LDFLAGS_WARNING</CODE></th> 479 <td align="left"> 480 Set this variable when you want to change the warning options passed to the linker.<br/><br/> <font color="#ff0000">This variable is set to the required options by default, so any additional options must be specified using the <CODE>+=</CODE> operator.</font><br/> 481 </td> 482 <td>See <CODE>commondefs.cctype.RVCT.om</CODE> for more information.</td> 483 </tr> 484 <tr bgcolor="#FFFFCC"> 485 <th align="left"><CODE>ROM_SPEC_FILE</CODE><a class="anchor_super" name="makeromvariable" id="x542d3cc"></th> 486 <td align="left"> 487Specifies a file describing the contents of a ROM file (RSF:RomSpecFile).<br/>The file specified here is passed to <CODE>ctr_makerom</CODE>, and the CCI files are created based on the settings in this file.<br/> 488 </td> 489 <td><CODE>$CTR-SDK/resource/specfiles/Application.rsf</CODE></td> 490 </tr> 491 <tr bgcolor="#FFFFCC"> 492 <th align="left"><CODE>DESCRIPTOR</CODE><a class="anchor_super" name="makeromvariable" id="x542d3cc"></th> 493 <td align="left"> 494Specifies the DESC file.<br/> The file specified here is passed to <CODE>ctr_makerom</CODE>, and the CCI files are created based on the settings in this file.<br/> 495 </td> 496 <td><CODE>$CTR-SDK/resource/specfiles/Application.desc</CODE></td> 497 </tr> 498 <tr bgcolor="#FFFFCC"> 499 <th align="left"><CODE>MAKEROMFLAGS</CODE></th> 500 <td align="left"> 501 Set this variable when you want to change the options passed to <CODE>ctr_makerom</CODE>.<br/> <font color="#ff0000">This variable is set to the required options by default, so any additional options must be specified using the <CODE>+=</CODE> operator.</font><br/> 502 </td> 503 <td>See <CODE>commondefs.om</CODE> for more information.</td> 504 </tr> 505 <tr bgcolor="#FFFFCC"> 506 <th align="left"><CODE>ROMFS_ROOT</CODE></th> 507 <td align="left"> 508 Specifies the value passed to <CODE>ctr_makerom</CODE> in <CODE>-DROMFS_ROOT=</CODE>.<br/> The value can be referenced in <CODE>RSF</CODE> by using <CODE>$(ROMFS_ROOT)</CODE>.<br/> 509 </td> 510 <td>None.</td> 511 </tr> 512 <tr bgcolor="#FFFFCC"> 513 <th align="left"><CODE>TITLE</CODE></th> 514 <td align="left"> 515 Specifies the value passed to <CODE>ctr_makerom</CODE> in <CODE>-DTITLE=</CODE>.<br/> The value can be referenced in <CODE>RSF</CODE> by using <CODE>$(TITLE)</CODE>.<br/> 516 </td> 517 <td>CtrApp</td> 518 </tr> 519 <tr bgcolor="#FFFFCC"> 520 <th align="left"><CODE>CTR_BANNER</CODE></th> 521 <td align="left"> 522 Specifies the banner file. The value specified here is passed to <CODE>ctr_makerom</CODE> by using the <CODE>-banner</CODE> option.<BR> <CODE>CTR_NO_BANNER = true</CODE> or <CODE>CTR_NO_BANNER_ICON</CODE> must be specified if not using banners, because a default value is used even if this specification is omitted. You cannot specify both this setting and <CODE>CTR_BANNER_SPEC</CODE>.<BR> 523 </td> 524 <td><code>$CTR-SDK/resources/banner/Default.bnr</code></td> 525 </tr> 526 <tr bgcolor="#FFFFCC"> 527 <th align="left"><CODE>CTR_ICON</CODE></th> 528 <td align="left"> 529 Specifies the icon file. The value specified here can be passed to <CODE>ctr_makerom</CODE> by using the <CODE>-icon</CODE> option.<BR> <CODE>CTR_NO_BANNER_ICON = true</CODE> must be specified if not using icons, because a default value is used even if this specification is omitted. You cannot specify both this setting and <CODE>CTR_BANNER_SPEC</CODE>.<BR> 530 </td> 531 <td><code>$CTR-SDK/resources/banner/Default.icn</code></td> 532 </tr> 533 <tr bgcolor="#FFFFCC"> 534 <th align="left"><CODE>CTR_NO_BANNER</CODE></th> 535 <td align="left"> 536 This variable must be set to <CODE>true</CODE> if not using banners.<br/> 537 </td> 538 <td>None.</td> 539 </tr> 540 <tr bgcolor="#FFFFCC"> 541 <th align="left"><CODE>CTR_NO_BANNER_ICON</CODE></th> 542 <td align="left"> 543 This variable must be set to <CODE>true</CODE> if not using banners or icons.<BR> 544 </td> 545 <td>None.</td> 546 </tr> 547 <tr bgcolor="#FFCCCC"> 548 <th align="left"><CODE>CTR_BANNER_SPEC</CODE><a class="anchor_super" name="makebannervariable" id="x542d3cc"></th> 549 <td align="left"> 550 Specifies the spec file to use as input to <CODE>ctr_makebanner</CODE>.<BR> Data generated by <CODE>ctr_makebanner</CODE> can be input as is to <CODE>ctr_makerom</CODE>.<BR> This variable cannot be used at the same time as <CODE>CTR_BANNER</CODE> or <CODE>CTR_ICON</CODE>.<BR> 551 </td> 552 <td>None.</td> 553 </tr> 554 <tr bgcolor="#CCCCFF"> 555 <th align="left"><CODE>SHADER_SOURCES</CODE></th> 556 <td align="left"> 557 Enumerates the vertex shader assembler files (<CODE>.vsh</CODE>) to be compiled/assembled.<br/> 558 </td> 559 <td>None.</td> 560 </tr> 561 <tr bgcolor="#CCCCFF"> 562 <th align="left"><CODE>SHADER_INCLUDES</CODE></th> 563 <td align="left"> 564 Specifies the directory containing include files referenced when compiling vertex shader assembler files.<br/> <font color="#ff0000">By default, this variable is set to the <CODE>$CTR-SDK/resources</CODE> directory, so any additional settings must be specified using the <CODE>+=</CODE> operator.</font><br/> 565 </td> 566 <td><CODE>$CTR-SDK/resources</CODE></td> 567 </tr> 568 <tr bgcolor="#CCCCFF"> 569 <th align="left"><CODE>SHADER_OBJECTS</CODE></th> 570 <td align="left"> 571 Enumerates the object files to be added during the shader binary build.<br/> 572 </td> 573 <td>None.</td> 574 </tr> 575 <tr bgcolor="#CCCCFF"> 576 <th align="left"><CODE>SHADER_OBJECTS_PREBUILT</CODE></th> 577 <td align="left"> 578 Enumerates the object files to be added during the shader binary build.<br/> This variable is only used for reserved geometry shaders.<br/> Specify the object files using paths relative to <CODE>$CTR-SDK/resources/shader</CODE>.<br/> 579 </td> 580 <td>None.</td> 581 </tr> 582 <tr bgcolor="#CCCCFF"> 583 <th align="left"><CODE>TARGET_SHADER</CODE></th> 584 <td align="left"> 585 Specifies the names of the shader binary (.shbin) files that are ultimately output. The filename extension is not needed.<br/> If you explicitly specify an empty name, the build system will assemble without linking. 586 </td> 587 <td>shader</td> 588 </tr> 589 <tr bgcolor="#CCCCFF"> 590 <th align="left"><CODE>SHBIN_INSTALL_ROOT</CODE></th> 591 <td align="left"> 592 Specifies the installation root for the shader binary file.<br/> 593 </td> 594 <td>Value of <CODE>ROMFS_ROOT</CODE></td> 595 </tr> 596 <tr bgcolor="#CCCCFF"> 597 <th align="left"><CODE>SHADER_BINARY</CODE></th> 598 <td align="left"> 599 Sets the full path of the shader binary file.<br/> To use, reference <font color="#ff0000">after referencing <CODE>modulerules</CODE></font>.<br/> 600 </td> 601 <td>Full path to <CODE>.shbin</CODE> file</td> 602 </tr> 603 <tr bgcolor="#CCCCFF"> 604<th align="left"><CODE>SHADER_ASFLAGS</CODE></th> 605 <td align="left"> 606Set this variable to change the options assigned to the assembler when assembling vertex shader assembly language files (VSH files).<br/>If you specify the <CODE>-I</CODE> or <CODE>-O</CODE> options, however, use the respective build options.<br/>Specify this <font color="#ff0000">before referencing modulerules</font>.<br /><font color="#ff0000">Although currently nothing is set by default, use the "+=" operator to specify additional options.</font><br/> 607 </td> 608<td>None.</td> 609 </tr> 610 <tr bgcolor="#CCCCFF"> 611<th align="left"><CODE>SHADER_LDFLAGS</CODE></th> 612 <td align="left"> 613Set this variable when you want to change the options passed to the vertex shader linker.<br/>If you specify the <CODE>-I</CODE> or <CODE>-O</CODE> options, however, use the respective build options.<br/>Specify this <font color="#ff0000">before referencing modulerules</font>.<br /><font color="#ff0000">An option is set in this variable by default. Use the "<CODE>+=</CODE>" operator to specify additional options.</font><br/> 614 </td> 615<td><CODE>-M</CODE></td> 616 </tr> 617 <tr> 618 <th align="left"><CODE>INSTALL_ROOT</CODE><br/><font color="#ff0000">►CAUTION</font></th> 619 <td align="left"> 620 Specifies the absolute or relative path to the directory to which results should be installed.<br/> Use to change the installation directory for libraries and target files.<br/> <font color="#ff0000">This variable must be set before the <CODE>commondefs</CODE> file is referenced. (Setting the variable within <CODE>OMakeroot</CODE> is one way of ensuring this.)</font><br/><br/> Example (to change the installation directory to <CODE>.tmp</CODE>):<br/> 621 <table> 622 <td class="exsample"><CODE>INSTALL_ROOT = ./tmp</CODE></td> 623 </table> 624 </td> 625 <td>None.</td> 626 </tr> 627 <tr> 628 <th align="left"><CODE>HOST_IO</CODE></th> 629 <td align="left"> 630 If set to <CODE>true</CODE>, <CODE>HostIO</CODE> is enabled regardless of build type.<br/> 631 </td> 632 <td>For release builds: <CODE>false</CODE>.<BR>Otherwise: <CODE>true</CODE>.</td> 633 </tr> 634 <tr> 635 <th align="left"><CODE>TARGET_BUILDTYPES</CODE></th> 636 <td align="left"> 637 Specifies the build type specified on the command line.<br/> Use <font color="#ff0000">after referencing <CODE>commondefs</CODE></font>, such as to exclude a specific build type.<br/><br/> Example (excluding the <CODE>debug</CODE> build):<br/> 638 <table> 639 <td class="exsample"><CODE>TARGET_BUILDTYPES = $(filter Release Development, $(TARGET_BUILDTYPES))</CODE></td> 640 </table> 641 </td><br/> 642 <td>None.</td> 643 </tr> 644 <tr> 645 <th align="left"><CODE>CHILD_APPS</CODE></th> 646 <td align="left"> 647Specifies the child program to use for Download Play distribution.<br/><br/>Input Example (From <CODE>SampleDemos/dlp/SimpleServer/OMakefile</CODE>. This example specifies a child program matching the target and the build type.)<br/> 648 <table> 649 <td class="exsample"> 650<pre>CHILD_APPS[] = 651 ../Child_0/images/$(BUILD_TARGET_DIR)/$(BUILD_TYPE_DIR)/Child_0.cia 652 ../Child_1/images/$(BUILD_TARGET_DIR)/$(BUILD_TYPE_DIR)/Child_1.cia</pre></td> 653 </table> 654 </td><br/> 655 <td>None.</td> 656 </tr> 657 <tr> 658 <th align="left"><CODE>MANUAL_DIR</CODE></th> 659 <td align="left"> 660Use this to add an e-manual to the application.<br>Whether it is necessary to add an e-manual to the application depends on the application.<br><br> For <CODE>MANUAL_DIR</CODE>, specify the directory where the e-manual is stored. Place one file in this directory and name the file <CODE>Manual.bcma</CODE>.<br/><br/>Input Example (From <CODE>SampleDemos/demo1/OMakefile</CODE>.)<br/> 661 <table> 662 <td class="exsample"><CODE>MANUAL_DIR = ./manual</CODE></td> 663 </table> 664 </td><br/> 665 <td>None.</td> 666 </tr> 667 </tbody> 668</table> 669 670<hr><p>CONFIDENTIAL</p></body> 671</html>