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