# Description of Compile Targets

### [NITRO_FINALROM]

This is the option used to create the release version for the master submission.

When the ROM is submitted, it is necessary to use this option for the build.

- SDK_ASSERT(), SDK_WARNING() are invalid
- OS_Panic() and OS_TPanic() do not display a message with the FINALROM library. (They do nothing and act the same as the OS_Terminate function.)
- Optimization ON
- Many debug functions return set values or don't do anything, regardless of the operating environment.

### [NITRO_DEBUG]

This option is used for more careful debugging than NITRO_FINALROM or NITRO_RELEASE.

- OS debug string display functions such as OS_PutString() are valid.
- OS_GetArgc(), OS_GetArgv(), etc. are valid.
- OS_Panic() and OS_TPanic() are valid.
- The debug stack check functions OS_CheckStack() and OS_CheckIrqStack() are valid.

For details about which functions are valid or invalid, see the debug functions in the OS Debug Function Reference.

### [NITRO_RELEASE]

This option is used to debug under conditions more similar to those in the final product than when NITRO_DEBUG is used.

It's basically a combination of the features in NITRO_DEBUG and NITRO_ROM. The details of what was combined are outlined below.

Features | NITRO_DEBUG | NITRO_RELEASE | NITRO_FINALROM
--- | --- | --- | ---
OS debug output functions such as `OS_PutString()` | valid | invalid
Compiler Optimization | OFF | ON
SDK internal debug codes | valid | invalid
Assert functions such as SDK_ASSERT() | valid | invalid
Functions such as OS_Panic() | valid | Equivalent to OS_Terminate()