forked from oxesoft/oxefmsynth
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.standalone
123 lines (112 loc) · 3.6 KB
/
Makefile.standalone
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Oxe FM Synth: a software synthesizer
# Copyright (C) 2015 Daniel Moura <[email protected]>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
EXECUTABLE_NAME:=oxefmsynth
INCLUDES+=-Isrc/vst
INCLUDES+=-Isrc/gui
INCLUDES+=-Isrc/synth
INCLUDES+=-Isrc/toolkits
SOURCES+=src/toolkits/nonguitoolkit.cpp
SOURCES+=src/standalone/main.cpp
SOURCES+=src/gui/button.cpp
SOURCES+=src/gui/channels.cpp
SOURCES+=src/gui/editor.cpp
SOURCES+=src/gui/key.cpp
SOURCES+=src/gui/knob.cpp
SOURCES+=src/gui/lcd.cpp
SOURCES+=src/gui/mapper.cpp
SOURCES+=src/synth/buffers.cpp
SOURCES+=src/synth/delay.cpp
SOURCES+=src/synth/envelop.cpp
SOURCES+=src/synth/filter.cpp
SOURCES+=src/synth/noise.cpp
SOURCES+=src/synth/note.cpp
SOURCES+=src/synth/oscillator.cpp
SOURCES+=src/synth/persist.cpp
SOURCES+=src/synth/programs.cpp
SOURCES+=src/synth/reverb.cpp
SOURCES+=src/synth/synthesizer.cpp
UNAME_S:=$(shell uname -s)
ifeq ($(DEBUG),YES)
CXXFLAGS+=-g -O0
else
CXXFLAGS+=-O3
ifneq ($(UNAME_S),Darwin)
LDFLAGS+=-s
endif
endif
ifeq ($(OS),Windows_NT)
EXECUTABLE_NAME:=$(EXECUTABLE_NAME).exe
CXX:=g++.exe
RC:=windres.exe
INCLUDES+=-Isrc/standalone
SOURCES+=src/toolkits/windowstoolkit.cpp
INCLUDES+=-Isrc/windows
LDFLAGS+=-lgdi32
LDFLAGS+=resources.o
DEPS:=resources.o
else
ifeq ($(TARGET),WIN32)
EXECUTABLE_NAME:=$(EXECUTABLE_NAME).exe
CXX:=i686-w64-mingw32-g++
RC:=i686-w64-mingw32-windres
INCLUDES+=-Isrc/standalone
SOURCES+=src/toolkits/windowstoolkit.cpp
INCLUDES+=-Isrc/windows
LDFLAGS+=-lgdi32
LDFLAGS+=resources.o
DEPS:=resources.o
LDFLAGS+=-static
else
INCLUDES+=-I.
DEPS:=bitmaps.cpp
SOURCES+=bitmaps.cpp
ifeq ($(UNAME_S),Darwin)
LDFLAGS+=-framework Cocoa
LDFLAGS+=-framework OpenGL
SOURCES+=src/toolkits/opengltoolkit.cpp
SOURCES+=src/toolkits/cocoatoolkit.cpp
SOURCES+=src/toolkits/cocoatoolkit.m
else
LDFLAGS+=-lX11
LDFLAGS+=-lpthread
LDFLAGS+=-ldl
ifeq ($(USE_OPENGL),YES)
CXXFLAGS+=-DUSE_OPENGL
LDFLAGS+=-lGL
SOURCES+=src/toolkits/opengltoolkit.cpp
endif
SOURCES+=src/toolkits/xlibtoolkit.cpp
endif
endif
endif
all: $(DEPS)
@$(CXX) -o $(EXECUTABLE_NAME) -DEXECUTABLE_NAME=\"$(EXECUTABLE_NAME)\" $(CXXFLAGS) $(SOURCES) $(INCLUDES) $(LDFLAGS)
@$(CMD)
ifeq ($(UNAME_S),Darwin)
@mkdir -p $(EXECUTABLE_NAME).app/Contents/MacOS
@cp src/macosx/app/* $(EXECUTABLE_NAME).app/Contents/
@mv $(EXECUTABLE_NAME) $(EXECUTABLE_NAME).app/Contents/MacOS/
endif
bitmaps.cpp:
@$(CXX) -o embedresources $(CXXFLAGS) src/toolkits/embedresources.cpp
@./embedresources $@
@rm embedresources
cocoatoolkit.o:
@gcc -c -o $@ $(OBJCSOURCES) $(INCLUDES) $(OBJCXXFLAGS)
resources.o:
@$(RC) -Isrc/synth -Iskins/default src/windows/resources.rc resources.o
clean:
@rm -rf $(EXECUTABLE_NAME).app $(EXECUTABLE_NAME) embedresources bitmaps.cpp *.o *.d