Path: blob/main/sys/contrib/libsodium/dist-build/ios.sh
48260 views
#! /bin/sh1#2# Step 1.3# Configure for base system so simulator is covered4#5# Step 2.6# Make for iOS and iOS simulator7#8# Step 3.9# Merge libs into final version for xcode import1011export PREFIX="$(pwd)/libsodium-ios"12export IOS32_PREFIX="$PREFIX/tmp/ios32"13export IOS32s_PREFIX="$PREFIX/tmp/ios32s"14export IOS64_PREFIX="$PREFIX/tmp/ios64"15export SIMULATOR32_PREFIX="$PREFIX/tmp/simulator32"16export SIMULATOR64_PREFIX="$PREFIX/tmp/simulator64"17export XCODEDIR=$(xcode-select -p)1819export IOS_SIMULATOR_VERSION_MIN=${IOS_SIMULATOR_VERSION_MIN-"6.0.0"}20export IOS_VERSION_MIN=${IOS_VERSION_MIN-"6.0.0"}2122mkdir -p $SIMULATOR32_PREFIX $SIMULATOR64_PREFIX $IOS32_PREFIX $IOS32s_PREFIX $IOS64_PREFIX || exit 12324# Build for the simulator25export BASEDIR="${XCODEDIR}/Platforms/iPhoneSimulator.platform/Developer"26export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH"27export SDK="${BASEDIR}/SDKs/iPhoneSimulator.sdk"2829## i386 simulator30export CFLAGS="-O2 -arch i386 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"31export LDFLAGS="-arch i386 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"3233make distclean > /dev/null3435if [ -z "$LIBSODIUM_FULL_BUILD" ]; then36export LIBSODIUM_ENABLE_MINIMAL_FLAG="--enable-minimal"37else38export LIBSODIUM_ENABLE_MINIMAL_FLAG=""39fi4041./configure --host=i686-apple-darwin10 \42--disable-shared \43${LIBSODIUM_ENABLE_MINIMAL_FLAG} \44--prefix="$SIMULATOR32_PREFIX" || exit 1454647NPROCESSORS=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)48PROCESSORS=${NPROCESSORS:-3}4950make -j${PROCESSORS} install || exit 15152## x86_64 simulator53export CFLAGS="-O2 -arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"54export LDFLAGS="-arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"5556make distclean > /dev/null5758./configure --host=x86_64-apple-darwin10 \59--disable-shared \60${LIBSODIUM_ENABLE_MINIMAL_FLAG} \61--prefix="$SIMULATOR64_PREFIX"6263make -j${PROCESSORS} install || exit 16465# Build for iOS66export BASEDIR="${XCODEDIR}/Platforms/iPhoneOS.platform/Developer"67export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH"68export SDK="${BASEDIR}/SDKs/iPhoneOS.sdk"6970## 32-bit iOS71export CFLAGS="-fembed-bitcode -O2 -mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}"72export LDFLAGS="-fembed-bitcode -mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}"7374make distclean > /dev/null7576./configure --host=arm-apple-darwin10 \77--disable-shared \78${LIBSODIUM_ENABLE_MINIMAL_FLAG} \79--prefix="$IOS32_PREFIX" || exit 18081make -j${PROCESSORS} install || exit 18283## 32-bit armv7s iOS84export CFLAGS="-fembed-bitcode -O2 -mthumb -arch armv7s -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}"85export LDFLAGS="-fembed-bitcode -mthumb -arch armv7s -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}"8687make distclean > /dev/null8889./configure --host=arm-apple-darwin10 \90--disable-shared \91${LIBSODIUM_ENABLE_MINIMAL_FLAG} \92--prefix="$IOS32s_PREFIX" || exit 19394make -j${PROCESSORS} install || exit 19596## 64-bit iOS97export CFLAGS="-fembed-bitcode -O2 -arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -fembed-bitcode"98export LDFLAGS="-fembed-bitcode -arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -fembed-bitcode"99100make distclean > /dev/null101102./configure --host=arm-apple-darwin10 \103--disable-shared \104${LIBSODIUM_ENABLE_MINIMAL_FLAG} \105--prefix="$IOS64_PREFIX" || exit 1106107make -j${PROCESSORS} install || exit 1108109# Create universal binary and include folder110rm -fr -- "$PREFIX/include" "$PREFIX/libsodium.a" 2> /dev/null111mkdir -p -- "$PREFIX/lib"112lipo -create \113"$SIMULATOR32_PREFIX/lib/libsodium.a" \114"$SIMULATOR64_PREFIX/lib/libsodium.a" \115"$IOS32_PREFIX/lib/libsodium.a" \116"$IOS32s_PREFIX/lib/libsodium.a" \117"$IOS64_PREFIX/lib/libsodium.a" \118-output "$PREFIX/lib/libsodium.a"119mv -f -- "$IOS32_PREFIX/include" "$PREFIX/"120121echo122echo "libsodium has been installed into $PREFIX"123echo124file -- "$PREFIX/lib/libsodium.a"125126# Cleanup127rm -rf -- "$PREFIX/tmp"128make distclean > /dev/null129130131