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