ENGINE_PATH = asloengine ENGINE_HEADERS_PATH = asloengine/headers ENGINE_BUILTIN_PATH = asloengine/builtin ENGINE_BUILTIN_HEADERS_PATH = asloengine/builtin/headers COMPILER_FLAGS = -std=c++17 LINK_LIBS = -lsfml-system -lsfml-window -lsfml-graphics -lfmt PROGRAM_BUILD_FILES = $(wildcard *.cpp) ENGINE_BUILD_FILES = $(wildcard $(ENGINE_PATH)/*.cpp) ENGINE_BUILTIN_BUILD_FILES = $(wildcard $(ENGINE_BUILTIN_PATH)/*.cpp) BUILD_DIR = obj OUTPUT_FILE = enginetest VPATH = $(ENGINE_PATH) $(ENGINE_HEADERS_PATH) $(ENGINE_BUILTIN_PATH) $(ENGINE_BUILTIN_HEADERS_PATH) run: compile ./$(OUTPUT_FILE) justrun: ./$(OUTPUT_FILE) all: clean compile test: g++ $(COMPILER_FLAGS) $(PROGRAM_BUILD_FILES) $(ENGINE_BUILD_FILES) $(ENGINE_BUILTIN_BUILD_FILES) -o $(OUTPUT_FILE) $(LINK_LIBS) compile: $(BUILD_DIR) $(patsubst %.cpp,$(BUILD_DIR)/%.o,$(PROGRAM_BUILD_FILES)) $(patsubst $(ENGINE_PATH)/%.cpp,$(BUILD_DIR)/%.o,$(ENGINE_BUILD_FILES)) $(patsubst $(ENGINE_BUILTIN_PATH)/%.cpp,$(BUILD_DIR)/%.o,$(ENGINE_BUILTIN_BUILD_FILES)) g++ -g -O0 $(COMPILER_FLAGS) $(BUILD_DIR)/*.o -o $(OUTPUT_FILE) $(LINK_LIBS) release: clean $(BUILD_DIR) $(patsubst %.cpp,$(BUILD_DIR)/%.o,$(PROGRAM_BUILD_FILES)) $(patsubst $(ENGINE_PATH)/%.cpp,$(BUILD_DIR)/%.o,$(ENGINE_BUILD_FILES)) $(patsubst $(ENGINE_BUILTIN_PATH)/%.cpp,$(BUILD_DIR)/%.o,$(ENGINE_BUILTIN_BUILD_FILES)) g++ -O3 $(COMPILER_FLAGS) $(BUILD_DIR)/*.o -o $(OUTPUT_FILE) $(LINK_LIBS) clear: clean clean: rm -rf $(BUILD_DIR) core: removecore run removecore: rm -f $(BUILD_DIR)/core.o $(BUILD_DIR): mkdir $@ $(BUILD_DIR)/%.o: %.cpp %.hpp g++ $(COMPILER_FLAGS) -c $< -o $@