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

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