Default to the optimized -O3 build; DEBUG=1 for a debug build
Bare 'make -C com' now builds -O3 (optimize.env default flip); the install guides drop OPTIMIZE=1 and document DEBUG=1 for an AddressSanitizer build. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -88,14 +88,16 @@ If `python3-config` is missing, install your distribution's `python3-dev`
|
|||||||
|
|
||||||
Build the shared library, the SKS components, and the three commands with a
|
Build the shared library, the SKS components, and the three commands with a
|
||||||
single command: `make -C com` builds its prerequisites in `mac/` and `sks/`
|
single command: `make -C com` builds its prerequisites in `mac/` and `sks/`
|
||||||
first, then the commands. `OPTIMIZE=1` selects an optimized `-O3` build (what
|
first, then the commands. The build is optimized (`-O3`) by default — the build
|
||||||
you want to install and run); without it you get a slower `-O0` debug build
|
you want to install and run:
|
||||||
with AddressSanitizer, intended for development:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make -C com -j OPTIMIZE=1 # lib/libklammertext.so + sks/*.so + bin/{ktext,kdesc,kdiag}
|
make -C com -j # lib/libklammertext.so + sks/*.so + bin/{ktext,kdesc,kdiag}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
(For a slower `-O0` debug build with AddressSanitizer, intended for development,
|
||||||
|
prefix `DEBUG=1`: `DEBUG=1 make -C com -j`.)
|
||||||
|
|
||||||
Verify the build:
|
Verify the build:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -243,7 +245,7 @@ To update an existing source installation to the latest version:
|
|||||||
```bash
|
```bash
|
||||||
cd $KLAMMERTEXT_HOME
|
cd $KLAMMERTEXT_HOME
|
||||||
git pull
|
git pull
|
||||||
make -C com -j OPTIMIZE=1 # rebuild library, SKS components, and commands
|
make -C com -j # rebuild library, SKS components, and commands (optimized)
|
||||||
```
|
```
|
||||||
|
|
||||||
The TeX Live tree only needs rebuilding if the SKS's package requirements
|
The TeX Live tree only needs rebuilding if the SKS's package requirements
|
||||||
|
|||||||
@@ -81,10 +81,13 @@ then the commands:
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd "$KLAMMERTEXT_HOME"
|
cd "$KLAMMERTEXT_HOME"
|
||||||
make -C com -j OPTIMIZE=1 # libklammertext.so + sks/*.so + bin/{ktext,kdesc,kdiag}
|
make -C com -j # optimized (-O3) by default; libklammertext.so + sks/*.so + bin/{ktext,kdesc,kdiag}
|
||||||
ktext -s '@eval 1 + 1 @' -d # smoke test — prints 2
|
ktext -s '@eval 1 + 1 @' -d # smoke test — prints 2
|
||||||
```
|
```
|
||||||
|
|
||||||
|
(For a debug build with AddressSanitizer, intended for development, prefix
|
||||||
|
`DEBUG=1`: `DEBUG=1 make -C com -j`.)
|
||||||
|
|
||||||
For a document smoke test, create a small file and render it to HTML:
|
For a document smoke test, create a small file and render it to HTML:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -149,7 +152,7 @@ To update an existing source installation to the latest version:
|
|||||||
```sh
|
```sh
|
||||||
cd "$KLAMMERTEXT_HOME"
|
cd "$KLAMMERTEXT_HOME"
|
||||||
git pull
|
git pull
|
||||||
make -C com -j OPTIMIZE=1 # rebuild library, SKS components, and commands
|
make -C com -j # rebuild library, SKS components, and commands (optimized)
|
||||||
```
|
```
|
||||||
|
|
||||||
Rebuild the TeX Live tree only if the SKS's package requirements changed (rare);
|
Rebuild the TeX Live tree only if the SKS's package requirements changed (rare);
|
||||||
|
|||||||
26
mac/env/optimize.env
vendored
26
mac/env/optimize.env
vendored
@@ -1,16 +1,20 @@
|
|||||||
|
|
||||||
ifdef OPTIMIZE
|
# Build mode. The DEFAULT is an optimized -O3 build (what installs and releases
|
||||||
# Performance build: make OPTIMIZE=1
|
# use). Opt into other modes explicitly:
|
||||||
# `override` so a command-line `make OPTIMIZE=1` is remapped to -O3 too;
|
# DEBUG=1 -> debug build: -O0 -g + AddressSanitizer (development)
|
||||||
# without it, a command-line assignment wins over this `:=` and the literal
|
# NOPYTHON=1 -> -O0 -g -DNOPYTHON, no ASan (build without the interpreter)
|
||||||
# `1` leaks into CXXFLAGS (g++ then treats `1` as an input file).
|
# `override` is used throughout so that a stray command-line or environment
|
||||||
override OPTIMIZE := -O3
|
# `OPTIMIZE=...` cannot leak into CXXFLAGS: OPTIMIZE is an internal flag string
|
||||||
SANITIZE :=
|
# here, no longer a trigger. (A legacy `make OPTIMIZE=1` still yields -O3, since
|
||||||
|
# it falls through to the optimized default below.)
|
||||||
|
ifdef DEBUG
|
||||||
|
override OPTIMIZE := -O0 -g
|
||||||
|
SANITIZE := -fsanitize=address -fno-omit-frame-pointer
|
||||||
else ifdef NOPYTHON
|
else ifdef NOPYTHON
|
||||||
OPTIMIZE := -O0 -g -DNOPYTHON
|
override OPTIMIZE := -O0 -g -DNOPYTHON
|
||||||
SANITIZE :=
|
SANITIZE :=
|
||||||
else
|
else
|
||||||
# Debug build (default): includes AddressSanitizer
|
# Performance build (default).
|
||||||
OPTIMIZE := -O0 -g
|
override OPTIMIZE := -O3
|
||||||
SANITIZE := -fsanitize=address -fno-omit-frame-pointer
|
SANITIZE :=
|
||||||
endif
|
endif
|
||||||
|
|||||||
Reference in New Issue
Block a user