-
Notifications
You must be signed in to change notification settings - Fork 22
/
Makefile
83 lines (68 loc) · 3.01 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
EXE = midi2osc
SOURCES = main.cpp imgui/examples/imgui_impl_glfw.cpp imgui/examples/imgui_impl_opengl3.cpp
SOURCES += imgui/imgui.cpp imgui/imgui_draw.cpp imgui/imgui_widgets.cpp
SOURCES += imgui/examples/libs/gl3w/GL/gl3w.c
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
UNAME_S := $(shell uname -s)
$(info Building for ${UNAME_S})
ifeq ($(UNAME_S), Linux) #LINUX
ECHO_MESSAGE = "Linux"
LIBS = -lGL -lpthread -lportmidi `pkg-config --static --libs glfw3`
CXXFLAGS = -Iimgui/ -Iimgui/examples/libs/gl3w `pkg-config --cflags glfw3`
CXXFLAGS += -Wall -Wformat -O2
CFLAGS = $(CXXFLAGS)
endif
ifeq ($(UNAME_S), Darwin) #APPLE
ECHO_MESSAGE = "Mac OS X"
LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
LIBS += -L/usr/local/lib -lglfw3 -lportmidi -headerpad_max_install_names
CXXFLAGS = -Iimgui/ -Iimgui/examples/libs/gl3w -Iimgui/examples/libs
CXXFLAGS += -I/usr/local/include
CXXFLAGS += -Wno-c++11-extensions
CXXFLAGS += -Wall -Wformat -O2
CFLAGS = $(CXXFLAGS)
endif
%.o:%.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
%.o:imgui/%.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
%.o:imgui/examples/%.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
%.o:imgui/examples/libs/gl3w/GL/%.c
$(CC) $(CFLAGS) -c -o $@ $<
all: $(EXE)
@echo Build complete for $(ECHO_MESSAGE)
$(EXE): $(OBJS) $(EXE).icns Info.plist
$(CXX) -o $@ $(OBJS) $(CXXFLAGS) $(LIBS)
ifeq ($(UNAME_S), Darwin) #APPLE
mkdir -p midi2osc.app/Contents/MacOS/
mkdir -p midi2osc.app/Contents/Resources/
cp midi2osc midi2osc.app/Contents/MacOS/
cp Info.plist midi2osc.app/Contents/
cp $(EXE).icns midi2osc.app/Contents/Resources/
-cp /usr/local/opt/glfw3/lib/libglfw3.3.dylib midi2osc.app/Contents/MacOS/
-cp /usr/local/opt/portmidi/lib/libportmidi.dylib midi2osc.app/Contents/MacOS/
install_name_tool -change /usr/local/opt/glfw3/lib/libglfw3.3.dylib @executable_path/libglfw3.3.dylib midi2osc.app/Contents/MacOS/midi2osc
install_name_tool -change /usr/local/opt/portmidi/lib/libportmidi.dylib @executable_path/libportmidi.dylib midi2osc.app/Contents/MacOS/midi2osc
endif
clean:
rm -f $(EXE) $(OBJS)
rm -f $(EXE).icns
$(EXE).icns: $(EXE)Icon.png
ifeq ($(UNAME_S), Darwin) #APPLE
rm -rf $(EXE).iconset
mkdir $(EXE).iconset
sips -z 16 16 $(EXE)Icon.png --out $(EXE).iconset/icon_16x16.png
sips -z 32 32 $(EXE)Icon.png --out $(EXE).iconset/icon_16x16@2x.png
sips -z 32 32 $(EXE)Icon.png --out $(EXE).iconset/icon_32x32.png
sips -z 64 64 $(EXE)Icon.png --out $(EXE).iconset/icon_32x32@2x.png
sips -z 128 128 $(EXE)Icon.png --out $(EXE).iconset/icon_128x128.png
sips -z 256 256 $(EXE)Icon.png --out $(EXE).iconset/icon_128x128@2x.png
sips -z 256 256 $(EXE)Icon.png --out $(EXE).iconset/icon_256x256.png
sips -z 512 512 $(EXE)Icon.png --out $(EXE).iconset/icon_256x256@2x.png
sips -z 512 512 $(EXE)Icon.png --out $(EXE).iconset/icon_512x512.png
sips -z 1024 1024 $(EXE)Icon.png --out $(EXE).iconset/icon_512x512@2x.png
cp $(EXE)Icon.png $(EXE).iconset/icon_512x512@2x.png
iconutil -c icns -o $(EXE).icns $(EXE).iconset
rm -r $(EXE).iconset
endif