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 \
|
-Wvla -Wduplicated-cond -Wduplicated-branches -fno-common -ftrapv \
|
||||||
-fstack-protector-strong
|
-fstack-protector-strong
|
||||||
|
|
||||||
|
LIBS =
|
||||||
DEBUG_FLAGS = -g3 -O0 -fsanitize=undefined
|
DEBUG_FLAGS = -g3 -O0 -fsanitize=undefined
|
||||||
RELEASE_FLAGS = -O2 -s -D NDEBUG
|
RELEASE_FLAGS = -O2 -s -D NDEBUG
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ all: help
|
|||||||
|
|
||||||
help:
|
help:
|
||||||
@echo "Please use: 'make init', 'make debug', 'make fast', 'make release', or 'make clean'"
|
@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:
|
init:
|
||||||
@mkdir -p output source_code includes config
|
@mkdir -p output source_code includes config
|
||||||
@@ -33,7 +34,6 @@ clean:
|
|||||||
@rm -f output/*
|
@rm -f output/*
|
||||||
@echo "Project Cleaned"
|
@echo "Project Cleaned"
|
||||||
|
|
||||||
# ------------------------------
|
|
||||||
# Dynamic Build Graph Generators
|
# Dynamic Build Graph Generators
|
||||||
debug:
|
debug:
|
||||||
@mkdir -p config output/obj_debug
|
@mkdir -p config output/obj_debug
|
||||||
@@ -49,10 +49,10 @@ debug:
|
|||||||
OBJS="$$OBJS $$OBJ"; \
|
OBJS="$$OBJS $$OBJ"; \
|
||||||
echo "$$OBJ: $$SRC $$HEADERS" >> $$MK; \
|
echo "$$OBJ: $$SRC $$HEADERS" >> $$MK; \
|
||||||
echo " @mkdir -p $$(dirname $$OBJ)" >> $$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; \
|
done; \
|
||||||
echo "$$OUT: $$OBJS" >> $$MK; \
|
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"
|
$(MAKE) -f $$MK "$$OUT"
|
||||||
|
|
||||||
fast:
|
fast:
|
||||||
@@ -69,10 +69,10 @@ fast:
|
|||||||
OBJS="$$OBJS $$OBJ"; \
|
OBJS="$$OBJS $$OBJ"; \
|
||||||
echo "$$OBJ: $$SRC $$HEADERS" >> $$MK; \
|
echo "$$OBJ: $$SRC $$HEADERS" >> $$MK; \
|
||||||
echo " @mkdir -p $$(dirname $$OBJ)" >> $$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; \
|
done; \
|
||||||
echo "$$OUT: $$OBJS" >> $$MK; \
|
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"
|
$(MAKE) -f $$MK "$$OUT"
|
||||||
|
|
||||||
release:
|
release:
|
||||||
@@ -92,8 +92,8 @@ release:
|
|||||||
OBJS="$$OBJS $$OBJ"; \
|
OBJS="$$OBJS $$OBJ"; \
|
||||||
echo "$$OBJ: $$SRC $$HEADERS" >> $$MK; \
|
echo "$$OBJ: $$SRC $$HEADERS" >> $$MK; \
|
||||||
echo " @mkdir -p $$(dirname $$OBJ)" >> $$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; \
|
done; \
|
||||||
echo "$$OUT: $$OBJS" >> $$MK; \
|
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"
|
$(MAKE) -f $$MK "$$OUT"
|
||||||
|
|||||||
Reference in New Issue
Block a user