2 KB、77行 生 Blame 履歴
1#
2# Cross Platform Makefile
3# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
4#
5# You will need SDL3 (http://www.libsdl.org) which is still unreleased/unpackaged.
6# Mac OS X:
7# brew install sdl3
8
9#CXX = g++
10#CXX = clang++
11
12EXE = example_sdl3_vulkan
13IMGUI_DIR = ../..
14SOURCES = main.cpp
15SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
16SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_vulkan.cpp
17OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
18UNAME_S := $(shell uname -s)
19
20CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
21CXXFLAGS += -g -Wall -Wformat
22LIBS =
23
24
25##---------------------------------------------------------------------
26## BUILD FLAGS PER PLATFORM
27##---------------------------------------------------------------------
28
29ifeq ($(UNAME_S), Linux) #LINUX
30 ECHO_MESSAGE = "Linux"
31 LIBS += -ldl
32 LIBS += `pkg-config --libs sdl3 vulkan`
33
34 CXXFLAGS += `pkg-config --cflags sdl3 vulkan`
35 CFLAGS = $(CXXFLAGS)
36endif
37
38ifeq ($(UNAME_S), Darwin) #APPLE
39 ECHO_MESSAGE = "Mac OS X"
40 LIBS += -framework Cocoa -framework IOKit -framework CoreVideo
41 LIBS += `pkg-config --libs sdl3 vulkan`
42 LIBS += -L/usr/local/lib -L/opt/local/lib
43
44 CXXFLAGS += `pkg-config --cflags sdl3 vulkan`
45 CXXFLAGS += -I/usr/local/include -I/opt/local/include
46 CFLAGS = $(CXXFLAGS)
47endif
48
49ifeq ($(OS), Windows_NT)
50 ECHO_MESSAGE = "MinGW"
51 LIBS += -lgdi32 -limm32 `pkg-config --static --libs sdl3 vulkan`
52
53 CXXFLAGS += `pkg-config --cflags sdl3 vulkan`
54 CFLAGS = $(CXXFLAGS)
55endif
56
57##---------------------------------------------------------------------
58## BUILD RULES
59##---------------------------------------------------------------------
60
61%.o:%.cpp
62 $(CXX) $(CXXFLAGS) -c -o $@ $<
63
64%.o:$(IMGUI_DIR)/%.cpp
65 $(CXX) $(CXXFLAGS) -c -o $@ $<
66
67%.o:$(IMGUI_DIR)/backends/%.cpp
68 $(CXX) $(CXXFLAGS) -c -o $@ $<
69
70all: $(EXE)
71 @echo Build complete for $(ECHO_MESSAGE)
72
73$(EXE): $(OBJS)
74 $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
75
76clean:
77 rm -f $(EXE) $(OBJS)