31 lines
843 B
Makefile
31 lines
843 B
Makefile
CC ?= cc
|
|
AR ?= ar
|
|
RANLIB ?= ranlib
|
|
|
|
CSTD := -std=c11
|
|
WARN := -Wall -Wextra -Wpedantic -Wshadow -Wconversion -Wstrict-prototypes -Wmissing-prototypes
|
|
DEFS := -D_POSIX_C_SOURCE=200809L
|
|
|
|
INCS := $(addprefix -I,$(INC_DIRS))
|
|
|
|
CFLAGS_COMMON := $(CSTD) $(WARN) $(DEFS) $(INCS)
|
|
LDFLAGS_COMMON :=
|
|
LDLIBS_COMMON :=
|
|
|
|
ifeq ($(MODE),release)
|
|
CFLAGS_MODE := -O2 -DNDEBUG
|
|
else ifeq ($(MODE),debug)
|
|
CFLAGS_MODE := -O0 -g3
|
|
else ifeq ($(MODE),asan)
|
|
CFLAGS_MODE := -O1 -g3 -fsanitize=address -fno-omit-frame-pointer
|
|
LDFLAGS_MODE := -fsanitize=address
|
|
else ifeq ($(MODE),ubsan)
|
|
CFLAGS_MODE := -O1 -g3 -fsanitize=undefined -fno-omit-frame-pointer
|
|
LDFLAGS_MODE := -fsanitize=undefined
|
|
else
|
|
$(error Unknown MODE=$(MODE))
|
|
endif
|
|
|
|
CFLAGS := $(CFLAGS_COMMON) $(CFLAGS_MODE)
|
|
LDFLAGS := $(LDFLAGS_COMMON) $(LDFLAGS_MODE)
|
|
LDLIBS := $(LDLIBS_COMMON)
|