Mercurial > hg > vamp-plugin-sdk
comparison Makefile.osx @ 94:70bcd0b62cba
* OS/X build stuff
author | cannam |
---|---|
date | Wed, 07 Nov 2007 10:30:27 +0000 |
parents | |
children | 611e039168ad |
comparison
equal
deleted
inserted
replaced
93:cd72c0473341 | 94:70bcd0b62cba |
---|---|
1 | |
2 # Makefile for the Vamp plugin SDK. This builds the SDK objects, | |
3 # libraries, example plugins, and the test host. Please adjust to | |
4 # suit your operating system requirements. | |
5 # | |
6 # This version of the Makefile is approximately correct for OS/X. | |
7 # Note that it has no "install" target; the following are the | |
8 # library and related files that may be of interest resulting from | |
9 # the build: | |
10 # | |
11 # vamp-sdk/libvamp-sdk.dylib [SDK dynamic library for plugins] | |
12 # vamp-sdk/libvamp-hostsdk.dylib [SDK dynamic library for hosts] | |
13 # | |
14 # vamp-sdk/libvamp-sdk.a [SDK static library for plugins] | |
15 # vamp-sdk/libvamp-hostsdk.a [SDK static library for hosts] | |
16 # | |
17 # examples/vamp-example-plugins.cat [copy this to your Vamp plugin dir] | |
18 # examples/vamp-example-plugins.dylib [copy this to your Vamp plugin dir] | |
19 # | |
20 # host/vamp-simple-host [requires libsndfile to build] | |
21 | |
22 APIDIR = vamp | |
23 SDKDIR = vamp-sdk | |
24 HOSTEXTDIR = vamp-sdk/hostext | |
25 EXAMPLEDIR = examples | |
26 HOSTDIR = host | |
27 | |
28 ### | |
29 ### Start of user-serviceable parts | |
30 ### | |
31 | |
32 # Default build target (or use "make <target>" to select one). | |
33 # Targets are: | |
34 # all -- build everything | |
35 # sdk -- build all the Vamp SDK libraries for plugins and hosts | |
36 # sdkstatic -- build only the static versions of the SDK libraries | |
37 # plugins -- build the example plugins (and the SDK if required) | |
38 # host -- build the simple Vamp plugin host (and the SDK if required) | |
39 # test -- build the host and example plugins, and run a quick test | |
40 # clean -- remove binary targets | |
41 # distclean -- remove all targets | |
42 # | |
43 default: all | |
44 | |
45 # Compile flags | |
46 # | |
47 CXXFLAGS := $(CXXFLAGS) -O2 -Wall -I. -fPIC | |
48 | |
49 # ar, ranlib | |
50 # | |
51 AR := ar | |
52 RANLIB := ranlib | |
53 | |
54 # Libraries required for the plugins. | |
55 # (Note that it is desirable to statically link libstdc++ if possible, | |
56 # because our plugin exposes only a C API so there are no boundary | |
57 # compatibility problems.) | |
58 # | |
59 PLUGIN_LIBS = $(SDKDIR)/libvamp-sdk.a | |
60 | |
61 # File extension for a dynamically loadable object | |
62 # | |
63 PLUGIN_EXT = .dylib | |
64 | |
65 # Libraries required for the host. | |
66 # | |
67 HOST_LIBS = $(SDKDIR)/libvamp-hostsdk.a -lsndfile -ldl | |
68 | |
69 # Flags required to tell the compiler to create a dynamically loadable object | |
70 # | |
71 DYNAMIC_LDFLAGS = -dynamiclib | |
72 PLUGIN_LDFLAGS = $(DYNAMIC_LDFLAGS) | |
73 SDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) | |
74 HOSTSDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) | |
75 | |
76 | |
77 ### End of user-serviceable parts | |
78 | |
79 | |
80 API_HEADERS = \ | |
81 $(APIDIR)/vamp.h | |
82 | |
83 SDK_HEADERS = \ | |
84 $(SDKDIR)/Plugin.h \ | |
85 $(SDKDIR)/PluginAdapter.h \ | |
86 $(SDKDIR)/PluginBase.h \ | |
87 $(SDKDIR)/RealTime.h | |
88 | |
89 HOSTSDK_HEADERS = \ | |
90 $(SDKDIR)/Plugin.h \ | |
91 $(SDKDIR)/PluginBase.h \ | |
92 $(SDKDIR)/PluginHostAdapter.h \ | |
93 $(SDKDIR)/RealTime.h | |
94 | |
95 HOSTEXT_HEADERS = \ | |
96 $(HOSTEXTDIR)/PluginBufferingAdapter.h \ | |
97 $(HOSTEXTDIR)/PluginChannelAdapter.h \ | |
98 $(HOSTEXTDIR)/PluginInputDomainAdapter.h \ | |
99 $(HOSTEXTDIR)/PluginLoader.h \ | |
100 $(HOSTEXTDIR)/PluginWrapper.h | |
101 | |
102 SDK_OBJECTS = \ | |
103 $(SDKDIR)/PluginAdapter.o \ | |
104 $(SDKDIR)/RealTime.o | |
105 | |
106 HOSTSDK_OBJECTS = \ | |
107 $(SDKDIR)/PluginHostAdapter.o \ | |
108 $(HOSTEXTDIR)/PluginBufferingAdapter.o \ | |
109 $(HOSTEXTDIR)/PluginChannelAdapter.o \ | |
110 $(HOSTEXTDIR)/PluginInputDomainAdapter.o \ | |
111 $(HOSTEXTDIR)/PluginLoader.o \ | |
112 $(HOSTEXTDIR)/PluginWrapper.o \ | |
113 $(SDKDIR)/RealTime.o | |
114 | |
115 SDK_STATIC = \ | |
116 $(SDKDIR)/libvamp-sdk.a | |
117 | |
118 HOSTSDK_STATIC = \ | |
119 $(SDKDIR)/libvamp-hostsdk.a | |
120 | |
121 SDK_DYNAMIC = \ | |
122 $(SDKDIR)/libvamp-sdk$(PLUGIN_EXT) | |
123 | |
124 HOSTSDK_DYNAMIC = \ | |
125 $(SDKDIR)/libvamp-hostsdk$(PLUGIN_EXT) | |
126 | |
127 SDK_LA = \ | |
128 $(SDKDIR)/libvamp-sdk.la | |
129 | |
130 HOSTSDK_LA = \ | |
131 $(SDKDIR)/libvamp-hostsdk.la | |
132 | |
133 PLUGIN_HEADERS = \ | |
134 $(EXAMPLEDIR)/SpectralCentroid.h \ | |
135 $(EXAMPLEDIR)/PercussionOnsetDetector.h \ | |
136 $(EXAMPLEDIR)/AmplitudeFollower.h \ | |
137 $(EXAMPLEDIR)/ZeroCrossing.h | |
138 | |
139 PLUGIN_OBJECTS = \ | |
140 $(EXAMPLEDIR)/SpectralCentroid.o \ | |
141 $(EXAMPLEDIR)/PercussionOnsetDetector.o \ | |
142 $(EXAMPLEDIR)/AmplitudeFollower.o \ | |
143 $(EXAMPLEDIR)/ZeroCrossing.o \ | |
144 $(EXAMPLEDIR)/plugins.o | |
145 | |
146 PLUGIN_TARGET = \ | |
147 $(EXAMPLEDIR)/vamp-example-plugins$(PLUGIN_EXT) | |
148 | |
149 HOST_HEADERS = \ | |
150 $(HOSTDIR)/system.h | |
151 | |
152 HOST_OBJECTS = \ | |
153 $(HOSTDIR)/vamp-simple-host.o | |
154 | |
155 HOST_TARGET = \ | |
156 $(HOSTDIR)/vamp-simple-host | |
157 | |
158 sdk: sdkstatic $(SDK_DYNAMIC) $(HOSTSDK_DYNAMIC) | |
159 | |
160 sdkstatic: $(SDK_STATIC) $(HOSTSDK_STATIC) | |
161 $(RANLIB) $(SDK_STATIC) | |
162 $(RANLIB) $(HOSTSDK_STATIC) | |
163 | |
164 plugins: $(PLUGIN_TARGET) | |
165 | |
166 host: $(HOST_TARGET) | |
167 | |
168 all: sdk plugins host test | |
169 | |
170 $(SDK_STATIC): $(SDK_OBJECTS) $(API_HEADERS) $(SDK_HEADERS) | |
171 $(AR) r $@ $(SDK_OBJECTS) | |
172 | |
173 $(HOSTSDK_STATIC): $(HOSTSDK_OBJECTS) $(API_HEADERS) $(HOSTSDK_HEADERS) $(HOSTEXT_HEADERS) | |
174 $(AR) r $@ $(HOSTSDK_OBJECTS) | |
175 | |
176 $(SDK_DYNAMIC): $(SDK_OBJECTS) $(API_HEADERS) $(SDK_HEADERS) | |
177 $(CXX) $(LDFLAGS) $(SDK_DYNAMIC_LDFLAGS) -o $@ $(SDK_OBJECTS) | |
178 | |
179 $(HOSTSDK_DYNAMIC): $(HOSTSDK_OBJECTS) $(API_HEADERS) $(HOSTSDK_HEADERS) $(HOSTEXT_HEADERS) | |
180 $(CXX) $(LDFLAGS) $(HOSTSDK_DYNAMIC_LDFLAGS) -o $@ $(HOSTSDK_OBJECTS) | |
181 | |
182 $(PLUGIN_TARGET): $(PLUGIN_OBJECTS) $(SDK_STATIC) $(PLUGIN_HEADERS) | |
183 $(CXX) $(LDFLAGS) $(PLUGIN_LDFLAGS) -o $@ $(PLUGIN_OBJECTS) $(PLUGIN_LIBS) | |
184 | |
185 $(HOST_TARGET): $(HOST_OBJECTS) $(HOSTSDK_STATIC) $(HOST_HEADERS) | |
186 $(CXX) $(LDFLAGS) $(HOST_LDFLAGS) -o $@ $(HOST_OBJECTS) $(HOST_LIBS) | |
187 | |
188 test: plugins host | |
189 VAMP_PATH=$(EXAMPLEDIR) $(HOST_TARGET) -l | |
190 | |
191 clean: | |
192 rm -f $(SDK_OBJECTS) $(HOSTSDK_OBJECTS) $(PLUGIN_OBJECTS) $(HOST_OBJECTS) | |
193 | |
194 distclean: clean | |
195 rm -f $(SDK_STATIC) $(SDK_DYNAMIC) $(HOSTSDK_STATIC) $(HOSTSDK_DYNAMIC) $(PLUGIN_TARGET) $(HOST_TARGET) *~ */*~ | |
196 |