cannam@95
|
1
|
cannam@95
|
2 CXX := g++
|
cannam@95
|
3 CC := gcc
|
cannam@95
|
4 ARCHFLAGS :=
|
cannam@95
|
5 OPTFLAGS := -DNDEBUG -ffast-math -mfpmath=sse -msse -msse2 -O3 -ftree-vectorize
|
cannam@95
|
6
|
cannam@95
|
7 CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I/usr/local/include -DUSE_PTHREADS -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DNO_THREAD_CHECKS -DNO_TIMING -Irubberband -I. -Isrc
|
cannam@95
|
8
|
cannam@95
|
9 LIBRARY_LIBS := -framework Accelerate
|
cannam@95
|
10
|
cannam@95
|
11 CFLAGS := $(ARCHFLAGS) $(OPTFLAGS)
|
cannam@95
|
12 LDFLAGS := $(ARCHFLAGS) -lpthread $(LDFLAGS)
|
cannam@95
|
13
|
cannam@95
|
14 PROGRAM_LIBS := -L/usr/local/lib -lsndfile $(LIBRARY_LIBS)
|
cannam@95
|
15 VAMP_PLUGIN_LIBS := -L/usr/local/lib -lvamp-sdk $(LIBRARY_LIBS)
|
cannam@95
|
16 LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS)
|
cannam@95
|
17
|
cannam@95
|
18 MKDIR := mkdir
|
cannam@95
|
19 AR := ar
|
cannam@95
|
20
|
cannam@95
|
21 DYNAMIC_LDFLAGS := -dynamiclib
|
cannam@95
|
22 DYNAMIC_EXTENSION := .dylib
|
cannam@95
|
23
|
cannam@95
|
24 PROGRAM_TARGET := bin/rubberband
|
cannam@95
|
25 STATIC_TARGET := lib/librubberband.a
|
cannam@95
|
26 DYNAMIC_TARGET := lib/librubberband$(DYNAMIC_EXTENSION)
|
cannam@95
|
27 VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION)
|
cannam@95
|
28 LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION)
|
cannam@95
|
29
|
cannam@95
|
30 default: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET)
|
cannam@95
|
31
|
cannam@95
|
32 all: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
|
cannam@95
|
33
|
cannam@95
|
34 static: $(STATIC_TARGET)
|
cannam@95
|
35 dynamic: $(DYNAMIC_TARGET)
|
cannam@95
|
36 library: $(STATIC_TARGET) $(DYNAMIC_TARGET)
|
cannam@95
|
37 program: $(PROGRAM_TARGET)
|
cannam@95
|
38 vamp: $(VAMP_TARGET)
|
cannam@95
|
39 ladspa: $(LADSPA_TARGET)
|
cannam@95
|
40
|
cannam@95
|
41 PUBLIC_INCLUDES := \
|
cannam@95
|
42 rubberband/rubberband-c.h \
|
cannam@95
|
43 rubberband/RubberBandStretcher.h
|
cannam@95
|
44
|
cannam@95
|
45 LIBRARY_INCLUDES := \
|
cannam@95
|
46 src/StretcherChannelData.h \
|
cannam@95
|
47 src/float_cast/float_cast.h \
|
cannam@95
|
48 src/StretcherImpl.h \
|
cannam@95
|
49 src/StretchCalculator.h \
|
cannam@95
|
50 src/base/Profiler.h \
|
cannam@95
|
51 src/base/RingBuffer.h \
|
cannam@95
|
52 src/base/Scavenger.h \
|
cannam@95
|
53 src/dsp/AudioCurveCalculator.h \
|
cannam@95
|
54 src/audiocurves/CompoundAudioCurve.h \
|
cannam@95
|
55 src/audiocurves/ConstantAudioCurve.h \
|
cannam@95
|
56 src/audiocurves/HighFrequencyAudioCurve.h \
|
cannam@95
|
57 src/audiocurves/PercussiveAudioCurve.h \
|
cannam@95
|
58 src/audiocurves/SilentAudioCurve.h \
|
cannam@95
|
59 src/audiocurves/SpectralDifferenceAudioCurve.h \
|
cannam@95
|
60 src/dsp/Resampler.h \
|
cannam@95
|
61 src/dsp/FFT.h \
|
cannam@95
|
62 src/dsp/MovingMedian.h \
|
cannam@95
|
63 src/dsp/SincWindow.h \
|
cannam@95
|
64 src/dsp/Window.h \
|
cannam@95
|
65 src/system/Allocators.h \
|
cannam@95
|
66 src/system/Thread.h \
|
cannam@95
|
67 src/system/VectorOps.h \
|
cannam@95
|
68 src/system/VectorOpsComplex.h \
|
cannam@95
|
69 src/system/sysutils.h
|
cannam@95
|
70
|
cannam@95
|
71 LIBRARY_SOURCES := \
|
cannam@95
|
72 src/rubberband-c.cpp \
|
cannam@95
|
73 src/RubberBandStretcher.cpp \
|
cannam@95
|
74 src/StretcherProcess.cpp \
|
cannam@95
|
75 src/StretchCalculator.cpp \
|
cannam@95
|
76 src/base/Profiler.cpp \
|
cannam@95
|
77 src/dsp/AudioCurveCalculator.cpp \
|
cannam@95
|
78 src/audiocurves/CompoundAudioCurve.cpp \
|
cannam@95
|
79 src/audiocurves/SpectralDifferenceAudioCurve.cpp \
|
cannam@95
|
80 src/audiocurves/HighFrequencyAudioCurve.cpp \
|
cannam@95
|
81 src/audiocurves/SilentAudioCurve.cpp \
|
cannam@95
|
82 src/audiocurves/ConstantAudioCurve.cpp \
|
cannam@95
|
83 src/audiocurves/PercussiveAudioCurve.cpp \
|
cannam@95
|
84 src/dsp/Resampler.cpp \
|
cannam@95
|
85 src/dsp/FFT.cpp \
|
cannam@95
|
86 src/system/Allocators.cpp \
|
cannam@95
|
87 src/system/sysutils.cpp \
|
cannam@95
|
88 src/system/Thread.cpp \
|
cannam@95
|
89 src/system/VectorOpsComplex.cpp \
|
cannam@95
|
90 src/StretcherChannelData.cpp \
|
cannam@95
|
91 src/StretcherImpl.cpp
|
cannam@95
|
92
|
cannam@95
|
93 # For Speex resampler -- comment these lines out if not specifying USE_SPEEX
|
cannam@95
|
94 LIBRARY_INCLUDES := $(LIBRARY_INCLUDES) \
|
cannam@95
|
95 src/speex/speex_resampler.h
|
cannam@95
|
96 LIBRARY_SOURCES := $(LIBRARY_SOURCES) \
|
cannam@95
|
97 src/speex/resample.c
|
cannam@95
|
98
|
cannam@95
|
99 PROGRAM_SOURCES := \
|
cannam@95
|
100 main/main.cpp
|
cannam@95
|
101
|
cannam@95
|
102 VAMP_HEADERS := \
|
cannam@95
|
103 vamp/RubberBandVampPlugin.h
|
cannam@95
|
104
|
cannam@95
|
105 VAMP_SOURCES := \
|
cannam@95
|
106 vamp/RubberBandVampPlugin.cpp \
|
cannam@95
|
107 vamp/libmain.cpp
|
cannam@95
|
108
|
cannam@95
|
109 LADSPA_HEADERS := \
|
cannam@95
|
110 ladspa/RubberBandPitchShifter.h
|
cannam@95
|
111
|
cannam@95
|
112 LADSPA_SOURCES := \
|
cannam@95
|
113 ladspa/RubberBandPitchShifter.cpp \
|
cannam@95
|
114 ladspa/libmain.cpp
|
cannam@95
|
115
|
cannam@95
|
116 LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
|
cannam@95
|
117 LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
|
cannam@95
|
118
|
cannam@95
|
119 PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o)
|
cannam@95
|
120 VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o)
|
cannam@95
|
121 LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o)
|
cannam@95
|
122
|
cannam@95
|
123 $(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS)
|
cannam@95
|
124 $(CXX) -o $@ $^ $(PROGRAM_LIBS) $(PROGRAM_LIBS) $(LDFLAGS)
|
cannam@95
|
125
|
cannam@95
|
126 $(STATIC_TARGET): $(LIBRARY_OBJECTS)
|
cannam@95
|
127 $(AR) rc $@ $^
|
cannam@95
|
128
|
cannam@95
|
129 $(DYNAMIC_TARGET): $(LIBRARY_OBJECTS)
|
cannam@95
|
130 $(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
|
cannam@95
|
131
|
cannam@95
|
132 $(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS)
|
cannam@95
|
133 $(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS)
|
cannam@95
|
134
|
cannam@95
|
135 $(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS)
|
cannam@95
|
136 $(CXX) $(LADSPA_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS)
|
cannam@95
|
137
|
cannam@95
|
138 bin:
|
cannam@95
|
139 $(MKDIR) $@
|
cannam@95
|
140 lib:
|
cannam@95
|
141 $(MKDIR) $@
|
cannam@95
|
142
|
cannam@95
|
143 clean:
|
cannam@95
|
144 rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS)
|
cannam@95
|
145
|
cannam@95
|
146 distclean: clean
|
cannam@95
|
147 rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
|
cannam@95
|
148
|
cannam@95
|
149 depend:
|
cannam@95
|
150 makedepend -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES)
|
cannam@95
|
151
|
cannam@95
|
152
|
cannam@95
|
153 # DO NOT DELETE
|
cannam@95
|
154
|
cannam@95
|
155 src/rubberband-c.o: rubberband/rubberband-c.h
|
cannam@95
|
156 src/rubberband-c.o: rubberband/RubberBandStretcher.h
|
cannam@95
|
157 src/RubberBandStretcher.o: src/StretcherImpl.h
|
cannam@95
|
158 src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h src/dsp/Window.h
|
cannam@95
|
159 src/RubberBandStretcher.o: src/dsp/FFT.h src/base/RingBuffer.h
|
cannam@95
|
160 src/RubberBandStretcher.o: src/base/Scavenger.h src/system/Thread.h
|
cannam@95
|
161 src/RubberBandStretcher.o: src/system/Thread.h src/system/sysutils.h
|
cannam@95
|
162 src/StretcherProcess.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h
|
cannam@95
|
163 src/StretcherProcess.o: src/dsp/Window.h src/dsp/FFT.h src/base/RingBuffer.h
|
cannam@95
|
164 src/StretcherProcess.o: src/base/Scavenger.h src/system/Thread.h
|
cannam@95
|
165 src/StretcherProcess.o: src/system/Thread.h src/system/sysutils.h
|
cannam@95
|
166 src/StretcherProcess.o: src/audiocurves/PercussiveAudioCurve.h
|
cannam@95
|
167 src/StretcherProcess.o: src/dsp/AudioCurveCalculator.h
|
cannam@95
|
168 src/StretcherProcess.o: src/audiocurves/HighFrequencyAudioCurve.h
|
cannam@95
|
169 src/StretcherProcess.o: src/audiocurves/ConstantAudioCurve.h src/StretchCalculator.h
|
cannam@95
|
170 src/StretcherProcess.o: src/StretcherChannelData.h src/dsp/Resampler.h
|
cannam@95
|
171 src/StretcherProcess.o: src/base/Profiler.h src/system/VectorOps.h
|
cannam@95
|
172 src/StretcherProcess.o: src/system/sysutils.h
|
cannam@95
|
173 src/StretchCalculator.o: src/StretchCalculator.h src/system/sysutils.h
|
cannam@95
|
174 src/system/Thread.o: src/system/Thread.h
|
cannam@95
|
175 src/base/Profiler.o: src/base/Profiler.h src/system/sysutils.h
|
cannam@95
|
176 src/dsp/AudioCurveCalculator.o: src/dsp/AudioCurveCalculator.h
|
cannam@95
|
177 src/dsp/AudioCurveCalculator.o: src/system/sysutils.h
|
cannam@95
|
178 src/audiocurves/SpectralDifferenceAudioCurve.o: src/audiocurves/SpectralDifferenceAudioCurve.h
|
cannam@95
|
179 src/audiocurves/SpectralDifferenceAudioCurve.o: src/dsp/AudioCurveCalculator.h
|
cannam@95
|
180 src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/sysutils.h
|
cannam@95
|
181 src/audiocurves/SpectralDifferenceAudioCurve.o: src/dsp/Window.h
|
cannam@95
|
182 src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/VectorOps.h
|
cannam@95
|
183 src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/sysutils.h
|
cannam@95
|
184 src/audiocurves/HighFrequencyAudioCurve.o: src/audiocurves/HighFrequencyAudioCurve.h
|
cannam@95
|
185 src/audiocurves/HighFrequencyAudioCurve.o: src/dsp/AudioCurveCalculator.h
|
cannam@95
|
186 src/audiocurves/HighFrequencyAudioCurve.o: src/system/sysutils.h
|
cannam@95
|
187 src/audiocurves/SilentAudioCurve.o: src/audiocurves/SilentAudioCurve.h
|
cannam@95
|
188 src/audiocurves/SilentAudioCurve.o: src/dsp/AudioCurveCalculator.h
|
cannam@95
|
189 src/audiocurves/SilentAudioCurve.o: src/system/sysutils.h
|
cannam@95
|
190 src/audiocurves/ConstantAudioCurve.o: src/audiocurves/ConstantAudioCurve.h
|
cannam@95
|
191 src/audiocurves/ConstantAudioCurve.o: src/dsp/AudioCurveCalculator.h
|
cannam@95
|
192 src/audiocurves/ConstantAudioCurve.o: src/system/sysutils.h
|
cannam@95
|
193 src/audiocurves/PercussiveAudioCurve.o: src/audiocurves/PercussiveAudioCurve.h
|
cannam@95
|
194 src/audiocurves/PercussiveAudioCurve.o: src/dsp/AudioCurveCalculator.h
|
cannam@95
|
195 src/audiocurves/PercussiveAudioCurve.o: src/system/sysutils.h src/system/VectorOps.h
|
cannam@95
|
196 src/audiocurves/PercussiveAudioCurve.o: src/system/sysutils.h
|
cannam@95
|
197 src/dsp/Resampler.o: src/dsp/Resampler.h src/system/sysutils.h
|
cannam@95
|
198 src/dsp/Resampler.o: src/base/Profiler.h
|
cannam@95
|
199 src/dsp/FFT.o: src/dsp/FFT.h src/system/sysutils.h src/system/Thread.h
|
cannam@95
|
200 src/dsp/FFT.o: src/base/Profiler.h src/system/VectorOps.h
|
cannam@95
|
201 src/dsp/FFT.o: src/system/sysutils.h
|
cannam@95
|
202 src/system/Allocators.o: src/system/Allocators.h src/system/VectorOps.h
|
cannam@95
|
203 src/system/Allocators.o: src/system/sysutils.h
|
cannam@95
|
204 src/system/sysutils.o: src/system/sysutils.h
|
cannam@95
|
205 src/StretcherChannelData.o: src/StretcherChannelData.h src/StretcherImpl.h
|
cannam@95
|
206 src/StretcherChannelData.o: rubberband/RubberBandStretcher.h src/dsp/Window.h
|
cannam@95
|
207 src/StretcherChannelData.o: src/dsp/FFT.h src/base/RingBuffer.h
|
cannam@95
|
208 src/StretcherChannelData.o: src/base/Scavenger.h src/system/Thread.h
|
cannam@95
|
209 src/StretcherChannelData.o: src/system/Thread.h src/system/sysutils.h
|
cannam@95
|
210 src/StretcherChannelData.o: src/dsp/Resampler.h src/system/Allocators.h
|
cannam@95
|
211 src/StretcherChannelData.o: src/system/VectorOps.h src/system/sysutils.h
|
cannam@95
|
212 src/StretcherImpl.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h
|
cannam@95
|
213 src/StretcherImpl.o: src/dsp/Window.h src/dsp/FFT.h src/base/RingBuffer.h
|
cannam@95
|
214 src/StretcherImpl.o: src/base/Scavenger.h src/system/Thread.h src/system/Thread.h
|
cannam@95
|
215 src/StretcherImpl.o: src/system/sysutils.h src/audiocurves/PercussiveAudioCurve.h
|
cannam@95
|
216 src/StretcherImpl.o: src/dsp/AudioCurveCalculator.h
|
cannam@95
|
217 src/StretcherImpl.o: src/audiocurves/HighFrequencyAudioCurve.h
|
cannam@95
|
218 src/StretcherImpl.o: src/audiocurves/SpectralDifferenceAudioCurve.h src/dsp/Window.h
|
cannam@95
|
219 src/StretcherImpl.o: src/system/VectorOps.h src/system/sysutils.h
|
cannam@95
|
220 src/StretcherImpl.o: src/audiocurves/SilentAudioCurve.h src/audiocurves/ConstantAudioCurve.h
|
cannam@95
|
221 src/StretcherImpl.o: src/dsp/Resampler.h src/StretchCalculator.h
|
cannam@95
|
222 src/StretcherImpl.o: src/StretcherChannelData.h src/base/Profiler.h
|
cannam@95
|
223 main/main.o: rubberband/RubberBandStretcher.h src/system/sysutils.h
|
cannam@95
|
224 main/main.o: src/base/Profiler.h
|