# Changing compiler options

option(name,value) sets the option name to the specified value. An empty string is the boolean FALSE value. A non empty string, typically "T", represents the boolean TRUE value.

Important: For the specified compiler options to take effect, your `option` lines must preceed any `program` or `library` directives in the `m3makefile`.

The recognized options are:

optimization
  Produce optimized code.
debuginfo
  Produce debugging information (default).
coverage
  Produce code to generate coverage information.
profiling
  Produce code to generate profiling information.
shared_lib
  Create dynamic (shared) libraries (default).
static_lib
  Create static libraries (default).
standalone
  Link with static libraries to produce a standalone executable program.
gui
  Create a gui non console program on Win32.
times
  Produce statistics about compilation time.
msg_level
  Determine the level of verbosity for the compilation from 0 to 4 (Silent, Explain, Commands, Verbose, Debug)
warning_level
  Determine the compiler propension to issue warnings, from 0 to 3
internal_backend
  Use the faster internal backend, if available (default).

Other options are available for compilation debugging and performance analysis, or for internal use. These options are not for the casual user.

keep_files
  Keep temporary files for debugging.
bootstrap
  Create a bootstrap distribution.
dump_config
  Print compiler configuration parameter.
heap_stats
  Print heap usage statistics.
keep_cache
  Persistent cache, (not usable).
no_make
  Do not really build.
compile_once
  Do not recompile for new opaque info.
skip_link
  Do not link.
m3main_in_C
  Generate the main program as a C file.
NoChecks
  Disable runtime checks.
NoAsserts
  Disable assertion checking.
NoNarrowChk
  Disable runtime Narrow checks.
NoRangeChk
  Disable runtime Range checks.
NoReturnChk
  Disable runtime Return checks.
NoCaseChk
  Disable runtime CASE statement checks.
NoTypeCaseChk
  Disable runtime TYPECASE statement checks.
NoNilChk
  Disable runtime NIL checks.
NoRaisesChk
  Disable runtime RAISES checks.
InitFloats
  Initialize floats to 0.0.
vsdebug
  Debug version stamps.
builtins
  Internal.
load_map
  Internal.
unfold_nested_procs
  Internal.