diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e239bc4 --- /dev/null +++ b/Makefile @@ -0,0 +1,39 @@ + +.PHONY: clean + +MAKEFLAGS := -j$(shell nproc) + +INCLUDE_DIR := "./include" +SOURCE_DIR := "./source" +TEST_DIR := "./test" + +CC := gcc +OO := -g -Og +FFLAGS := -fno-omit-frame-pointer -fhardened +WFLAGS := -Wall -Wextra -Wstack-protector +CFLAGS = -std=gnu99 $(FLAGS) -I$(INCLUDE_DIR) $(OO) $(FFLAGS) $(WFLAGS) +CCOBJ = $(CC) -o $@ $^ $(CFLAGS) + +OBJECTS := $(patsubst %.c, %.o, $(wildcard ./source/*.c)) + +kpl: OO := -O2 +kpl: WFLAGS += -Werror +kpl: FLAGS += -DKPL_MAIN +kpl: $(OBJECTS) + $(CCOBJ) + +TEST_OBJECTS := $(patsubst %.c, %.o, $(wildcard ./test/*.c)) + +kpl_test: $(OBJECTS) $(TEST_OBJECTS) + $(CCOBJ) + +kpl_test_error: FFLAGS += -fsanitize=address,leak,undefined +kpl_test_error: 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 {} \; |
