cannam@95: cannam@95: CXX := g++ cannam@95: CC := gcc cannam@95: ARCHFLAGS := cannam@95: OPTFLAGS := -DNDEBUG -ffast-math -mfpmath=sse -msse -msse2 -O3 -ftree-vectorize cannam@95: cannam@95: 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: cannam@95: LIBRARY_LIBS := -framework Accelerate cannam@95: cannam@95: CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) cannam@95: LDFLAGS := $(ARCHFLAGS) -lpthread $(LDFLAGS) cannam@95: cannam@95: PROGRAM_LIBS := -L/usr/local/lib -lsndfile $(LIBRARY_LIBS) cannam@95: VAMP_PLUGIN_LIBS := -L/usr/local/lib -lvamp-sdk $(LIBRARY_LIBS) cannam@95: LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS) cannam@95: cannam@95: MKDIR := mkdir cannam@95: AR := ar cannam@95: cannam@95: DYNAMIC_LDFLAGS := -dynamiclib cannam@95: DYNAMIC_EXTENSION := .dylib cannam@95: cannam@95: PROGRAM_TARGET := bin/rubberband cannam@95: STATIC_TARGET := lib/librubberband.a cannam@95: DYNAMIC_TARGET := lib/librubberband$(DYNAMIC_EXTENSION) cannam@95: VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION) cannam@95: LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION) cannam@95: cannam@95: default: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) cannam@95: cannam@95: all: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) cannam@95: cannam@95: static: $(STATIC_TARGET) cannam@95: dynamic: $(DYNAMIC_TARGET) cannam@95: library: $(STATIC_TARGET) $(DYNAMIC_TARGET) cannam@95: program: $(PROGRAM_TARGET) cannam@95: vamp: $(VAMP_TARGET) cannam@95: ladspa: $(LADSPA_TARGET) cannam@95: cannam@95: PUBLIC_INCLUDES := \ cannam@95: rubberband/rubberband-c.h \ cannam@95: rubberband/RubberBandStretcher.h cannam@95: cannam@95: LIBRARY_INCLUDES := \ cannam@95: src/StretcherChannelData.h \ cannam@95: src/float_cast/float_cast.h \ cannam@95: src/StretcherImpl.h \ cannam@95: src/StretchCalculator.h \ cannam@95: src/base/Profiler.h \ cannam@95: src/base/RingBuffer.h \ cannam@95: src/base/Scavenger.h \ cannam@95: src/dsp/AudioCurveCalculator.h \ cannam@95: src/audiocurves/CompoundAudioCurve.h \ cannam@95: src/audiocurves/ConstantAudioCurve.h \ cannam@95: src/audiocurves/HighFrequencyAudioCurve.h \ cannam@95: src/audiocurves/PercussiveAudioCurve.h \ cannam@95: src/audiocurves/SilentAudioCurve.h \ cannam@95: src/audiocurves/SpectralDifferenceAudioCurve.h \ cannam@95: src/dsp/Resampler.h \ cannam@95: src/dsp/FFT.h \ cannam@95: src/dsp/MovingMedian.h \ cannam@95: src/dsp/SincWindow.h \ cannam@95: src/dsp/Window.h \ cannam@95: src/system/Allocators.h \ cannam@95: src/system/Thread.h \ cannam@95: src/system/VectorOps.h \ cannam@95: src/system/VectorOpsComplex.h \ cannam@95: src/system/sysutils.h cannam@95: cannam@95: LIBRARY_SOURCES := \ cannam@95: src/rubberband-c.cpp \ cannam@95: src/RubberBandStretcher.cpp \ cannam@95: src/StretcherProcess.cpp \ cannam@95: src/StretchCalculator.cpp \ cannam@95: src/base/Profiler.cpp \ cannam@95: src/dsp/AudioCurveCalculator.cpp \ cannam@95: src/audiocurves/CompoundAudioCurve.cpp \ cannam@95: src/audiocurves/SpectralDifferenceAudioCurve.cpp \ cannam@95: src/audiocurves/HighFrequencyAudioCurve.cpp \ cannam@95: src/audiocurves/SilentAudioCurve.cpp \ cannam@95: src/audiocurves/ConstantAudioCurve.cpp \ cannam@95: src/audiocurves/PercussiveAudioCurve.cpp \ cannam@95: src/dsp/Resampler.cpp \ cannam@95: src/dsp/FFT.cpp \ cannam@95: src/system/Allocators.cpp \ cannam@95: src/system/sysutils.cpp \ cannam@95: src/system/Thread.cpp \ cannam@95: src/system/VectorOpsComplex.cpp \ cannam@95: src/StretcherChannelData.cpp \ cannam@95: src/StretcherImpl.cpp cannam@95: cannam@95: # For Speex resampler -- comment these lines out if not specifying USE_SPEEX cannam@95: LIBRARY_INCLUDES := $(LIBRARY_INCLUDES) \ cannam@95: src/speex/speex_resampler.h cannam@95: LIBRARY_SOURCES := $(LIBRARY_SOURCES) \ cannam@95: src/speex/resample.c cannam@95: cannam@95: PROGRAM_SOURCES := \ cannam@95: main/main.cpp cannam@95: cannam@95: VAMP_HEADERS := \ cannam@95: vamp/RubberBandVampPlugin.h cannam@95: cannam@95: VAMP_SOURCES := \ cannam@95: vamp/RubberBandVampPlugin.cpp \ cannam@95: vamp/libmain.cpp cannam@95: cannam@95: LADSPA_HEADERS := \ cannam@95: ladspa/RubberBandPitchShifter.h cannam@95: cannam@95: LADSPA_SOURCES := \ cannam@95: ladspa/RubberBandPitchShifter.cpp \ cannam@95: ladspa/libmain.cpp cannam@95: cannam@95: LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o) cannam@95: LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o) cannam@95: cannam@95: PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o) cannam@95: VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o) cannam@95: LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o) cannam@95: cannam@95: $(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) cannam@95: $(CXX) -o $@ $^ $(PROGRAM_LIBS) $(PROGRAM_LIBS) $(LDFLAGS) cannam@95: cannam@95: $(STATIC_TARGET): $(LIBRARY_OBJECTS) cannam@95: $(AR) rc $@ $^ cannam@95: cannam@95: $(DYNAMIC_TARGET): $(LIBRARY_OBJECTS) cannam@95: $(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS) cannam@95: cannam@95: $(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS) cannam@95: $(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS) cannam@95: cannam@95: $(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS) cannam@95: $(CXX) $(LADSPA_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS) cannam@95: cannam@95: bin: cannam@95: $(MKDIR) $@ cannam@95: lib: cannam@95: $(MKDIR) $@ cannam@95: cannam@95: clean: cannam@95: rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS) cannam@95: cannam@95: distclean: clean cannam@95: rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) cannam@95: cannam@95: depend: cannam@95: makedepend -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) cannam@95: cannam@95: cannam@95: # DO NOT DELETE cannam@95: cannam@95: src/rubberband-c.o: rubberband/rubberband-c.h cannam@95: src/rubberband-c.o: rubberband/RubberBandStretcher.h cannam@95: src/RubberBandStretcher.o: src/StretcherImpl.h cannam@95: src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h src/dsp/Window.h cannam@95: src/RubberBandStretcher.o: src/dsp/FFT.h src/base/RingBuffer.h cannam@95: src/RubberBandStretcher.o: src/base/Scavenger.h src/system/Thread.h cannam@95: src/RubberBandStretcher.o: src/system/Thread.h src/system/sysutils.h cannam@95: src/StretcherProcess.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h cannam@95: src/StretcherProcess.o: src/dsp/Window.h src/dsp/FFT.h src/base/RingBuffer.h cannam@95: src/StretcherProcess.o: src/base/Scavenger.h src/system/Thread.h cannam@95: src/StretcherProcess.o: src/system/Thread.h src/system/sysutils.h cannam@95: src/StretcherProcess.o: src/audiocurves/PercussiveAudioCurve.h cannam@95: src/StretcherProcess.o: src/dsp/AudioCurveCalculator.h cannam@95: src/StretcherProcess.o: src/audiocurves/HighFrequencyAudioCurve.h cannam@95: src/StretcherProcess.o: src/audiocurves/ConstantAudioCurve.h src/StretchCalculator.h cannam@95: src/StretcherProcess.o: src/StretcherChannelData.h src/dsp/Resampler.h cannam@95: src/StretcherProcess.o: src/base/Profiler.h src/system/VectorOps.h cannam@95: src/StretcherProcess.o: src/system/sysutils.h cannam@95: src/StretchCalculator.o: src/StretchCalculator.h src/system/sysutils.h cannam@95: src/system/Thread.o: src/system/Thread.h cannam@95: src/base/Profiler.o: src/base/Profiler.h src/system/sysutils.h cannam@95: src/dsp/AudioCurveCalculator.o: src/dsp/AudioCurveCalculator.h cannam@95: src/dsp/AudioCurveCalculator.o: src/system/sysutils.h cannam@95: src/audiocurves/SpectralDifferenceAudioCurve.o: src/audiocurves/SpectralDifferenceAudioCurve.h cannam@95: src/audiocurves/SpectralDifferenceAudioCurve.o: src/dsp/AudioCurveCalculator.h cannam@95: src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/sysutils.h cannam@95: src/audiocurves/SpectralDifferenceAudioCurve.o: src/dsp/Window.h cannam@95: src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/VectorOps.h cannam@95: src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/sysutils.h cannam@95: src/audiocurves/HighFrequencyAudioCurve.o: src/audiocurves/HighFrequencyAudioCurve.h cannam@95: src/audiocurves/HighFrequencyAudioCurve.o: src/dsp/AudioCurveCalculator.h cannam@95: src/audiocurves/HighFrequencyAudioCurve.o: src/system/sysutils.h cannam@95: src/audiocurves/SilentAudioCurve.o: src/audiocurves/SilentAudioCurve.h cannam@95: src/audiocurves/SilentAudioCurve.o: src/dsp/AudioCurveCalculator.h cannam@95: src/audiocurves/SilentAudioCurve.o: src/system/sysutils.h cannam@95: src/audiocurves/ConstantAudioCurve.o: src/audiocurves/ConstantAudioCurve.h cannam@95: src/audiocurves/ConstantAudioCurve.o: src/dsp/AudioCurveCalculator.h cannam@95: src/audiocurves/ConstantAudioCurve.o: src/system/sysutils.h cannam@95: src/audiocurves/PercussiveAudioCurve.o: src/audiocurves/PercussiveAudioCurve.h cannam@95: src/audiocurves/PercussiveAudioCurve.o: src/dsp/AudioCurveCalculator.h cannam@95: src/audiocurves/PercussiveAudioCurve.o: src/system/sysutils.h src/system/VectorOps.h cannam@95: src/audiocurves/PercussiveAudioCurve.o: src/system/sysutils.h cannam@95: src/dsp/Resampler.o: src/dsp/Resampler.h src/system/sysutils.h cannam@95: src/dsp/Resampler.o: src/base/Profiler.h cannam@95: src/dsp/FFT.o: src/dsp/FFT.h src/system/sysutils.h src/system/Thread.h cannam@95: src/dsp/FFT.o: src/base/Profiler.h src/system/VectorOps.h cannam@95: src/dsp/FFT.o: src/system/sysutils.h cannam@95: src/system/Allocators.o: src/system/Allocators.h src/system/VectorOps.h cannam@95: src/system/Allocators.o: src/system/sysutils.h cannam@95: src/system/sysutils.o: src/system/sysutils.h cannam@95: src/StretcherChannelData.o: src/StretcherChannelData.h src/StretcherImpl.h cannam@95: src/StretcherChannelData.o: rubberband/RubberBandStretcher.h src/dsp/Window.h cannam@95: src/StretcherChannelData.o: src/dsp/FFT.h src/base/RingBuffer.h cannam@95: src/StretcherChannelData.o: src/base/Scavenger.h src/system/Thread.h cannam@95: src/StretcherChannelData.o: src/system/Thread.h src/system/sysutils.h cannam@95: src/StretcherChannelData.o: src/dsp/Resampler.h src/system/Allocators.h cannam@95: src/StretcherChannelData.o: src/system/VectorOps.h src/system/sysutils.h cannam@95: src/StretcherImpl.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h cannam@95: src/StretcherImpl.o: src/dsp/Window.h src/dsp/FFT.h src/base/RingBuffer.h cannam@95: src/StretcherImpl.o: src/base/Scavenger.h src/system/Thread.h src/system/Thread.h cannam@95: src/StretcherImpl.o: src/system/sysutils.h src/audiocurves/PercussiveAudioCurve.h cannam@95: src/StretcherImpl.o: src/dsp/AudioCurveCalculator.h cannam@95: src/StretcherImpl.o: src/audiocurves/HighFrequencyAudioCurve.h cannam@95: src/StretcherImpl.o: src/audiocurves/SpectralDifferenceAudioCurve.h src/dsp/Window.h cannam@95: src/StretcherImpl.o: src/system/VectorOps.h src/system/sysutils.h cannam@95: src/StretcherImpl.o: src/audiocurves/SilentAudioCurve.h src/audiocurves/ConstantAudioCurve.h cannam@95: src/StretcherImpl.o: src/dsp/Resampler.h src/StretchCalculator.h cannam@95: src/StretcherImpl.o: src/StretcherChannelData.h src/base/Profiler.h cannam@95: main/main.o: rubberband/RubberBandStretcher.h src/system/sysutils.h cannam@95: main/main.o: src/base/Profiler.h