mirror of
https://github.com/matrix-construct/construct
synced 2024-10-31 19:08:59 +01:00
74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
|
## Installation Addendum
|
||
|
|
||
|
#### Additional build options
|
||
|
|
||
|
Development builds should follow the same instructions as the standalone
|
||
|
section above while taking note of the following `./configure` options:
|
||
|
|
||
|
##### Debug mode
|
||
|
|
||
|
```
|
||
|
--enable-debug
|
||
|
```
|
||
|
Full debug mode. Includes additional code within `#ifdef RB_DEBUG` sections.
|
||
|
Optimization level is `-Og`, which is still valgrind-worthy. Debugger support
|
||
|
is `-ggdb`. Log level is `DEBUG` (maximum). Assertions are enabled.
|
||
|
|
||
|
|
||
|
##### Release modes (for distribution packages)
|
||
|
|
||
|
Options in this section may help distribution maintainers create packages.
|
||
|
Users building for themselves (whether standalone or fully installed) probably
|
||
|
don't need anything here.
|
||
|
|
||
|
```
|
||
|
--enable-generic
|
||
|
```
|
||
|
Sets `-mtune=generic` as `native` is otherwise the default.
|
||
|
|
||
|
|
||
|
##### Manually enable assertions
|
||
|
|
||
|
```
|
||
|
--enable-assert
|
||
|
```
|
||
|
Implied by `--enable-debug`. This is useful to specifically enable `assert()`
|
||
|
statements when `--enable-debug` is not used.
|
||
|
|
||
|
|
||
|
##### Manually enable optimization
|
||
|
|
||
|
```
|
||
|
--enable-optimize
|
||
|
```
|
||
|
This manually applies full release-mode optimizations even when using
|
||
|
`--enable-debug`. Implied when not in debug mode.
|
||
|
|
||
|
|
||
|
##### Logging level
|
||
|
|
||
|
```
|
||
|
--with-log-level=
|
||
|
```
|
||
|
This manually sets the level of logging. All log levels at or below this level
|
||
|
will be available. When a log level is not available, all code used to generate
|
||
|
its messages will be entirely eliminated via *dead-code-elimination* at compile
|
||
|
time.
|
||
|
|
||
|
The log levels are (from logger.h):
|
||
|
```
|
||
|
7 DEBUG Maximum verbosity for developers.
|
||
|
6 DWARNING A warning but only for developers (more frequent than WARNING).
|
||
|
5 DERROR An error but only worthy of developers (more frequent than ERROR).
|
||
|
4 INFO A more frequent message with good news.
|
||
|
3 NOTICE An infrequent important message with neutral or positive news.
|
||
|
2 WARNING Non-impacting undesirable behavior user should know about.
|
||
|
1 ERROR Things that shouldn't happen; user impacted and should know.
|
||
|
0 CRITICAL Catastrophic/unrecoverable; program is in a compromised state.
|
||
|
```
|
||
|
|
||
|
When `--enable-debug` is used `--with-log-level=DEBUG` is implied. Otherwise
|
||
|
for release mode `--with-log-level=INFO` is implied. Large deployments with
|
||
|
many users may consider lower than `INFO` to maximize optimization and reduce
|
||
|
noise.
|