summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile52
1 files changed, 30 insertions, 22 deletions
diff --git a/Makefile b/Makefile
index 109e8bf..dc10612 100644
--- a/Makefile
+++ b/Makefile
@@ -1,42 +1,50 @@
+CXX ?= g++
EXE := game
BUILD_DIR := build
+
INC_FLAGS := -Isrc -Iglfw/build/include -Iglad/include -Istb -Iglm
LINK_FLAGS := -lGL -lX11 -lpthread -lXrandr -lXi -ldl
-OBJ_NAMES := glad.o input.o shader.o batch.o texture.o window.o random.o
+
+GLFW_LIB := glfw/build/src/libglfw3.a
+EXTERNAL_LIBS := $(GLFW_LIB)
+
+PROJ_SYSTEMS := input shader batch texture window random
+PROJ_OBJ_NAMES := $(addsuffix .o, $(PROJ_SYSTEMS))
+OBJ_NAMES := glad.o $(PROJ_OBJ_NAMES)
OBJ_FILES := $(addprefix $(BUILD_DIR)/, $(OBJ_NAMES))
+# --- Main ---
+$(BUILD_DIR)/$(EXE): src/main.cpp $(EXTERNAL_LIBS) $(OBJ_FILES)
+ @echo --- main ---
+ @mkdir -p $(BUILD_DIR)
+ $(CXX) -o $(BUILD_DIR)/$(EXE) src/main.cpp $(OBJ_FILES) $(INC_FLAGS) $(EXTERNAL_LIBS) $(LINK_FLAGS)
-$(BUILD_DIR)/$(EXE): src/main.cpp $(OBJ_FILES)
+# --- Systems ---
+$(BUILD_DIR)/%.o: src/*.cpp src/*.hpp
+ @echo ---$*---
@mkdir -p $(BUILD_DIR)
- g++ -o $(BUILD_DIR)/$(EXE) src/main.cpp $(OBJ_FILES) $(INC_FLAGS) glfw/build/lib/libglfw3.a $(LINK_FLAGS)
+ $(CXX) -o $(BUILD_DIR)/$*.o -c src/$*.cpp $(INC_FLAGS) $(LINK_FLAGS)
+# --- External Libs ---
$(BUILD_DIR)/glad.o: glad/src/glad.c
+ @echo ---glad---
@mkdir -p $(BUILD_DIR)
- g++ -o $(BUILD_DIR)/glad.o -c glad/src/glad.c $(INC_FLAGS) $(LINK_FLAGS)
-$(BUILD_DIR)/input.o: src/input.cpp src/input.hpp
- @mkdir -p $(BUILD_DIR)
- g++ -o $(BUILD_DIR)/input.o -c src/input.cpp $(INC_FLAGS) $(LINK_FLAGS)
-$(BUILD_DIR)/shader.o: src/shader.cpp src/shader.hpp
- @mkdir -p $(BUILD_DIR)
- g++ -o $(BUILD_DIR)/shader.o -c src/shader.cpp $(INC_FLAGS) $(LINK_FLAGS)
-$(BUILD_DIR)/batch.o: src/batch.cpp src/batch.hpp
- @mkdir -p $(BUILD_DIR)
- g++ -o $(BUILD_DIR)/batch.o -c src/batch.cpp $(INC_FLAGS) $(LINK_FLAGS)
-$(BUILD_DIR)/texture.o: src/texture.cpp src/texture.hpp
- @mkdir -p $(BUILD_DIR)
- g++ -o $(BUILD_DIR)/texture.o -c src/texture.cpp $(INC_FLAGS) $(LINK_FLAGS)
-$(BUILD_DIR)/window.o: src/window.cpp src/window.hpp
- @mkdir -p $(BUILD_DIR)
- g++ -o $(BUILD_DIR)/window.o -c src/window.cpp $(INC_FLAGS) $(LINK_FLAGS)
-$(BUILD_DIR)/random.o: src/random.cpp src/random.hpp
- @mkdir -p $(BUILD_DIR)
- g++ -o $(BUILD_DIR)/random.o -c src/random.cpp $(INC_FLAGS) $(LINK_FLAGS)
+ $(CXX) -o $(BUILD_DIR)/glad.o -c glad/src/glad.c $(INC_FLAGS) $(LINK_FLAGS)
+
+$(GLFW_LIB):
+ @echo ---glfw---
+ cmake -S glfw -B glfw/build && cd glfw/build && make;
+# --- Utility ---
.PHONY: clean
clean:
rm -r $(BUILD_DIR)
+.PHONY: deep_clean
+deep_clean: clean
+ rm -r glfw/build
+
.PHONY: run
run: $(BUILD_DIR)/$(EXE)
$(BUILD_DIR)/$(EXE)