configured for Xcode7 w/ the 9.2 sdk:
save this file as something like build.sh and run chmod a+x build.sh
export PREFIX="$(pwd)/nanomsg-ios"
export IOS32_PREFIX="$PREFIX/tmp/ios32"
export IOS64_PREFIX="$PREFIX/tmp/ios64"
export SIMULATOR32_PREFIX="$PREFIX/tmp/simulator32"
export SIMULATOR64_PREFIX="$PREFIX/tmp/simulator64"
export IOS_SIMULATOR_VERSION_MIN=${IOS_SIMULATOR_VERSION_MIN-"7.1"}
export IOS_VERSION_MIN=${IOS_VERSION_MIN-"7.1"}
export XCODEDIR=$(xcode-select -p)
rm -rf nanomsg nanomsg-ios
git clone git@github.com:nanomsg/nanomsg.git
cd nanomsg && ./autogen.sh
### i386 simulator
# Build
export BASEDIR="${XCODEDIR}/Platforms/iPhoneSimulator.platform/Developer"
export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH"
export SDK="${BASEDIR}/SDKs/iPhoneSimulator9.2.sdk"
export CFLAGS="-O2 -arch i386 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"
export LDFLAGS="-arch i386 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"
make distclean > /dev/null
./configure --disable-shared \
--enable-minimal \
--prefix="$SIMULATOR32_PREFIX" || exit 1
make -j3 install || exit 1
### x86_64 simulator
export CFLAGS="-O2 -arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"
export LDFLAGS="-arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"
make distclean > /dev/null
./configure --disable-shared \
--enable-minimal \
--prefix="$SIMULATOR64_PREFIX"
make -j3 install || exit 1
# Build for iOS
# Build
export BASEDIR="${XCODEDIR}/Platforms/iPhoneOS.platform/Developer"
export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH"
export SDK="${BASEDIR}/SDKs/iPhoneOS.sdk"
### 32-bit iOS
export CFLAGS="-Oz -mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -fembed-bitcode"
export LDFLAGS="-mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -fembed-bitcode"
make distclean > /dev/null
./configure --host=arm-apple-darwin10 \
--disable-shared \
--enable-minimal \
--prefix="$IOS32_PREFIX" || exit 1
make -j3 install || exit 1
## 64-bit iOS
#-fobjc-abi-version=2
export SDK="${BASEDIR}/SDKs/iPhoneOS9.2.sdk"
export CFLAGS="-O3 -arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -fembed-bitcode"
export LDFLAGS="-mthumb -arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -fembed-bitcode"
make distclean > /dev/null
./configure --host=arm-apple-darwin \
--disable-shared \
--prefix="$IOS64_PREFIX" || exit 1
make -j3 install || exit 1
# Create universal binary and include folder
rm -fr -- "$PREFIX/include" "$PREFIX/libnanomsg.a" 2> /dev/null
mkdir -p -- "$PREFIX/lib"
lipo -create \
"$SIMULATOR32_PREFIX/lib/libnanomsg.a" \
"$SIMULATOR64_PREFIX/lib/libnanomsg.a" \
"$IOS32_PREFIX/lib/libnanomsg.a" \
"$IOS64_PREFIX/lib/libnanomsg.a" \
-output "$PREFIX/lib/libnanomsg.a"
mv -f -- "$IOS32_PREFIX/include" "$PREFIX/"
echo
echo "libnanomsg has been installed into $PREFIX"
echo
file -- "$PREFIX/lib/libnanomsg.a"
# Cleanup
rm -rf -- "$PREFIX/tmp"
make distclean > /dev/null
cd .. && rm -rf nanomsg
configured for Xcode7 w/ the 9.2 sdk:
save this file as something like build.sh and run
chmod a+x build.sh