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