diff --git a/examples/example_sdl2_surface/Makefile b/examples/example_sdl2_surface/Makefile index 400112ea5..7e6a4a48c 100644 --- a/examples/example_sdl2_surface/Makefile +++ b/examples/example_sdl2_surface/Makefile @@ -1,9 +1,7 @@ -# Makefile for example_sdl2_surface (MinGW) +# Makefile for example_sdl2_surface CXX = g++ CXXFLAGS = -std=c++17 -Wall -Wformat -INCLUDES = -I../.. -I../../backends -I/mingw64/include/SDL2 -LIBS = -lmingw32 -lSDL2main -lSDL2 -lgdi32 IMGUI_DIR = ../.. SOURCES = main.cpp @@ -13,6 +11,32 @@ SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdlsurface2.cpp OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) +UNAME_S := $(shell uname -s) + +SDL_CFLAGS := $(shell pkg-config --cflags sdl2 2>/dev/null) +SDL_LIBS := $(shell pkg-config --libs sdl2 2>/dev/null) +EXEEXT := +RM = rm -f + +ifneq (,$(findstring MINGW,$(UNAME_S))) + INCLUDES = -I../.. -I../../backends -I/mingw64/include/SDL2 + LIBS = -lmingw32 -lSDL2main -lSDL2 -lgdi32 + EXEEXT = .exe + RM = del /Q +else + ifeq ($(UNAME_S),Darwin) + ifeq ($(SDL_CFLAGS),) + SDL_CFLAGS = -F/Library/Frameworks -I/Library/Frameworks/SDL2.framework/Headers + SDL_LIBS = -F/Library/Frameworks -framework SDL2 + endif + endif + + INCLUDES = -I../.. -I../../backends $(SDL_CFLAGS) + LIBS = $(SDL_LIBS) +endif + +TARGET = example_sdl2_surface$(EXEEXT) + %.o:%.cpp $(CXX) $(CXXFLAGS) $(INCLUDES) -c -o $@ $< @@ -22,10 +46,10 @@ OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) %.o:$(IMGUI_DIR)/backends/%.cpp $(CXX) $(CXXFLAGS) $(INCLUDES) -c -o $@ $< -all: example_sdl2_surface.exe +all: $(TARGET) -example_sdl2_surface.exe: $(OBJS) +$(TARGET): $(OBJS) $(CXX) -o $@ $^ $(LIBS) clean: - del /Q *.o *.exe + $(RM) *.o $(TARGET)