Makefile (1944B)
1 # 2 # Cross Platform Makefile 3 # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X 4 # 5 # Linux: 6 # apt-get install freeglut3-dev 7 # 8 9 #CXX = g++ 10 #CXX = clang++ 11 12 EXE = example_glut_opengl2 13 IMGUI_DIR = ../.. 14 SOURCES = main.cpp 15 SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp 16 SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glut.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp 17 OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) 18 UNAME_S := $(shell uname -s) 19 20 CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends 21 CXXFLAGS += -g -Wall -Wformat 22 LIBS = 23 24 ##--------------------------------------------------------------------- 25 ## BUILD FLAGS PER PLATFORM 26 ##--------------------------------------------------------------------- 27 28 ifeq ($(UNAME_S), Linux) #LINUX 29 ECHO_MESSAGE = "Linux" 30 LIBS += -lGL -lglut 31 CFLAGS = $(CXXFLAGS) 32 endif 33 34 ifeq ($(UNAME_S), Darwin) #APPLE 35 ECHO_MESSAGE = "Mac OS X" 36 LIBS += -framework OpenGL -framework GLUT 37 LIBS += -L/usr/local/lib -L/opt/local/lib 38 39 CXXFLAGS += -I/usr/local/include -I/opt/local/include 40 CFLAGS = $(CXXFLAGS) 41 endif 42 43 ifeq ($(OS), Windows_NT) 44 ECHO_MESSAGE = "MinGW" 45 LIBS += -lgdi32 -lopengl32 -limm32 46 ifeq ($(shell pkg-config freeglut --exists 2> /dev/null && echo yes || echo no),yes) 47 CXXFLAGS += $(shell pkg-config freeglut --cflags) 48 LIBS += $(shell pkg-config freeglut --libs) 49 else 50 LIBS += -lglut 51 endif 52 CFLAGS = $(CXXFLAGS) 53 endif 54 55 ##--------------------------------------------------------------------- 56 ## BUILD RULES 57 ##--------------------------------------------------------------------- 58 59 %.o:%.cpp 60 $(CXX) $(CXXFLAGS) -c -o $@ $< 61 62 %.o:$(IMGUI_DIR)/%.cpp 63 $(CXX) $(CXXFLAGS) -c -o $@ $< 64 65 %.o:$(IMGUI_DIR)/backends/%.cpp 66 $(CXX) $(CXXFLAGS) -c -o $@ $< 67 68 all: $(EXE) 69 @echo Build complete for $(ECHO_MESSAGE) 70 71 $(EXE): $(OBJS) 72 $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) 73 74 clean: 75 rm -f $(EXE) $(OBJS)