Rename Makefile.osx to Makefile.macos, make it arch-neutral, add a macos-universal variant that explicitly does x86_64 + arm64 build
This commit is contained in:
8
.github/workflows/macos-ios.yml
vendored
8
.github/workflows/macos-ios.yml
vendored
@@ -15,8 +15,12 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
- name: deps
|
||||
run: brew install libsndfile vamp-plugin-sdk
|
||||
- name: make macos
|
||||
run: make -f Makefile.osx clean library program vamp
|
||||
- name: make macos universal library
|
||||
run: make -f Makefile.macos-universal clean library
|
||||
- name: make macos native binaries
|
||||
# (these depend on things installed from Homebrew, which I think
|
||||
# doesn't install universal anything, so let's just make them native)
|
||||
run: make -f Makefile.macos program vamp
|
||||
- name: make ios
|
||||
run: make -f Makefile.ios clean all
|
||||
|
||||
|
||||
@@ -23,5 +23,5 @@ before_install:
|
||||
- if [[ "$TRAVIS_OS_NAME" = "osx" ]] ; then brew update ; brew install libsndfile ; fi
|
||||
|
||||
script:
|
||||
- if [[ "$TRAVIS_OS_NAME" = "osx" ]] ; then make -f Makefile.osx && make -f Makefile.ios clean && make -f Makefile.ios ; else ./configure && make ; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" = "osx" ]] ; then make -f Makefile.macos && make -f Makefile.ios clean && make -f Makefile.ios ; else ./configure && make ; fi
|
||||
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
PREFIX := /usr/local
|
||||
CXX := clang++ -stdlib=libc++
|
||||
CC := clang
|
||||
ARCHFLAGS := -arch x86_64 -mmacosx-version-min=10.7
|
||||
OPTFLAGS := -DNDEBUG -ffast-math -mfpmath=sse -msse -msse2 -O3 -ftree-vectorize
|
||||
|
||||
ARCHFLAGS := -mmacosx-version-min=10.7
|
||||
OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize
|
||||
|
||||
CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -I/usr/local/include -DUSE_PTHREADS -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DNO_THREAD_CHECKS -DNO_TIMING
|
||||
|
||||
264
Makefile.macos-universal
Normal file
264
Makefile.macos-universal
Normal file
@@ -0,0 +1,264 @@
|
||||
|
||||
PREFIX := /usr/local
|
||||
CXX := clang++ -stdlib=libc++
|
||||
CC := clang
|
||||
|
||||
ARCHFLAGS := -arch arm64 -arch x86_64 -mmacosx-version-min=10.7
|
||||
OPTFLAGS := -DNDEBUG -ffast-math -O3
|
||||
|
||||
CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -I/usr/local/include -DUSE_PTHREADS -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DNO_THREAD_CHECKS -DNO_TIMING
|
||||
|
||||
CFLAGS := $(ARCHFLAGS) $(OPTFLAGS)
|
||||
LDFLAGS := $(ARCHFLAGS) -lpthread $(LDFLAGS)
|
||||
|
||||
LIBRARY_LIBS := -framework Accelerate
|
||||
PROGRAM_LIBS := -L$(PREFIX)/lib -lsndfile $(LIBRARY_LIBS)
|
||||
VAMP_PLUGIN_LIBS := -L$(PREFIX)/lib -lvamp-sdk $(LIBRARY_LIBS)
|
||||
LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS)
|
||||
|
||||
MKDIR := mkdir
|
||||
AR := ar
|
||||
|
||||
INSTALL_BINDIR := $(PREFIX)/bin
|
||||
INSTALL_INCDIR := $(PREFIX)/include/rubberband
|
||||
INSTALL_LIBDIR := $(PREFIX)/lib
|
||||
INSTALL_VAMPDIR := $(PREFIX)/lib/vamp
|
||||
INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa
|
||||
INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf
|
||||
INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig
|
||||
|
||||
LIBNAME := librubberband
|
||||
|
||||
DYNAMIC_EXTENSION := .dylib
|
||||
DYNAMIC_FULL_VERSION := 2.1.2
|
||||
DYNAMIC_ABI_VERSION := 2
|
||||
DYNAMIC_LDFLAGS := -dynamiclib -install_name $(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION) -current_version $(DYNAMIC_FULL_VERSION) -compatibility_version $(DYNAMIC_ABI_VERSION)
|
||||
VAMP_LDFLAGS := -dynamiclib -install_name vamp-rubberband.dylib -exported_symbols_list vamp/vamp-plugin.list
|
||||
LADSPA_LDFLAGS := -dynamiclib -install_name ladspa-rubberband.dylib -exported_symbols_list ladspa/ladspa-plugin.list
|
||||
|
||||
PROGRAM_TARGET := bin/rubberband
|
||||
STATIC_TARGET := lib/$(LIBNAME).a
|
||||
DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION)
|
||||
LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION)
|
||||
|
||||
default: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET)
|
||||
|
||||
all: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
|
||||
|
||||
static: lib $(STATIC_TARGET)
|
||||
dynamic: lib $(DYNAMIC_TARGET)
|
||||
library: static dynamic
|
||||
program: bin $(PROGRAM_TARGET)
|
||||
vamp: lib $(VAMP_TARGET)
|
||||
ladspa: lib $(LADSPA_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
|
||||
|
||||
PROGRAM_SOURCES := \
|
||||
main/main.cpp
|
||||
|
||||
VAMP_HEADERS := \
|
||||
vamp/RubberBandVampPlugin.h
|
||||
|
||||
VAMP_SOURCES := \
|
||||
vamp/RubberBandVampPlugin.cpp \
|
||||
vamp/libmain.cpp
|
||||
|
||||
LADSPA_HEADERS := \
|
||||
ladspa/RubberBandPitchShifter.h
|
||||
|
||||
LADSPA_SOURCES := \
|
||||
ladspa/RubberBandPitchShifter.cpp \
|
||||
ladspa/libmain.cpp
|
||||
|
||||
LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
|
||||
LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
|
||||
|
||||
PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o)
|
||||
VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o)
|
||||
LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o)
|
||||
|
||||
$(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS)
|
||||
$(CXX) -o $@ $^ $(PROGRAM_LIBS) $(LDFLAGS)
|
||||
|
||||
$(STATIC_TARGET): $(LIBRARY_OBJECTS)
|
||||
rm -f $@
|
||||
$(AR) rsc $@ $^
|
||||
|
||||
$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS)
|
||||
$(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
|
||||
|
||||
$(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS)
|
||||
$(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS)
|
||||
|
||||
$(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS)
|
||||
$(CXX) $(LADSPA_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS)
|
||||
|
||||
bin:
|
||||
$(MKDIR) $@
|
||||
lib:
|
||||
$(MKDIR) $@
|
||||
|
||||
install: default
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_BINDIR)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_INCDIR)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_LIBDIR)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_VAMPDIR)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_LADSPADIR)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_LRDFDIR)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_PKGDIR)
|
||||
cp $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR)
|
||||
cp $(PUBLIC_INCLUDES) $(DESTDIR)$(INSTALL_INCDIR)
|
||||
cp $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)
|
||||
rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION)
|
||||
rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION)
|
||||
ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION)
|
||||
ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR)
|
||||
cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR)
|
||||
cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR)
|
||||
cp ladspa/ladspa-rubberband.cat $(DESTDIR)$(INSTALL_LADSPADIR)
|
||||
cp ladspa/ladspa-rubberband.rdf $(DESTDIR)$(INSTALL_LRDFDIR)
|
||||
sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \
|
||||
> $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc
|
||||
|
||||
clean:
|
||||
rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
|
||||
|
||||
depend:
|
||||
makedepend -f Makefile.osx -Y $(LIBRARY_SOURCES) $(PROGRAM_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/FFT.h src/base/RingBuffer.h
|
||||
src/RubberBandStretcher.o: src/base/Scavenger.h src/system/Thread.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/FFT.h src/base/RingBuffer.h
|
||||
src/StretcherProcess.o: src/base/Scavenger.h src/system/Thread.h
|
||||
src/StretcherProcess.o: src/system/Thread.h src/system/sysutils.h
|
||||
src/StretcherProcess.o: src/audiocurves/PercussiveAudioCurve.h
|
||||
src/StretcherProcess.o: src/dsp/AudioCurveCalculator.h
|
||||
src/StretcherProcess.o: src/audiocurves/HighFrequencyAudioCurve.h
|
||||
src/StretcherProcess.o: src/audiocurves/ConstantAudioCurve.h src/StretchCalculator.h
|
||||
src/StretcherProcess.o: src/StretcherChannelData.h src/dsp/Resampler.h
|
||||
src/StretcherProcess.o: src/base/Profiler.h src/system/VectorOps.h
|
||||
src/StretcherProcess.o: src/system/sysutils.h
|
||||
src/StretchCalculator.o: src/StretchCalculator.h src/system/sysutils.h
|
||||
src/system/Thread.o: src/system/Thread.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/SpectralDifferenceAudioCurve.o: src/audiocurves/SpectralDifferenceAudioCurve.h
|
||||
src/audiocurves/SpectralDifferenceAudioCurve.o: src/dsp/AudioCurveCalculator.h
|
||||
src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/sysutils.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/HighFrequencyAudioCurve.o: src/dsp/AudioCurveCalculator.h
|
||||
src/audiocurves/HighFrequencyAudioCurve.o: src/system/sysutils.h
|
||||
src/audiocurves/SilentAudioCurve.o: src/audiocurves/SilentAudioCurve.h
|
||||
src/audiocurves/SilentAudioCurve.o: src/dsp/AudioCurveCalculator.h
|
||||
src/audiocurves/SilentAudioCurve.o: src/system/sysutils.h
|
||||
src/audiocurves/ConstantAudioCurve.o: src/audiocurves/ConstantAudioCurve.h
|
||||
src/audiocurves/ConstantAudioCurve.o: src/dsp/AudioCurveCalculator.h
|
||||
src/audiocurves/ConstantAudioCurve.o: src/system/sysutils.h
|
||||
src/audiocurves/PercussiveAudioCurve.o: src/audiocurves/PercussiveAudioCurve.h
|
||||
src/audiocurves/PercussiveAudioCurve.o: src/dsp/AudioCurveCalculator.h
|
||||
src/audiocurves/PercussiveAudioCurve.o: src/system/sysutils.h 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/StretcherChannelData.o: src/StretcherChannelData.h src/StretcherImpl.h
|
||||
src/StretcherChannelData.o: rubberband/RubberBandStretcher.h src/dsp/Window.h
|
||||
src/StretcherChannelData.o: src/dsp/FFT.h src/base/RingBuffer.h
|
||||
src/StretcherChannelData.o: src/base/Scavenger.h src/system/Thread.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/FFT.h src/base/RingBuffer.h
|
||||
src/StretcherImpl.o: src/base/Scavenger.h src/system/Thread.h src/system/Thread.h
|
||||
src/StretcherImpl.o: src/system/sysutils.h src/audiocurves/PercussiveAudioCurve.h
|
||||
src/StretcherImpl.o: src/dsp/AudioCurveCalculator.h
|
||||
src/StretcherImpl.o: src/audiocurves/HighFrequencyAudioCurve.h
|
||||
src/StretcherImpl.o: src/audiocurves/SpectralDifferenceAudioCurve.h src/dsp/Window.h
|
||||
src/StretcherImpl.o: src/system/VectorOps.h src/system/sysutils.h
|
||||
src/StretcherImpl.o: src/audiocurves/SilentAudioCurve.h src/audiocurves/ConstantAudioCurve.h
|
||||
src/StretcherImpl.o: src/dsp/Resampler.h src/StretchCalculator.h
|
||||
src/StretcherImpl.o: src/StretcherChannelData.h src/base/Profiler.h
|
||||
main/main.o: rubberband/RubberBandStretcher.h src/system/sysutils.h
|
||||
main/main.o: src/base/Profiler.h
|
||||
27
README.md
27
README.md
@@ -272,16 +272,23 @@ The default target is "all".
|
||||
|
||||
### 4d. Building on macOS
|
||||
|
||||
A Makefile for macOS is provided as `Makefile.osx`.
|
||||
Two Makefiles for macOS are provided, as `Makefile.macos` and
|
||||
`Makefile.macos-universal`. `Makefile.macos` will build for your
|
||||
native machine architecture; `Makefile.macos-universal` will build a
|
||||
universal binary with both x86_64 and arm64 slices. The latter
|
||||
requires macOS 11+, although the resulting binaries should work with
|
||||
macOS 10.7 or newer if all the dependent libraries are also built
|
||||
appropriately. You will also need the Xcode command-line tools
|
||||
installed.
|
||||
|
||||
Adjust the Makefile according to your preference for compiler and
|
||||
platform SDK, FFT and resampler implementations. The default is to
|
||||
use the Accelerate framework and the Speex resampler. Then run
|
||||
e.g. `make -f Makefile.osx library` in a terminal window to build.
|
||||
You will need the Xcode command-line tools installed.
|
||||
Adjust your selected Makefile according to your preference for
|
||||
compiler and platform SDK, FFT and resampler implementations. The
|
||||
default is to use the Accelerate framework and the Speex resampler.
|
||||
Then run e.g. `make -f Makefile.macos library` in a terminal window to
|
||||
build.
|
||||
|
||||
(You probably don't want to use the configure script on macOS -- just
|
||||
use `Makefile.osx` directly.)
|
||||
use your preferred Makefile directly.)
|
||||
|
||||
The following Makefile targets are available:
|
||||
|
||||
@@ -311,9 +318,9 @@ commercial terms.
|
||||
|
||||
### 4e. Building for iOS
|
||||
|
||||
A Makefile for iOS is provided as `Makefile.ios`. It produces a
|
||||
single static library containing both simulator and device binaries,
|
||||
in both 32- and 64-bit architectures.
|
||||
A Makefile for iOS (compiling on macOS) is provided as `Makefile.ios`.
|
||||
It produces a single static library containing both simulator and
|
||||
device binaries, in both 32- and 64-bit architectures.
|
||||
|
||||
Run e.g. `make -f Makefile.ios` in a terminal window to build. You
|
||||
will need the Xcode command-line tools installed.
|
||||
|
||||
Reference in New Issue
Block a user