AsloEngine/makefile
2019-08-29 18:42:28 +02:00

50 lines
No EOL
1.6 KiB
Makefile
Executable file

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 $@