framework2
77 строк · 1.3 Кб
1#
2# Cross Platform Makefile
3# Compatible with Ubuntu 14.04.1 and macOS
4
5OBJS = cimgui.o
6OBJS += ./imgui/imgui.o
7OBJS += ./imgui/imgui_draw.o
8OBJS += ./imgui/imgui_demo.o
9OBJS += ./imgui/imgui_tables.o
10OBJS += ./imgui/imgui_widgets.o
11
12CXXFLAGS=-O2 -fno-exceptions -fno-rtti
13
14UNAME_S := $(shell uname -s)
15
16AR := ar -rc
17
18ifeq ($(UNAME_S), Linux) #LINUX
19ECHO_MESSAGE = "Linux"
20
21OUTPUTNAME = cimgui.so
22CXXFLAGS += -I./imgui/
23CXXFLAGS += -Wall
24CXXFLAGS += -shared -fPIC
25CFLAGS = $(CXXFLAGS)
26endif
27
28ifeq ($(UNAME_S), Darwin) #APPLE
29ECHO_MESSAGE = "macOS"
30
31OUTPUTNAME = cimgui.dylib
32CXXFLAGS += -I/usr/local/include
33CXXFLAGS += -Wall
34LINKFLAGS = -dynamiclib
35CFLAGS = $(CXXFLAGS)
36endif
37
38ifeq ($(OS), Windows_NT)
39ECHO_MESSAGE = "Windows"
40
41OUTPUTNAME = cimgui.dll
42CXXFLAGS += -I./imgui/
43CXXFLAGS += -Wall
44CXXFLAGS += -shared
45LINKFLAGS = -limm32
46CFLAGS = $(CXXFLAGS)
47endif
48
49.cpp.o:
50$(CXX) $(CXXFLAGS) -c -o $@ $<
51
52all:$(OUTPUTNAME)
53@echo Build complete for $(ECHO_MESSAGE)
54
55static:$(OBJS)
56$(AR) libcimgui.a $(OBJS)
57
58$(OUTPUTNAME):$(OBJS)
59$(CXX) -o $(OUTPUTNAME) $(OBJS) $(CXXFLAGS) $(LINKFLAGS)
60
61clean:
62ifeq ($(OS),Windows_NT)
63del /q $(subst /,\,$(OBJS))
64else
65rm -f $(OBJS)
66endif
67
68fclean: clean
69ifeq ($(OS),Windows_NT)
70del /q $(subst /,\,$(OUTPUTNAME))
71else
72rm -f $(OUTPUTNAME)
73endif
74
75re: fclean all
76
77.PHONY: all clean fclean re static
78