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 omake 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>Delete</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 omake</h3> 106<ul> 107<li>Ignoring Dependencies 108<p>% omake --depend # Build, ignoring dependencies<br/> % omake -U # Build, ignoring dependencies and cache<br/><br/> 109 110This 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">CTRSDK_ROOT<br/>(HORIZON_ROOT)<br/> <font color="#ff0000">►IMPORTANT</font></th> 128 <td align="left"> 129Directory 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</CODE></th> 135 <td align="left"> 136Directory 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"> 143Sets 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> 147Example (to build with RVCT 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"> 157Sets 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 (supporting only speed-optimized builds on TS boards):<br/> 180 <table> 181<td class="exsample">CTRSDK_TARGETS=CTR-TS.Process.MPCore.fast</td> 182 </table> 183Example (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 193<h2 id="h2_content_1_0">Available Build Options When Building the SDK<a class="anchor_super" id="ufb8427e"></a></h2> 194The 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. 195 196<table border="1" width="100%" cellspacing="0" cellpadding="2"> 197 <COL span="1" width="160"> 198 <tbody> 199 <tr bgcolor="#CCFFCC"> 200<th align="center"><strong>Build Options</strong></th> 201<td align="center"><strong>Description</strong></td> 202<td width="10%" align="center"><strong>Default Value</strong></td> 203 </tr> 204 <tr> 205<th align="left">BUILD</th> 206 <td align="left"> 207Sets 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/> 208 <table cellspacing="1" border="1" bgcolor="#e8f4f4"> 209 <col span="1" width="120"> 210 <tbody> 211 <tr bgcolor="#CCFFCC"> 212<td width="40%" align="center"><strong>Features</strong></td> 213<td width="20%" align="center"><strong><CODE>debug</CODE></strong></td> 214<td width="20%" align="center"><strong><span>development</span></strong></td> 215<td width="20%" align="center"><strong>release</strong></td> 216 </tr> 217 <tr> 218<td><strong>Operations guaranteed</strong></td> 219<td class="disable">No</td> 220<td colspan="2" class="enable">Scope</td> 221 </tr> 222 <tr> 223<td><strong>Debug Output Functions from OS API</strong></td> 224<td colspan="2" class="enable">Enabled</td> 225<td class="disable">Disabled</td> 226 </tr> 227 <tr> 228<td><strong>Application Optimization</strong></td> 229<td colspan="2" class="disable">OFF</td> 230<td class="enable">ON</td> 231 </tr> 232 <tr> 233<td><strong>Library Optimization</strong></td> 234<td class="disable">OFF</td> 235<td colspan="2" class="enable">ON</td> 236 </tr> 237 <tr> 238<td><strong>SDK internal debug codes</strong></td> 239<td colspan="2" class="enable">Enabled</td> 240<td class="disable">Disabled</td> 241 </tr> 242 <tr> 243<td><strong>ASSERT</strong></td> 244<td colspan="2" class="enable">Enabled</td> 245<td class="disable">Disabled</td> 246 </tr> 247 <tr> 248<td><strong>HostIO</strong></td> 249<td colspan="2" class="enable">Enabled</td> 250<td class="disable">Disabled</td> 251 </tr> 252 </tbody> 253</table><br/> Although debug information is included in release build object files, it is removed by makerom.<br/> 254 </td> 255<td><span>development</span></td> 256 </tr> 257 <tr> 258<th align="left">DEBUG_PRINT</th> 259 <td align="left"> 260Enables 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. 261 </td> 262<td>For release builds: <CODE>false</CODE><BR><a>Otherwise: <CODE>true</CODE></td> 263 </tr> 264 <tr> 265<th align="left">ASSERT_WARNING</th> 266 <td align="left"> 267Enables 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. 268 </td> 269<td>For release builds: <CODE>false</CODE><BR>Otherwise: <CODE>true</CODE></td> 270 </tr> 271 <tr> 272<th align="left">FILTER</th> 273 <td align="left"> 274Sets 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/> 275 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 276 <col span="1" width="120"> 277 <tbody> 278 <tr> 279<td><strong><CODE>CTR-TS.*</CODE></strong></td> 280<td>TS board</td> 281 </tr> 282 </tbody> 283 </table><br/> 284 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 285 <col span="1" width="120"> 286 <tbody> 287 <tr> 288<td><strong><CODE>*.fast</CODE></strong></td> 289<td>Optimized for speed</td> 290 </tr> 291 <tr> 292<td><strong><CODE>*.small</CODE></strong></td> 293<td>Optimized for size</td> 294 </tr> 295 </tbody> 296</table><br/> Example (supporting only speed-optimized builds on TS boards):<br/> 297 <table> 298<td class="exsample">FILTER=CTR-TS.Process.MPCore.fast</td> 299 </table> 300Example (to support both <CODE>fast</CODE> and <CODE>small</CODE> builds on TS boards):<br/> 301 <table> 302<td class="exsample"><CODE>FILTER=CTR-TS.Process.MPCore.*</CODE></td> 303 </table> 304 </td><br/> 305<td><CODE>CTR-TS*MPCore*</CODE><br/>(to support both <CODE>fast</CODE> and <CODE>small</CODE> on TS boards)</td> 306 </tr> 307 </tbody> 308</table> 309 310<h2 id="h2_content_1_0">Available Build Options in the SDK <CODE>OMakefile</CODE><a class="anchor_super" id="ufb8427e"></a></h2> 311The 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. 312 313<table border="1" width="100%" cellspacing="0" cellpadding="2"> 314 <COL span="1" width="160"> 315 <tbody> 316 <tr bgcolor="#CCFFCC"> 317<th width="20%" align="center"><strong>Build Variable</strong></th> 318<td width="60%" align="center"><strong>Description</strong></td> 319<td width="10%" align="center"><strong>Default Value</strong></td> 320 </tr> 321 <tr> 322<th align="left">SUPPORTED_TARGETS<br/> <font color="#ff0000">►IMPORTANT</font></th> 323 <td align="left"> 324Sets 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/> 325 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 326 <col span="1" width="120"> 327 <tbody> 328 <tr> 329<td><strong><CODE>CTR-TS.*</CODE></strong></td> 330<td>TS board</td> 331 </tr> 332 </tbody> 333 </table><br/> 334 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 335 <col span="1" width="120"> 336 <tbody> 337 <tr> 338<td><strong><CODE>*.fast</CODE></strong></td> 339<td>Optimized for speed</td> 340 </tr> 341 <tr> 342<td><strong><CODE>*.small</CODE></strong></td> 343<td>Optimized for size</td> 344 </tr> 345 </tbody> 346</table><br/> Example (supporting only speed-optimized builds on TS boards):<br/> 347 <table> 348<td class="exsample"><CODE>SUPPORTED_TARGETS = CTR-TS.Process.MPCore.fast</CODE></td> 349 </table> 350Example (to support both <CODE>fast</CODE> and <CODE>small</CODE> builds on TS boards):<br/> 351 <table> 352<td class="exsample"><CODE>SUPPORTED_TARGETS = CTR-TS.Process.MPCore.*</CODE></td> 353 </table> 354 </td><br/> 355<td>None.</td> 356 </tr> 357 <tr> 358<th align="left"><CODE>CTR_APPTYPE</CODE><a class="anchor_super" name="makeciavariable" id="x542d3cd"></th> 359 <td align="left"> 360Sets 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/> 361 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 362 <col span="1" width="120"> 363 <tbody> 364 <tr> 365<td><strong><CODE>CARD</CODE></strong></td> 366<td>Creates a CTR CCI file (a CXI file packaged to be a CARD application).</td> 367 </tr> 368 <tr> 369<td><strong><CODE>NAND</CODE></strong></td> 370<td>Creates a CTR CIA file (the CXI file packaged to be a NAND application) and a CTR CXI file (the executable image).</td> 371 </tr> 372 <tr> 373<td><strong><CODE>BOTH</CODE></strong></td> 374<td>Creates a CCI file, a CIA file, and the CXI file</td> 375 </tr> 376 </tbody> 377 </table> 378<td><CODE>CARD</CODE></td> 379 </tr> 380 <tr> 381<th align="left">SOURCES</th> 382 <td align="left"> 383Enumerates 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">INCLUDES</th> 389 <td align="left"> 390Specifies 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"> 397Specifies 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">LIBFILES</th> 406 <td align="left"> 407Specifies 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">TARGET_PROGRAM</th> 416 <td align="left"> 417Specifies 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">TARGET_LIBRARY</th> 423 <td align="left"> 424Specifies 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">CCFLAGS</th> 430 <td align="left"> 431Set 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">CCFLAGS_WARNING<br/><font color="#ff0000">►CAUTION</font></th> 437 <td align="left"> 438Set 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"> 445Use 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 optimization level specification 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">CFLAGS</th> 451 <td align="left"> 452Set 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">CXXFLAGS</th> 458 <td align="left"> 459Set 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">ASFLAGS</th> 465 <td align="left"> 466Set 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">LDFLAGS</th> 472 <td align="left"> 473Set 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">LDFLAGS_WARNING</th> 479 <td align="left"> 480Set 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> 485<th align="left">LDSCRIPT_TEMPLATE</th> 486 <td align="left"> 487Specifies the linker script file template to be passed to the linker when creating linker script files.<br/> 488 </td> 489<td><CODE>$CTR-SDK/build/linker/*.ldscript.template</CODE></td> 490 </tr> 491 <tr bgcolor="#FFFFCC"> 492<th align="left"><CODE>ROM_SPEC_FILE</CODE><a class="anchor_super" name="makeromvariable" id="x542d3cc"></th> 493 <td align="left"> 494Specifies 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/> 495 </td> 496<td><CODE>$CTR-SDK/resource/specfiles/Application.rsf</CODE></td> 497 </tr> 498 <tr bgcolor="#FFFFCC"> 499<th align="left">DESCRIPTOR<a class="anchor_super" name="makeromvariable" id="x542d3cc"></th> 500 <td align="left"> 501Specifies the DESC file.<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/> 502 </td> 503<td>$CTR-SDK/resource/specfiles/Application.desc</td> 504 </tr> 505 <tr bgcolor="#FFFFCC"> 506<th align="left">MAKEROMFLAGS</th> 507 <td align="left"> 508Set 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/> 509 </td> 510<td>See <CODE>commondefs.om</CODE> for more information.</td> 511 </tr> 512 <tr bgcolor="#FFFFCC"> 513<th align="left">ROMFS_ROOT</th> 514 <td align="left"> 515Specifies 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/> 516 </td> 517<td>None.</td> 518 </tr> 519 <tr bgcolor="#FFFFCC"> 520<th align="left">TITLE</th> 521 <td align="left"> 522Specifies 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/> 523 </td> 524<td>CtrApp</td> 525 </tr> 526 <tr bgcolor="#FFFFCC"> 527<th align="left">CTR_BANNER</th> 528 <td align="left"> 529 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. This specification cannot be made at the same time as <CODE>CTR_BANNER_SPEC</CODE>.<BR> 530 </td> 531<td>$CTR-SDK/resources/banner/Default.bnr</td> 532 </tr> 533 <tr bgcolor="#FFFFCC"> 534<th align="left">CTR_ICON</th> 535 <td align="left"> 536 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. This specification cannot be made at the same time as <CODE>CTR_BANNER_SPEC</CODE>.<BR> 537 </td> 538<td>$CTR-SDK/resources/banner/Default.icn</td> 539 </tr> 540 <tr bgcolor="#FFFFCC"> 541<th align="left">CTR_NO_BANNER</th> 542 <td align="left"> 543This variable must be set to <CODE>true</CODE> if not using banners.<br/> 544 </td> 545<td>None.</td> 546 </tr> 547 <tr bgcolor="#FFFFCC"> 548<th align="left">CTR_NO_BANNER_ICON</th> 549 <td align="left"> 550This variable must be set to <CODE>true</CODE> if not using banners or icons.<BR> 551 </td> 552<td>None.</td> 553 </tr> 554 <tr bgcolor="#FFCCCC"> 555<th align="left">CTR_BANNER_SPEC<a class="anchor_super" name="makebannervariable" id="x542d3cc"></th> 556 <td align="left"> 557Specifies 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> 558 </td> 559<td>None.</td> 560 </tr> 561 <tr bgcolor="#CCCCFF"> 562<th align="left">SHADER_SOURCES</th> 563 <td align="left"> 564Enumerates the vertex shader assembler files (<CODE>.vsh</CODE>) to be compiled/assembled.<br/> 565 </td> 566<td>None.</td> 567 </tr> 568 <tr bgcolor="#CCCCFF"> 569<th align="left">SHADER_INCLUDES</th> 570 <td align="left"> 571Specifies 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/> 572 </td> 573<td><CODE>$CTR-SDK/resources</CODE></td> 574 </tr> 575 <tr bgcolor="#CCCCFF"> 576<th align="left">SHADER_OBJECTS</th> 577 <td align="left"> 578Enumerates the object files to be added during the shader binary build.<br/> 579 </td> 580<td>None.</td> 581 </tr> 582 <tr bgcolor="#CCCCFF"> 583<th align="left">SHADER_OBJECTS_PREBUILT</th> 584 <td align="left"> 585Enumerates 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/> 586 </td> 587<td>None.</td> 588 </tr> 589 <tr bgcolor="#CCCCFF"> 590<th align="left">TARGET_SHADER</th> 591 <td align="left"> 592Specifies 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. 593 </td> 594<td>shader</td> 595 </tr> 596 <tr bgcolor="#CCCCFF"> 597<th align="left">SHBIN_INSTALL_ROOT</th> 598 <td align="left"> 599Specifies the installation root for the shader binary file.<br/> 600 </td> 601<td>Value of <CODE>ROMFS_ROOT</CODE></td> 602 </tr> 603 <tr bgcolor="#CCCCFF"> 604<th align="left">SHADER_BINARY</th> 605 <td align="left"> 606Sets the full path of the shader binary file.<br/>To use, reference <font color="#ff0000">after referencing <CODE>modulerules</CODE></font>.<br/> 607 </td> 608<td>Full path to <CODE>.shbin</CODE> file</td> 609 </tr> 610 <tr> 611<th align="left">INSTALL_ROOT<br/><font color="#ff0000">►CAUTION</font></th> 612 <td align="left"> 613Specifies 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/> 614 <table> 615<td class="exsample"><CODE>INSTALL_ROOT = ./tmp</CODE></td> 616 </table> 617 </td> 618<td>None.</td> 619 </tr> 620 <tr> 621<th align="left">CTR_NANDAPP</th> 622 <td align="left"> 623Specify <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/> 624 <table cellspacing="1" border="1" bgcolor="#CCFFCC"> 625 <col span="1" width="120"> 626 <tbody> 627 <tr> 628<td><strong>true</strong></td> 629<td>Creates a CTR CIA file (the CXI file packaged to be a NAND application) and a CTR CXI file (the executable image).</td> 630 </tr> 631 <tr> 632<td><strong><CODE>false</CODE></strong></td> 633<td>Creates a CTR CCI file (a CXI file packaged to be a CARD application).</td> 634 </tr> 635 </tbody> 636 </table> 637<td><CODE>false</CODE></td> 638 </tr> 639 <tr> 640<th align="left">HOST_IO</th> 641 <td align="left"> 642If set to <CODE>true</CODE>, <CODE>HostIO</CODE> is enabled regardless of build type.<br/> 643 </td> 644<td>For release builds: <CODE>false</CODE><BR>Otherwise: <CODE>true</CODE></td> 645 </tr> 646 <tr> 647<th align="left">TARGET_BUILDTYPES</th> 648 <td align="left"> 649Specifies 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/> 650 <table> 651<td class="exsample"><CODE>TARGET_BUILDTYPES = $(filter Release Development, $(TARGET_BUILDTYPES))</CODE></td> 652 </table> 653 </td><br/> 654<td>None.</td> 655 </tr> 656 <tr> 657<th align="left">CHILD_APPS</th> 658 <td align="left"> 659Specifies the child program to use for download play distribution. <br/> Input example: SampleDemos/dlp/SimpleServer/OMakefile. This specifies the target and the build type together for the child device.<br/> 660 <table> 661 <td class="exsample"> 662<pre>CHILD_APPS[] = 663../Child_0/images/$(BUILD_TARGET_DIR)/$(BUILD_TYPE_DIR)/Child_0.cia 664../Child_1/images/$(BUILD_TARGET_DIR)/$(BUILD_TYPE_DIR)/Child_1.cia</pre></td> 665 </table> 666 </td><br/> 667<td>None.</td> 668 </tr> 669 <tr> 670<th align="left">MANUAL_DIR</th> 671 <td align="left"> 672Specifies the directory where an electronic user's manual is. Within the directory will be one file named Manual.bcma. <br/><br/> Input example: SampleDemos/demo1/OMakefile.)<br/> 673 <table> 674<td class="exsample">MANUAL_DIR = ./manual</td> 675 </table> 676 </td><br/> 677<td>None.</td> 678 </tr> 679 </tbody> 680</table> 681 682</bosy> 683</html>