# Compiler settings
CXX = g++
CXXFLAGS = -std=c++20 -I. -Iinclude -Iimgui-docking -IC:/msys64/mingw64/include -DGLEW_STATIC -g
LDFLAGS = -LC:/msys64/mingw64/lib -lglfw3 -lopengl32 -lgdi32 -lglew32 -lglu32 -lyaml-cpp

# List ImGui source files
IMGUISRCS = imgui-docking/imgui.cpp \
            imgui-docking/imgui_demo.cpp \
            imgui-docking/imgui_draw.cpp \
            imgui-docking/imgui_tables.cpp \
            imgui-docking/imgui_widgets.cpp \
            imgui-docking/imgui_impl_glfw.cpp \
            imgui-docking/imgui_impl_opengl3.cpp

# List all source files
SRCS = main.cpp $(IMGUISRCS)
OBJS = $(SRCS:.cpp=.o)
TARGET = main

all: $(TARGET)

$(TARGET): $(OBJS)
	$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)

%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

clean:
	rm -f $(OBJS) $(TARGET)