Home | History | Annotate | Line # | Download | only in dist-build
      1  1.1  riastrad #! /bin/sh
      2  1.1  riastrad #
      3  1.1  riastrad #  Step 1.
      4  1.1  riastrad #  Configure for base system so simulator is covered
      5  1.1  riastrad #  
      6  1.1  riastrad #  Step 2.
      7  1.1  riastrad #  Make for iOS and iOS simulator
      8  1.1  riastrad #
      9  1.1  riastrad #  Step 3.
     10  1.1  riastrad #  Merge libs into final version for xcode import
     11  1.1  riastrad 
     12  1.1  riastrad export PREFIX="$(pwd)/libsodium-ios"
     13  1.1  riastrad export IOS32_PREFIX="$PREFIX/tmp/ios32"
     14  1.1  riastrad export IOS32s_PREFIX="$PREFIX/tmp/ios32s"
     15  1.1  riastrad export IOS64_PREFIX="$PREFIX/tmp/ios64"
     16  1.1  riastrad export SIMULATOR32_PREFIX="$PREFIX/tmp/simulator32"
     17  1.1  riastrad export SIMULATOR64_PREFIX="$PREFIX/tmp/simulator64"
     18  1.1  riastrad export XCODEDIR=$(xcode-select -p)
     19  1.1  riastrad 
     20  1.1  riastrad xcode_major=$(xcodebuild -version|egrep '^Xcode '|cut -d' ' -f2|cut -d. -f1)
     21  1.1  riastrad if [ $xcode_major -ge 8 ]; then
     22  1.1  riastrad   export IOS_SIMULATOR_VERSION_MIN=${IOS_SIMULATOR_VERSION_MIN-"6.0.0"}
     23  1.1  riastrad   export IOS_VERSION_MIN=${IOS_VERSION_MIN-"6.0.0"}
     24  1.1  riastrad else
     25  1.1  riastrad   export IOS_SIMULATOR_VERSION_MIN=${IOS_SIMULATOR_VERSION_MIN-"5.1.1"}
     26  1.1  riastrad   export IOS_VERSION_MIN=${IOS_VERSION_MIN-"5.1.1"}
     27  1.1  riastrad fi
     28  1.1  riastrad 
     29  1.1  riastrad mkdir -p $SIMULATOR32_PREFIX $SIMULATOR64_PREFIX $IOS32_PREFIX $IOS32s_PREFIX $IOS64_PREFIX || exit 1
     30  1.1  riastrad 
     31  1.1  riastrad # Build for the simulator
     32  1.1  riastrad export BASEDIR="${XCODEDIR}/Platforms/iPhoneSimulator.platform/Developer"
     33  1.1  riastrad export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH"
     34  1.1  riastrad export SDK="${BASEDIR}/SDKs/iPhoneSimulator.sdk"
     35  1.1  riastrad 
     36  1.1  riastrad ## i386 simulator
     37  1.1  riastrad export CFLAGS="-O2 -arch i386 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN} -flto"
     38  1.1  riastrad export LDFLAGS="-arch i386 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN} -flto"
     39  1.1  riastrad 
     40  1.1  riastrad make distclean > /dev/null
     41  1.1  riastrad 
     42  1.1  riastrad ./configure --host=i686-apple-darwin10 \
     43  1.1  riastrad             --disable-shared \
     44  1.1  riastrad             --enable-minimal \
     45  1.1  riastrad             --prefix="$SIMULATOR32_PREFIX" || exit 1
     46  1.1  riastrad 
     47  1.1  riastrad make -j3 install || exit 1
     48  1.1  riastrad 
     49  1.1  riastrad ## x86_64 simulator
     50  1.1  riastrad export CFLAGS="-O2 -arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN} -flto"
     51  1.1  riastrad export LDFLAGS="-arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN} -flto"
     52  1.1  riastrad 
     53  1.1  riastrad make distclean > /dev/null
     54  1.1  riastrad 
     55  1.1  riastrad ./configure --host=x86_64-apple-darwin10 \
     56  1.1  riastrad             --disable-shared \
     57  1.1  riastrad             --enable-minimal \
     58  1.1  riastrad             --prefix="$SIMULATOR64_PREFIX"
     59  1.1  riastrad 
     60  1.1  riastrad make -j3 install || exit 1
     61  1.1  riastrad 
     62  1.1  riastrad # Build for iOS
     63  1.1  riastrad export BASEDIR="${XCODEDIR}/Platforms/iPhoneOS.platform/Developer"
     64  1.1  riastrad export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH"
     65  1.1  riastrad export SDK="${BASEDIR}/SDKs/iPhoneOS.sdk"
     66  1.1  riastrad 
     67  1.1  riastrad ## 32-bit iOS
     68  1.1  riastrad export CFLAGS="-O2 -mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -flto"
     69  1.1  riastrad export LDFLAGS="-mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -flto"
     70  1.1  riastrad 
     71  1.1  riastrad make distclean > /dev/null
     72  1.1  riastrad 
     73  1.1  riastrad ./configure --host=arm-apple-darwin10 \
     74  1.1  riastrad             --disable-shared \
     75  1.1  riastrad             --enable-minimal \
     76  1.1  riastrad             --prefix="$IOS32_PREFIX" || exit 1
     77  1.1  riastrad 
     78  1.1  riastrad make -j3 install || exit 1
     79  1.1  riastrad 
     80  1.1  riastrad ## 32-bit armv7s iOS
     81  1.1  riastrad export CFLAGS="-O2 -mthumb -arch armv7s -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -flto"
     82  1.1  riastrad export LDFLAGS="-mthumb -arch armv7s -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -flto"
     83  1.1  riastrad 
     84  1.1  riastrad make distclean > /dev/null
     85  1.1  riastrad 
     86  1.1  riastrad ./configure --host=arm-apple-darwin10 \
     87  1.1  riastrad             --disable-shared \
     88  1.1  riastrad             --enable-minimal \
     89  1.1  riastrad             --prefix="$IOS32s_PREFIX" || exit 1
     90  1.1  riastrad 
     91  1.1  riastrad make -j3 install || exit 1
     92  1.1  riastrad 
     93  1.1  riastrad ## 64-bit iOS
     94  1.1  riastrad export CFLAGS="-O2 -arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -flto -fembed-bitcode"
     95  1.1  riastrad export LDFLAGS="-arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -flto -fembed-bitcode"
     96  1.1  riastrad 
     97  1.1  riastrad make distclean > /dev/null
     98  1.1  riastrad 
     99  1.1  riastrad ./configure --host=arm-apple-darwin10 \
    100  1.1  riastrad             --disable-shared \
    101  1.1  riastrad             --enable-minimal \
    102  1.1  riastrad             --prefix="$IOS64_PREFIX" || exit 1
    103  1.1  riastrad 
    104  1.1  riastrad make -j3 install || exit 1
    105  1.1  riastrad 
    106  1.1  riastrad # Create universal binary and include folder
    107  1.1  riastrad rm -fr -- "$PREFIX/include" "$PREFIX/libsodium.a" 2> /dev/null
    108  1.1  riastrad mkdir -p -- "$PREFIX/lib"
    109  1.1  riastrad lipo -create \
    110  1.1  riastrad   "$SIMULATOR32_PREFIX/lib/libsodium.a" \
    111  1.1  riastrad   "$SIMULATOR64_PREFIX/lib/libsodium.a" \
    112  1.1  riastrad   "$IOS32_PREFIX/lib/libsodium.a" \
    113  1.1  riastrad   "$IOS32s_PREFIX/lib/libsodium.a" \
    114  1.1  riastrad   "$IOS64_PREFIX/lib/libsodium.a" \
    115  1.1  riastrad   -output "$PREFIX/lib/libsodium.a"
    116  1.1  riastrad mv -f -- "$IOS32_PREFIX/include" "$PREFIX/"
    117  1.1  riastrad 
    118  1.1  riastrad echo
    119  1.1  riastrad echo "libsodium has been installed into $PREFIX"
    120  1.1  riastrad echo
    121  1.1  riastrad file -- "$PREFIX/lib/libsodium.a"
    122  1.1  riastrad 
    123  1.1  riastrad # Cleanup
    124  1.1  riastrad rm -rf -- "$PREFIX/tmp"
    125  1.1  riastrad make distclean > /dev/null
    126