mirror of
https://github.com/matrix-construct/construct
synced 2024-11-21 17:31:21 +01:00
Updated BUILD (markdown)
parent
3b61ed13ce
commit
e91416ad6f
1 changed files with 22 additions and 5 deletions
27
BUILD.md
27
BUILD.md
|
@ -1,4 +1,4 @@
|
||||||
## BUILD (standalone)
|
# BUILD
|
||||||
|
|
||||||
##### Compatibility Primer
|
##### Compatibility Primer
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ especially for development. Example `--prefix=~/.local/`.
|
||||||
|
|
||||||
> ❗ Do not set your `--prefix` path to a directory inside your git repository or an invocation of `git clean` will erase your database in $prefix/var/db/.
|
> ❗ Do not set your `--prefix` path to a directory inside your git repository or an invocation of `git clean` will erase your database in $prefix/var/db/.
|
||||||
|
|
||||||
#### STANDALONE BUILD PROCEDURE
|
### 🟢 STANDALONE BUILD PROCEDURE
|
||||||
|
|
||||||
```
|
```
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
|
@ -57,8 +57,9 @@ as submodules. The result will not be installable on the system without this rep
|
||||||
remaining intact. Please read the compatibility primer first to understand which options
|
remaining intact. Please read the compatibility primer first to understand which options
|
||||||
you need or don't need on your system.
|
you need or don't need on your system.
|
||||||
|
|
||||||
##### Re-building
|
##### REBUILDING FOR UPDATES
|
||||||
When you want to recompile and your system had changes (upgraded libs, compiler, switching between clang and gcc, etc.) you are advised to start from a clean state:
|
|
||||||
|
Until [#84](https://github.com/matrix-construct/construct/issues/84) is resolved, updates to the repository (from e.g. `git pull`) or the system may cause complications with incremental builds using `make(1)`. For this reason we advise a "from scratch" build preceded by an invocation of `git clean`; example:
|
||||||
|
|
||||||
```
|
```
|
||||||
git reset --hard && git clean -f -x -d
|
git reset --hard && git clean -f -x -d
|
||||||
|
@ -66,7 +67,23 @@ git reset --hard && git clean -f -x -d
|
||||||
./configure --prefix=...
|
./configure --prefix=...
|
||||||
```
|
```
|
||||||
|
|
||||||
### Additional build options
|
#### DEVELOPMENT BUILDS
|
||||||
|
|
||||||
|
Those wishing to contribute new functionality or diagnose difficult bugs will benefit from several configuration options. This configuration generates a significant amount of additional code and instrumentation, in addition to full debug logging. The server may consume additional CPU and memory resources.
|
||||||
|
|
||||||
|
> Until the resolution of [#84](https://github.com/matrix-construct/construct/issues/84) it is advised to sterilize the build environment before any re-`./configure`.
|
||||||
|
|
||||||
|
> All `--with-included-` and other platform-specific build options remain the same and must be applied to these recipes.
|
||||||
|
|
||||||
|
```
|
||||||
|
./configure --prefix=... --enable-debug --enable-optimize --with-assert=trap --disable-lto
|
||||||
|
```
|
||||||
|
- Release optimization is always enabled; we only advise the removal of `--enable-optimize` when it is necessary to diagnose specific difficult issues.
|
||||||
|
- It is much easier to debug, step, and fiddle with a live program rather than a dead one. `--with-assert=trap` gives the developer a choice to note the issue and continue the program at their discretion (If you aren't sure about an assert: terminate immediately!).
|
||||||
|
- Disabling LTO is advised to reduce significant delays during the linking phase of every `make` during development.
|
||||||
|
|
||||||
|
|
||||||
|
## Additional Build Options
|
||||||
|
|
||||||
#### Debug mode
|
#### Debug mode
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue