Tobias P.L Wennberg 05dd1126c3 fakope
2025-08-26 13:23:36 +02:00

60 lines
1.3 KiB
Makefile

# Makefile for ImGui SDL2 + OpenGL3 project
CXX = g++
CXXFLAGS = -std=c++26 -Wall -g
#CXXFLAGS = -std=c++26 -Wall -g -Werror
INCLUDE_SOURCES = \
include/imgui/imgui.cpp \
include/imgui/imgui_draw.cpp \
include/imgui/imgui_tables.cpp \
include/imgui/imgui_widgets.cpp \
include/imgui/imgui_demo.cpp \
include/imgui/backends/imgui_impl_sdl2.cpp \
include/imgui/backends/imgui_impl_opengl3.cpp \
include/imnodes/imnodes.cpp \
include/implot/implot.cpp \
include/implot/implot_items.cpp \
INCLUDES = -Iinclude -Iinclude/imgui -Iinclude/imnodes -Iinclude/implot
# SDL2 and OpenGL flags
UNAME_S := $(shell uname -s)
SDL_CFLAGS := $(shell sdl2-config --cflags)
SDL_LIBS := $(shell sdl2-config --libs)
GL_LIBS = -lGL
LIBS = $(SDL_LIBS) $(GL_LIBS) -ldl
CXXFLAGS += $(SDL_CFLAGS) $(INCLUDES)
# Targets and source files
EXE = app
SOURCES := $(shell find src -name '*.cpp') $(IMGUI_SOURCES) $(INCLUDE_SOURCES)
# Convert source files to object files (e.g. imgui/imgui.cpp -> imgui/imgui.o)
OBJECTS = $(SOURCES:.cpp=.o)
.PHONY: all build run clean
all: build
build: $(EXE)
$(EXE): $(OBJECTS)
$(CXX) -o $@ $^ $(LIBS)
# Ensure object files are built from correct paths
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
run: build
./$(EXE)
debug: build
gdb ./$(EXE)
clean:
rm -f $(OBJECTS) $(EXE)