CXX := g++ CXXFLAGS := -Wall -Wextra -std=c++17 -O2 TARGET := emulator # Source files SRC := main.cpp \ imgui/imgui.cpp \ imgui/imgui_draw.cpp \ imgui/imgui_widgets.cpp \ imgui/imgui_tables.cpp \ imgui/imgui_demo.cpp \ imgui/imgui_impl_glfw.cpp \ imgui/imgui_impl_opengl3.cpp # Object file targets in build/ OBJ := $(SRC:%.cpp=build/%.o) # Include and library paths for MSYS2 INCLUDES := -Iimgui -IC:/msys64/mingw64/include LIBS := -LC:/msys64/mingw64/lib -lglfw3 -lopengl32 all: $(TARGET) # Linking $(TARGET): $(OBJ) $(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS) # Build .o files into build/ directory build/%.o: %.cpp @if not exist "$(dir $@)" mkdir "$(dir $@)" $(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@ run: $(TARGET) ./$(TARGET) clean: @rm -rf build $(TARGET)