diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 52 |
1 files changed, 30 insertions, 22 deletions
@@ -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) |
