diff --git a/Makefile.ios b/Makefile.ios new file mode 100644 index 0000000..6f4bf83 --- /dev/null +++ b/Makefile.ios @@ -0,0 +1,187 @@ + +CXX := clang++ +CC := clang +ARCHFLAGS := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -miphoneos-version-min=6 -arch armv7 -arch arm64 +OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize + +CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DUSE_POMMIER_MATHFUN -DNO_THREADING -DNO_THREAD_CHECKS -DNO_TIMING + +CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) + +AR := ar + +LIBNAME := librubberband + +STATIC_TARGET := lib/$(LIBNAME).a + +default: bin lib $(STATIC_TARGET) + +all: bin lib $(STATIC_TARGET) + +static: $(STATIC_TARGET) + +PUBLIC_INCLUDES := \ + rubberband/rubberband-c.h \ + rubberband/RubberBandStretcher.h + +LIBRARY_INCLUDES := \ + src/StretcherChannelData.h \ + src/float_cast/float_cast.h \ + src/StretcherImpl.h \ + src/StretchCalculator.h \ + src/base/Profiler.h \ + src/base/RingBuffer.h \ + src/base/Scavenger.h \ + src/dsp/AudioCurveCalculator.h \ + src/audiocurves/CompoundAudioCurve.h \ + src/audiocurves/ConstantAudioCurve.h \ + src/audiocurves/HighFrequencyAudioCurve.h \ + src/audiocurves/PercussiveAudioCurve.h \ + src/audiocurves/SilentAudioCurve.h \ + src/audiocurves/SpectralDifferenceAudioCurve.h \ + src/dsp/Resampler.h \ + src/dsp/FFT.h \ + src/dsp/MovingMedian.h \ + src/dsp/SincWindow.h \ + src/dsp/Window.h \ + src/system/Allocators.h \ + src/system/Thread.h \ + src/system/VectorOps.h \ + src/system/VectorOpsComplex.h \ + src/system/sysutils.h + +LIBRARY_SOURCES := \ + src/rubberband-c.cpp \ + src/RubberBandStretcher.cpp \ + src/StretcherProcess.cpp \ + src/StretchCalculator.cpp \ + src/base/Profiler.cpp \ + src/dsp/AudioCurveCalculator.cpp \ + src/audiocurves/CompoundAudioCurve.cpp \ + src/audiocurves/SpectralDifferenceAudioCurve.cpp \ + src/audiocurves/HighFrequencyAudioCurve.cpp \ + src/audiocurves/SilentAudioCurve.cpp \ + src/audiocurves/ConstantAudioCurve.cpp \ + src/audiocurves/PercussiveAudioCurve.cpp \ + src/dsp/Resampler.cpp \ + src/dsp/FFT.cpp \ + src/system/Allocators.cpp \ + src/system/sysutils.cpp \ + src/system/Thread.cpp \ + src/system/VectorOpsComplex.cpp \ + src/StretcherChannelData.cpp \ + src/StretcherImpl.cpp + +# For Speex resampler -- comment these lines out if not specifying USE_SPEEX +LIBRARY_INCLUDES := $(LIBRARY_INCLUDES) \ + src/speex/speex_resampler.h +LIBRARY_SOURCES := $(LIBRARY_SOURCES) \ + src/speex/resample.c + +LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o) +LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o) + +$(STATIC_TARGET): $(LIBRARY_OBJECTS) + rm -f $@ + $(AR) rsc $@ $^ + @echo + @echo "Build complete." + @echo + @echo "Please note that you cannot legally distribute the Rubber Band Library in an" + @echo "iOS app on the App Store, unless you have first obtained a commercial licence." + @echo + +bin: + $(MKDIR) $@ +lib: + $(MKDIR) $@ + +clean: + rm -f $(LIBRARY_OBJECTS) + +distclean: clean + rm -f $(STATIC_TARGET) + +depend: + makedepend -f Makefile.ios -Y $(LIBRARY_SOURCES) + + +# DO NOT DELETE + +src/rubberband-c.o: rubberband/rubberband-c.h +src/rubberband-c.o: rubberband/RubberBandStretcher.h +src/RubberBandStretcher.o: src/StretcherImpl.h +src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h src/dsp/Window.h +src/RubberBandStretcher.o: src/dsp/SincWindow.h src/dsp/FFT.h +src/RubberBandStretcher.o: src/audiocurves/CompoundAudioCurve.h +src/RubberBandStretcher.o: src/audiocurves/PercussiveAudioCurve.h +src/RubberBandStretcher.o: src/audiocurves/HighFrequencyAudioCurve.h +src/RubberBandStretcher.o: src/base/RingBuffer.h src/base/Scavenger.h +src/RubberBandStretcher.o: src/system/Thread.h src/system/sysutils.h +src/StretcherProcess.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h +src/StretcherProcess.o: src/dsp/Window.h src/dsp/SincWindow.h src/dsp/FFT.h +src/StretcherProcess.o: src/audiocurves/CompoundAudioCurve.h +src/StretcherProcess.o: src/audiocurves/PercussiveAudioCurve.h +src/StretcherProcess.o: src/audiocurves/HighFrequencyAudioCurve.h +src/StretcherProcess.o: src/base/RingBuffer.h src/base/Scavenger.h +src/StretcherProcess.o: src/system/Thread.h src/system/sysutils.h +src/StretcherProcess.o: src/audiocurves/PercussiveAudioCurve.h +src/StretcherProcess.o: src/audiocurves/HighFrequencyAudioCurve.h +src/StretcherProcess.o: src/audiocurves/ConstantAudioCurve.h +src/StretcherProcess.o: src/StretchCalculator.h src/StretcherChannelData.h +src/StretcherProcess.o: src/dsp/Resampler.h src/base/Profiler.h +src/StretcherProcess.o: src/system/VectorOps.h src/system/sysutils.h +src/StretchCalculator.o: src/StretchCalculator.h src/system/sysutils.h +src/base/Profiler.o: src/base/Profiler.h src/system/sysutils.h +src/dsp/AudioCurveCalculator.o: src/dsp/AudioCurveCalculator.h +src/dsp/AudioCurveCalculator.o: src/system/sysutils.h +src/audiocurves/CompoundAudioCurve.o: src/audiocurves/CompoundAudioCurve.h +src/audiocurves/CompoundAudioCurve.o: src/audiocurves/PercussiveAudioCurve.h +src/audiocurves/CompoundAudioCurve.o: src/audiocurves/HighFrequencyAudioCurve.h +src/audiocurves/SpectralDifferenceAudioCurve.o: src/audiocurves/SpectralDifferenceAudioCurve.h +src/audiocurves/SpectralDifferenceAudioCurve.o: src/dsp/Window.h +src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/VectorOps.h +src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/sysutils.h +src/audiocurves/HighFrequencyAudioCurve.o: src/audiocurves/HighFrequencyAudioCurve.h +src/audiocurves/SilentAudioCurve.o: src/audiocurves/SilentAudioCurve.h +src/audiocurves/ConstantAudioCurve.o: src/audiocurves/ConstantAudioCurve.h +src/audiocurves/PercussiveAudioCurve.o: src/audiocurves/PercussiveAudioCurve.h +src/audiocurves/PercussiveAudioCurve.o: src/system/VectorOps.h +src/audiocurves/PercussiveAudioCurve.o: src/system/sysutils.h +src/dsp/Resampler.o: src/dsp/Resampler.h src/system/sysutils.h +src/dsp/Resampler.o: src/base/Profiler.h +src/dsp/FFT.o: src/dsp/FFT.h src/system/sysutils.h src/system/Thread.h +src/dsp/FFT.o: src/base/Profiler.h src/system/VectorOps.h +src/dsp/FFT.o: src/system/sysutils.h +src/system/Allocators.o: src/system/Allocators.h src/system/VectorOps.h +src/system/Allocators.o: src/system/sysutils.h +src/system/sysutils.o: src/system/sysutils.h +src/system/Thread.o: src/system/Thread.h +src/system/VectorOpsComplex.o: src/system/VectorOpsComplex.h +src/system/VectorOpsComplex.o: src/system/VectorOps.h src/system/sysutils.h +src/system/VectorOpsComplex.o: src/system/sysutils.h +src/StretcherChannelData.o: src/StretcherChannelData.h src/StretcherImpl.h +src/StretcherChannelData.o: rubberband/RubberBandStretcher.h src/dsp/Window.h +src/StretcherChannelData.o: src/dsp/SincWindow.h src/dsp/FFT.h +src/StretcherChannelData.o: src/audiocurves/CompoundAudioCurve.h +src/StretcherChannelData.o: src/audiocurves/PercussiveAudioCurve.h +src/StretcherChannelData.o: src/audiocurves/HighFrequencyAudioCurve.h +src/StretcherChannelData.o: src/base/RingBuffer.h src/base/Scavenger.h +src/StretcherChannelData.o: src/system/Thread.h src/system/sysutils.h +src/StretcherChannelData.o: src/dsp/Resampler.h src/system/Allocators.h +src/StretcherChannelData.o: src/system/VectorOps.h src/system/sysutils.h +src/StretcherImpl.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h +src/StretcherImpl.o: src/dsp/Window.h src/dsp/SincWindow.h src/dsp/FFT.h +src/StretcherImpl.o: src/audiocurves/CompoundAudioCurve.h +src/StretcherImpl.o: src/audiocurves/PercussiveAudioCurve.h +src/StretcherImpl.o: src/audiocurves/HighFrequencyAudioCurve.h +src/StretcherImpl.o: src/base/RingBuffer.h src/base/Scavenger.h +src/StretcherImpl.o: src/system/Thread.h src/system/sysutils.h +src/StretcherImpl.o: src/audiocurves/PercussiveAudioCurve.h +src/StretcherImpl.o: src/audiocurves/HighFrequencyAudioCurve.h +src/StretcherImpl.o: src/audiocurves/SpectralDifferenceAudioCurve.h +src/StretcherImpl.o: src/audiocurves/SilentAudioCurve.h +src/StretcherImpl.o: src/audiocurves/ConstantAudioCurve.h src/dsp/Resampler.h +src/StretcherImpl.o: src/StretchCalculator.h src/StretcherChannelData.h +src/StretcherImpl.o: src/base/Profiler.h +src/speex/resample.o: src/speex/speex_resampler.h diff --git a/Makefile.osx b/Makefile.osx index 6c2dc9c..aeb5226 100644 --- a/Makefile.osx +++ b/Makefile.osx @@ -183,7 +183,7 @@ distclean: clean rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) depend: - makedepend -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) + makedepend -f Makefile.osx -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) # DO NOT DELETE diff --git a/src/system/VectorOpsComplex.cpp b/src/system/VectorOpsComplex.cpp index 8bd9729..87f54bd 100644 --- a/src/system/VectorOpsComplex.cpp +++ b/src/system/VectorOpsComplex.cpp @@ -28,7 +28,7 @@ #include #if defined USE_POMMIER_MATHFUN -#if defined __ARMEL__ +#if defined __ARMEL__ || defined __aarch64__ #include "pommier/neon_mathfun.h" #else #include "pommier/sse_mathfun.h" @@ -71,7 +71,7 @@ float approximate_atan2f(float real, float imag) #if defined USE_POMMIER_MATHFUN -#ifdef __ARMEL__ +#if defined __ARMEL__ || defined __aarch64__ typedef union { float f[4]; int i[4];