Blame SOURCES/libsodium-1.0.18/dist-build/ios.sh

ca16be
#! /bin/sh
ca16be
#
ca16be
#  Step 1.
ca16be
#  Configure for base system so simulator is covered
ca16be
#  
ca16be
#  Step 2.
ca16be
#  Make for iOS and iOS simulator
ca16be
#
ca16be
#  Step 3.
ca16be
#  Merge libs into final version for xcode import
ca16be
ca16be
export PREFIX="$(pwd)/libsodium-ios"
ca16be
export IOS32_PREFIX="$PREFIX/tmp/ios32"
ca16be
export IOS32s_PREFIX="$PREFIX/tmp/ios32s"
ca16be
export IOS64_PREFIX="$PREFIX/tmp/ios64"
ca16be
export SIMULATOR32_PREFIX="$PREFIX/tmp/simulator32"
ca16be
export SIMULATOR64_PREFIX="$PREFIX/tmp/simulator64"
ca16be
export XCODEDIR=$(xcode-select -p)
ca16be
ca16be
export IOS_SIMULATOR_VERSION_MIN=${IOS_SIMULATOR_VERSION_MIN-"6.0.0"}
ca16be
export IOS_VERSION_MIN=${IOS_VERSION_MIN-"6.0.0"}
ca16be
ca16be
echo
ca16be
echo "Warnings related to headers being present but not usable are due to functions"
ca16be
echo "that didn't exist in the specified minimum iOS version level."
ca16be
echo "They can be safely ignored."
ca16be
echo
ca16be
ca16be
mkdir -p $SIMULATOR32_PREFIX $SIMULATOR64_PREFIX $IOS32_PREFIX $IOS32s_PREFIX $IOS64_PREFIX || exit 1
ca16be
ca16be
# Build for the simulator
ca16be
export BASEDIR="${XCODEDIR}/Platforms/iPhoneSimulator.platform/Developer"
ca16be
export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH"
ca16be
export SDK="${BASEDIR}/SDKs/iPhoneSimulator.sdk"
ca16be
ca16be
## i386 simulator
ca16be
export CFLAGS="-O2 -arch i386 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"
ca16be
export LDFLAGS="-arch i386 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"
ca16be
ca16be
make distclean > /dev/null
ca16be
ca16be
if [ -z "$LIBSODIUM_FULL_BUILD" ]; then
ca16be
  export LIBSODIUM_ENABLE_MINIMAL_FLAG="--enable-minimal"
ca16be
else
ca16be
  export LIBSODIUM_ENABLE_MINIMAL_FLAG=""
ca16be
fi
ca16be
ca16be
./configure --host=i686-apple-darwin10 \
ca16be
            --disable-shared \
ca16be
            ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \
ca16be
            --prefix="$SIMULATOR32_PREFIX" || exit 1
ca16be
ca16be
ca16be
NPROCESSORS=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
ca16be
PROCESSORS=${NPROCESSORS:-3}
ca16be
ca16be
make -j${PROCESSORS} install || exit 1
ca16be
ca16be
## x86_64 simulator
ca16be
export CFLAGS="-O2 -arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"
ca16be
export LDFLAGS="-arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}"
ca16be
ca16be
make distclean > /dev/null
ca16be
ca16be
./configure --host=x86_64-apple-darwin10 \
ca16be
            --disable-shared \
ca16be
            ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \
ca16be
            --prefix="$SIMULATOR64_PREFIX"
ca16be
ca16be
make -j${PROCESSORS} install || exit 1
ca16be
ca16be
# Build for iOS
ca16be
export BASEDIR="${XCODEDIR}/Platforms/iPhoneOS.platform/Developer"
ca16be
export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH"
ca16be
export SDK="${BASEDIR}/SDKs/iPhoneOS.sdk"
ca16be
ca16be
## 32-bit iOS
ca16be
export CFLAGS="-fembed-bitcode -O2 -mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}"
ca16be
export LDFLAGS="-fembed-bitcode -mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}"
ca16be
ca16be
make distclean > /dev/null
ca16be
ca16be
./configure --host=arm-apple-darwin10 \
ca16be
            --disable-shared \
ca16be
            ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \
ca16be
            --prefix="$IOS32_PREFIX" || exit 1
ca16be
ca16be
make -j${PROCESSORS} install || exit 1
ca16be
ca16be
## 32-bit armv7s iOS
ca16be
export CFLAGS="-fembed-bitcode -O2 -mthumb -arch armv7s -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}"
ca16be
export LDFLAGS="-fembed-bitcode -mthumb -arch armv7s -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}"
ca16be
ca16be
make distclean > /dev/null
ca16be
ca16be
./configure --host=arm-apple-darwin10 \
ca16be
            --disable-shared \
ca16be
            ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \
ca16be
            --prefix="$IOS32s_PREFIX" || exit 1
ca16be
ca16be
make -j${PROCESSORS} install || exit 1
ca16be
ca16be
## 64-bit iOS
ca16be
export CFLAGS="-fembed-bitcode -O2 -arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -fembed-bitcode"
ca16be
export LDFLAGS="-fembed-bitcode -arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -fembed-bitcode"
ca16be
ca16be
make distclean > /dev/null
ca16be
ca16be
./configure --host=arm-apple-darwin10 \
ca16be
            --disable-shared \
ca16be
            ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \
ca16be
            --prefix="$IOS64_PREFIX" || exit 1
ca16be
ca16be
make -j${PROCESSORS} install || exit 1
ca16be
ca16be
# Create universal binary and include folder
ca16be
rm -fr -- "$PREFIX/include" "$PREFIX/libsodium.a" 2> /dev/null
ca16be
mkdir -p -- "$PREFIX/lib"
ca16be
lipo -create \
ca16be
  "$SIMULATOR32_PREFIX/lib/libsodium.a" \
ca16be
  "$SIMULATOR64_PREFIX/lib/libsodium.a" \
ca16be
  "$IOS32_PREFIX/lib/libsodium.a" \
ca16be
  "$IOS32s_PREFIX/lib/libsodium.a" \
ca16be
  "$IOS64_PREFIX/lib/libsodium.a" \
ca16be
  -output "$PREFIX/lib/libsodium.a"
ca16be
mv -f -- "$IOS32_PREFIX/include" "$PREFIX/"
ca16be
ca16be
echo
ca16be
echo "libsodium has been installed into $PREFIX"
ca16be
echo
ca16be
file -- "$PREFIX/lib/libsodium.a"
ca16be
ca16be
# Cleanup
ca16be
rm -rf -- "$PREFIX/tmp"
ca16be
make distclean > /dev/null