Update makefile
This commit is contained in:
16
makefile
16
makefile
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user