diff --git a/makefile.basic b/makefile.basic index 9caa392..ae37bb5 100644 --- a/makefile.basic +++ b/makefile.basic @@ -23,7 +23,7 @@ SOURCE_DIRS::=src SOURCES::= OBJDIR::=obj DEPDIR::=$(OBJDIR)/dep -LIBDIRS::= +LIBDIRS::=lib INCLUDE_DIRS::=include CFLAGS::=-std=c18 -Wall -pedantic -Wextra CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra @@ -32,6 +32,7 @@ LANG::=$(EXT) MAIN_EXECUTABLE::=tester RELEASE?=0 MEMCHK?=0 +UNDEFCHK?=0 SAVEFLAGS?=1 ifneq ($(WINDOWS),1) @@ -107,16 +108,20 @@ endif ifeq ($(RELEASE),1) -#a lot of false strict aliasing warnings from gcc 9 -COMPILER_FLAGS+=-O2 -Wno-strict-aliasing - -else ifeq ($(MEMCHK),1) - #use asan to check memory leaks/invalid accesses - LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls - COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + #a lot of false strict aliasing warnings from gcc 9 + COMPILER_FLAGS+=-O2 -Wno-strict-aliasing else #default target COMPILER_FLAGS+=-O0 -g3 -ggdb + ifeq ($(MEMCHK),1) + #use asan to check memory leaks/invalid accesses + LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + endif + ifeq ($(UNDEFCHK),1) + LDFLAGS+=-fsanitize=undefined + COMPILER_FLAGS+=-fsanitize=undefined + endif endif ifeq ($(SAVEFLAGS),1) diff --git a/makefile.exe_progress b/makefile.exe_progress index ad695de..7c6e398 100644 --- a/makefile.exe_progress +++ b/makefile.exe_progress @@ -35,6 +35,7 @@ POST_TARGETS::= CLEAN_TARGETS::= RELEASE?=0 MEMCHK?=0 +UNDEFCHK?=0 SAVECFLAGS?=1 VERBOSE=0 @@ -106,13 +107,18 @@ ifeq ($(RELEASE),1) #a lot of false strict aliasing warnings from gcc 9 COMPILER_FLAGS+=-O2 -Wno-strict-aliasing POST_TARGETS+= do_strip -else ifeq ($(MEMCHK),1) - #use asan to check memory leaks/invalid accesses - LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls - COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls else #default target COMPILER_FLAGS+=-O0 -g3 -ggdb + ifeq ($(MEMCHK),1) + #use asan to check memory leaks/invalid accesses + LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + endif + ifeq ($(UNDEFCHK),1) + LDFLAGS+=-fsanitize=undefined + COMPILER_FLAGS+=-fsanitize=undefined + endif endif ifeq ($(SAVECFLAGS),1) diff --git a/makefile.library b/makefile.library index 53a6a3f..17e8743 100644 --- a/makefile.library +++ b/makefile.library @@ -34,6 +34,7 @@ SHARED?=1 STATIC?=0 RELEASE?=0 MEMCHK?=0 +UNDEFCHK?=0 SAVEFLAGS?=1 ifneq ($(WINDOWS),1) @@ -121,13 +122,18 @@ endif ifeq ($(RELEASE),1) #a lot of false strict aliasing warnings from gcc 9 COMPILER_FLAGS+=-O2 -Wno-strict-aliasing -else ifeq ($(MEMCHK),1) - #use asan to check memory leaks/invalid accesses - LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls - COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls else #default target COMPILER_FLAGS+=-O0 -g3 -ggdb + ifeq ($(MEMCHK),1) + #use asan to check memory leaks/invalid accesses + LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + endif + ifeq ($(UNDEFCHK),1) + LDFLAGS+=-fsanitize=undefined + COMPILER_FLAGS+=-fsanitize=undefined + endif endif ifeq ($(SAVEFLAGS),1) diff --git a/makefile.reclib b/makefile.reclib index 76fc10e..576efda 100644 --- a/makefile.reclib +++ b/makefile.reclib @@ -37,6 +37,7 @@ SHARED?=1 STATIC?=0 RELEASE?=0 MEMCHK?=0 +UNDEFCHK?=0 SAVEFLAGS?=1 ifneq ($(WINDOWS),1) @@ -114,13 +115,18 @@ ifeq ($(RELEASE),1) #a lot of false strict aliasing warnings from gcc 9 COMPILER_FLAGS+=-O2 -Wno-strict-aliasing POST_TARGETS+= do_strip -else ifeq ($(MEMCHK),1) - #use asan to check memory leaks/invalid accesses - LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls - COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls else #default target COMPILER_FLAGS+=-O0 -g3 -ggdb + ifeq ($(MEMCHK),1) + #use asan to check memory leaks/invalid accesses + LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + endif + ifeq ($(UNDEFCHK),1) + LDFLAGS+=-fsanitize=undefined + COMPILER_FLAGS+=-fsanitize=undefined + endif endif ifeq ($(SAVEFLAGS),1) diff --git a/makefile.recursive b/makefile.recursive index b0e47b7..ce2363c 100644 --- a/makefile.recursive +++ b/makefile.recursive @@ -35,6 +35,7 @@ POST_TARGETS::= CLEAN_TARGETS::= RELEASE?=0 MEMCHK?=0 +UNDEFCHK?=0 SAVEFLAGS?=1 ifneq ($(WINDOWS),1) @@ -105,13 +106,18 @@ endif ifeq ($(RELEASE),1) #a lot of false strict aliasing warnings from gcc 9 COMPILER_FLAGS+=-O2 -Wno-strict-aliasing -else ifeq ($(MEMCHK),1) - #use asan to check memory leaks/invalid accesses - LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls - COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls else #default target COMPILER_FLAGS+=-O0 -g3 -ggdb + ifeq ($(MEMCHK),1) + #use asan to check memory leaks/invalid accesses + LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls + endif + ifeq ($(UNDEFCHK),1) + LDFLAGS+=-fsanitize=undefined + COMPILER_FLAGS+=-fsanitize=undefined + endif endif ifeq ($(SAVEFLAGS),1)