56 lines
1.2 KiB
Makefile
56 lines
1.2 KiB
Makefile
# Compiler
|
|
CC = g++
|
|
|
|
# Compiler flags
|
|
CFLAGS = -Wall -g
|
|
|
|
# Paths to include directories (Adjust these paths to your installation)
|
|
IMG_INCLUDE_DIR = include
|
|
IMGUI_INCLUDE_DIR = imgui
|
|
SDL2_LIB_DIR = C:/msys64/mingw64/bin
|
|
LIB_DIR = lib
|
|
|
|
# Include directories
|
|
INCLUDE_DIRS = -I$(IMG_INCLUDE_DIR) -I$(IMGUI_INCLUDE_DIR)
|
|
|
|
# Library directories
|
|
LIB_DIRS = -L$(SDL2_LIB_DIR) -L$(LIB_DIR)
|
|
|
|
# Libraries to link
|
|
LIBS = -lmingw32 -lglfw3 -lopengl32 -lglew32 -lyaml-cpp -lcomdlg32
|
|
|
|
# Source directories
|
|
SRC_DIR = src
|
|
IMGUI_DIR = imgui
|
|
|
|
# Object directory
|
|
OBJ_DIR = build
|
|
|
|
# Source files
|
|
SOURCES = $(wildcard $(SRC_DIR)/*.cpp) $(wildcard $(IMGUI_DIR)/*.cpp)
|
|
|
|
# Object files
|
|
OBJECTS = $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SOURCES))
|
|
OBJECTS := $(patsubst $(IMGUI_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(OBJECTS))
|
|
|
|
# Executable name
|
|
EXECUTABLE = $(OBJ_DIR)/game_engine.exe
|
|
|
|
# Build target
|
|
all: $(OBJ_DIR) $(EXECUTABLE)
|
|
|
|
$(OBJ_DIR):
|
|
mkdir $(OBJ_DIR)
|
|
|
|
$(EXECUTABLE): $(OBJECTS)
|
|
$(CC) $(OBJECTS) -o $@ $(LIB_DIRS) $(LIBS)
|
|
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
|
|
$(CC) $(CFLAGS) $(INCLUDE_DIRS) -c $< -o $@
|
|
|
|
$(OBJ_DIR)/%.o: $(IMGUI_DIR)/%.cpp
|
|
$(CC) $(CFLAGS) $(INCLUDE_DIRS) -c $< -o $@
|
|
|
|
clean:
|
|
del /Q $(OBJ_DIR)\*.o
|