libsodium 1.0.8
[tomato.git] / release / src / router / libsodium / dist-build / ios.sh
blob27e405bc2f625cb2b79745eaf848b44571a491a0
1 #! /bin/sh
3 # Step 1.
4 # Configure for base system so simulator is covered
5 #
6 # Step 2.
7 # Make for iOS and iOS simulator
9 # Step 3.
10 # Merge libs into final version for xcode import
12 export PREFIX="$(pwd)/libsodium-ios"
13 export IOS32_PREFIX="$PREFIX/tmp/ios32"
14 export IOS64_PREFIX="$PREFIX/tmp/ios64"
15 export SIMULATOR32_PREFIX="$PREFIX/tmp/simulator32"
16 export SIMULATOR64_PREFIX="$PREFIX/tmp/simulator64"
17 export IOS_SIMULATOR_VERSION_MIN=${IOS_SIMULATOR_VERSION_MIN-"5.1.1"}
18 export IOS_VERSION_MIN=${IOS_VERSION_MIN-"5.1.1"}
19 export XCODEDIR=$(xcode-select -p)
21 mkdir -p $SIMULATOR32_PREFIX $SIMULATOR64_PREFIX $IOS32_PREFIX $IOS64_PREFIX || exit 1
23 # Build for the simulator
24 export BASEDIR="${XCODEDIR}/Platforms/iPhoneSimulator.platform/Developer"
25 export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH"
26 export SDK="${BASEDIR}/SDKs/iPhoneSimulator.sdk"
28 ## i386 simulator
29 export CFLAGS="-O2 -arch i386 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN} -flto"
30 export LDFLAGS="-arch i386 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN} -flto"
32 make distclean > /dev/null
34 ./configure --disable-shared \
35 --enable-minimal \
36 --prefix="$SIMULATOR32_PREFIX" || exit 1
38 make -j3 install || exit 1
40 ## x86_64 simulator
41 export CFLAGS="-O2 -arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN} -flto"
42 export LDFLAGS="-arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN} -flto"
44 make distclean > /dev/null
46 ./configure --disable-shared \
47 --enable-minimal \
48 --prefix="$SIMULATOR64_PREFIX"
50 make -j3 install || exit 1
52 # Build for iOS
53 export BASEDIR="${XCODEDIR}/Platforms/iPhoneOS.platform/Developer"
54 export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH"
55 export SDK="${BASEDIR}/SDKs/iPhoneOS.sdk"
57 ## 32-bit iOS
58 export CFLAGS="-O2 -mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -flto"
59 export LDFLAGS="-mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -flto"
61 make distclean > /dev/null
63 ./configure --host=arm-apple-darwin10 \
64 --disable-shared \
65 --enable-minimal \
66 --prefix="$IOS32_PREFIX" || exit 1
68 make -j3 install || exit 1
70 ## 64-bit iOS
71 export CFLAGS="-O2 -arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -flto"
72 export LDFLAGS="-arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN} -flto"
74 make distclean > /dev/null
76 ./configure --host=arm-apple-darwin10 \
77 --disable-shared \
78 --enable-minimal \
79 --prefix="$IOS64_PREFIX" || exit 1
81 make -j3 install || exit 1
83 # Create universal binary and include folder
84 rm -fr -- "$PREFIX/include" "$PREFIX/libsodium.a" 2> /dev/null
85 mkdir -p -- "$PREFIX/lib"
86 lipo -create \
87 "$SIMULATOR32_PREFIX/lib/libsodium.a" \
88 "$SIMULATOR64_PREFIX/lib/libsodium.a" \
89 "$IOS32_PREFIX/lib/libsodium.a" \
90 "$IOS64_PREFIX/lib/libsodium.a" \
91 -output "$PREFIX/lib/libsodium.a"
92 mv -f -- "$IOS32_PREFIX/include" "$PREFIX/"
94 echo
95 echo "libsodium has been installed into $PREFIX"
96 echo
97 file -- "$PREFIX/lib/libsodium.a"
99 # Cleanup
100 rm -rf -- "$PREFIX/tmp"
101 make distclean > /dev/null