first commit, initial layout and some ideas I want to implement, included my linked list impl

This commit is contained in:
2026-01-13 21:46:05 -05:00
commit 583975459f
30 changed files with 487 additions and 0 deletions

31
make/toolchain.mk Normal file
View File

@@ -0,0 +1,31 @@
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)