| libsir 2.2.6
    Standard Incident Reporter | 
Compile-time configuration of libsir.
The variables in the following table are applied at compile-time when executing make.
Example:
The Makefile takes care of the rest; for each environment variable that is known to the Makefile, it adds or removes compiler options based on the values provided. This may be a simple mapping of VAR=1 to -DVAR, or a more nuanced configuration:
| Variable (default) | State | Compiler settings | Description | 
|---|---|---|---|
| SIR_DEBUG (0) | 0 | -O3 -DNDEBUG -D_FORTIFY_SOURCE=2 | Full optimization is applied, source fortification is set to level 2, and no debugging symbols are included. | 
| 1 | -g3 -00 -DDEBUG -U_FORTIFY_SOURCE | No optimizations are applied, source fortification is disabled, and full debugging symbols are included. | |
| SIR_SELFLOG (0) | 0 | N/A | NOOP | 
| 1 | -DSIR_SELFLOG | Diagnostic information is sent to stderrto report certain events that may aid in debugging. Includes the function name, source file, and line where the event took place. IfSIR_DEBUGandSIR_SELFLOGare enabled, each error handled internally will be logged in real time as it is captured. | |
| SIR_ASSERT_ENABLED (0) | 0 | N/A | assertwill never be called. IfSIR_SELFLOGis enabled, where asserts normally would take place, a_sir_selflogcall is made, producing output to stderr such as 'somefunc (file.c:123): !!! would be asserting (NULL != ptr)'. | 
| 1 | -DSIR_ASSERT_ENABLED | assertwill be used. Note that assert has no effect ifNDEBUGis defined, so in order for this to be useful, you will also needSIR_DEBUG=1(or manually change-DNDEBUGto-DDEBUGin the Makefile). | |
| SIR_NO_SYSTEM_LOGGERS (0) | 0 | N/A | If the current platform has a system logger facility (currently all platforms do by default except Windows), you can utilize it as a destination in libsir. | 
| 1 | -DSIR_NO_SYSTEM_LOGGERS | Even if the current platform has a system logger facility, the functionality will be disabled (and most of it compiled out). | |
| SIR_NO_PLUGINS (0) | 0 | N/A | The plugin system is available for use. Call sir_loadplugin to load a plugin, and sir_unloadplugin to unload one. | 
| 1 | -DSIR_NO_PLUGINS | The plugin system's functionality will be disabled (and most of it compiled out). | |
| SIR_NO_SHARED (0) | 0 | N/A | Shared libraries are created when building the alltarget, and installed withmake install. | 
| 1 | -DSIR_NO_PLUGINS | The SIR_NO_PLUGINSvariable is set (to1), shared libraries are not created when building thealltarget, and are not installed withmake install. | |
| SIR_USE_EOL_CRLF (0) | 0 | N/A | The end of line sequence will be SIR_EOL_LF. | 
| 1 | -DSIR_USE_EOL_CRLF | The end of line sequence will be SIR_EOL_CR + SIR_EOL_LF. | 
README.md under Help once the solution is loaded.All of the fine-grained compile-time constants, such as (but not limited to):
can be found in config.h, and may be modified to fit your specific needs.
%d are printf-style. The man page or documentation for printf can be used as a guide.