.PHONY: kpl_test_memory kpl_test_thread clean rsync_list 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) $(CFLAGS) -o $@ $^ 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 {} \; rsync_list: @echo "include/" @echo "include/*/" @echo "source/" @echo "test/" @echo "*.c" @echo "*.h" @echo "Makefile"