config.mk: default to -O2 and -DNDEBUG (#435)

assertions are for debugging purposes, and so shouldn't be enabled for
"release" builds. disable it by default by using `-DNDEBUG`.

`-O2` on gcc/clang will result it slightly better binary. on tcc it'll
be ignored. and since -O is specified by POSIX there shouldn't be any
portability concern.

additionally add a (commented out) recommended debug build for gcc/clang
with address and undefined sanitizers turned on.

Closes: https://codeberg.org/nsxiv/nsxiv/issues/424
Reviewed-on: https://codeberg.org/nsxiv/nsxiv/pulls/435
Reviewed-by: explosion-mental <explosion-mental@noreply.codeberg.org>
Reviewed-by: eylles <eylles@noreply.codeberg.org>
This commit is contained in:
NRK 2023-05-09 00:34:28 +00:00
parent 733916ad70
commit 657080a7e5

View file

@ -23,8 +23,11 @@ HAVE_LIBWEBP = $(OPT_DEP_DEFAULT)
# Compiler and linker
CC = c99
# CFLAGS, any optimization flags goes here
CFLAGS = -Wall -pedantic
# CFLAGS, any additional compiler flags goes here
CFLAGS = -Wall -pedantic -O2 -DNDEBUG
# Uncomment for a debug build using gcc/clang
# CFLAGS = -Wall -pedantic -g3 -fsanitize=address,undefined
# LDFLAGS = $(CFLAGS)
# icons that will be installed via `make icon`
ICONS = 16x16.png 32x32.png 48x48.png 64x64.png 128x128.png