.PHONY: kpl_test_memory kpl_test_thread clean MAKEFLAGS := -j$(shell nproc) CC := gcc OO := -g -Og FFLAGS := -fno-omit-frame-pointer -fhardened WFLAGS := -Wall -Wextra -Wstack-protector CFLAGS = -std=gnu99 $(FLAGS) -I./include $(OO) $(FFLAGS) $(WFLAGS) CCOBJ = $(CC) -o $@ $^ $(CFLAGS) SOURCE_OBJECTS := $(patsubst %.c, %.o, $(wildcard ./source/*.c)) TEST_OBJECTS := $(patsubst %.c, %.o, $(wildcard ./test/*.c)) kpl: OO := -O2 kpl: WFLAGS += -Werror kpl: FLAGS += -DKPL_MAIN kpl: $(SOURCE_OBJECTS) $(CCOBJ) kpl_test: $(SOURCE_OBJECTS) $(TEST_OBJECTS) $(CCOBJ) kpl_test_memory: FFLAGS += -fsanitize=address,leak,undefined kpl_test_memory: kpl_test kpl_test_thread: FFLAGS += -fsanitize=thread kpl_test_thread: kpl_test clean: @rm -fv kpl @rm -fv kpl_test @find -type f -name "*.o" -exec rm -v {} \;