Update makefile

This commit is contained in:
2026-08-29 09:02:47 +02:00
parent 9eb32d1f23
commit 4d524a1c53

View File

@@ -13,6 +13,7 @@ CFLAGS = -std=c17 \
-Wvla -Wduplicated-cond -Wduplicated-branches -fno-common -ftrapv \
-fstack-protector-strong
LIBS =
DEBUG_FLAGS = -g3 -O0 -fsanitize=undefined
RELEASE_FLAGS = -O2 -s -D NDEBUG
@@ -20,7 +21,7 @@ all: help
help:
@echo "Please use: 'make init', 'make debug', 'make fast', 'make release', or 'make clean'"
@echo "Supports parallel builds (e.g., 'make -j8 debug')"
@echo "Supports parallel builds (via 'make -j8 debug')"
init:
@mkdir -p output source_code includes config
@@ -33,7 +34,6 @@ clean:
@rm -f output/*
@echo "Project Cleaned"
# ------------------------------
# Dynamic Build Graph Generators
debug:
@mkdir -p config output/obj_debug
@@ -49,10 +49,10 @@ debug:
OBJS="$$OBJS $$OBJ"; \
echo "$$OBJ: $$SRC $$HEADERS" >> $$MK; \
echo " @mkdir -p $$(dirname $$OBJ)" >> $$MK; \
echo " $(CC) $(CFLAGS) $(DEBUG_FLAGS) -I includes -c $$SRC -o $$OBJ" >> $$MK; \
echo " $(CC) $(CFLAGS) $(DEBUG_FLAGS) -I includes -c $$SRC -o $$OBJ $(LIBS)" >> $$MK; \
done; \
echo "$$OUT: $$OBJS" >> $$MK; \
echo " $(CC) $(CFLAGS) $(DEBUG_FLAGS) -o $$OUT $$OBJS" >> $$MK; \
echo " $(CC) $(CFLAGS) $(DEBUG_FLAGS) -o $$OUT $$OBJS $(LIBS)" >> $$MK; \
$(MAKE) -f $$MK "$$OUT"
fast:
@@ -69,10 +69,10 @@ fast:
OBJS="$$OBJS $$OBJ"; \
echo "$$OBJ: $$SRC $$HEADERS" >> $$MK; \
echo " @mkdir -p $$(dirname $$OBJ)" >> $$MK; \
echo " $(CC) $(CFLAGS) $(RELEASE_FLAGS) -I includes -c $$SRC -o $$OBJ" >> $$MK; \
echo " $(CC) $(CFLAGS) $(RELEASE_FLAGS) -I includes -c $$SRC -o $$OBJ $(LIBS)" >> $$MK; \
done; \
echo "$$OUT: $$OBJS" >> $$MK; \
echo " $(CC) $(CFLAGS) $(RELEASE_FLAGS) -o $$OUT $$OBJS" >> $$MK; \
echo " $(CC) $(CFLAGS) $(RELEASE_FLAGS) -o $$OUT $$OBJS $(LIBS)" >> $$MK; \
$(MAKE) -f $$MK "$$OUT"
release:
@@ -92,8 +92,8 @@ release:
OBJS="$$OBJS $$OBJ"; \
echo "$$OBJ: $$SRC $$HEADERS" >> $$MK; \
echo " @mkdir -p $$(dirname $$OBJ)" >> $$MK; \
echo " $(CC) $(CFLAGS) $(RELEASE_FLAGS) -I includes -c $$SRC -o $$OBJ" >> $$MK; \
echo " $(CC) $(CFLAGS) $(RELEASE_FLAGS) -I includes -c $$SRC -o $$OBJ $(LIBS)" >> $$MK; \
done; \
echo "$$OUT: $$OBJS" >> $$MK; \
echo " $(CC) $(CFLAGS) $(RELEASE_FLAGS) -o $$OUT $$OBJS" >> $$MK; \
echo " $(CC) $(CFLAGS) $(RELEASE_FLAGS) -o $$OUT $$OBJS $(LIBS)" >> $$MK; \
$(MAKE) -f $$MK "$$OUT"