Skip to content

Commit c313c97

Browse files
committed
Script for build 1.0.2l
1 parent 4115bfc commit c313c97

File tree

2 files changed

+199
-0
lines changed

2 files changed

+199
-0
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,5 @@ fastlane/report.xml
6565
fastlane/Preview.html
6666
fastlane/screenshots
6767
fastlane/test_output
68+
69+
dist/*

build-openssl.sh

+197
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
#!/bin/bash
2+
3+
# This script builds the iOS and Mac openSSL libraries with Bitcode enabled
4+
# Download openssl http://www.openssl.org/source/ and place the tarball next to this script
5+
6+
# Credits:
7+
# https://github.com/st3fan/ios-openssl
8+
# https://github.com/x2on/OpenSSL-for-iPhone/blob/master/build-libssl.sh
9+
# Peter Steinberger, PSPDFKit GmbH, @steipete.
10+
# Doron Adler, GlideTalk, @Norod78, @yangyubo
11+
12+
# Updated to work with Xcode 7 and iOS 9
13+
# Updated to set macOS minimum deploy target version
14+
15+
set -e
16+
17+
pushd . > /dev/null
18+
19+
###################################
20+
# OpenSSL Version
21+
###################################
22+
OPENSSL_VERSION="openssl-1.0.2l"
23+
###################################
24+
25+
###################################
26+
# OpenSSL Version
27+
###################################
28+
MACOS_DIST_OUTPUT="${OPENSSL_VERSION}-macOS"
29+
IOS_DIST_OUTPUT="${OPENSSL_VERSION}-iOS"
30+
###################################
31+
32+
###################################
33+
# SDK Version
34+
###################################
35+
IOS_SDK_VERSION=$(xcodebuild -version -sdk iphoneos | grep SDKVersion | cut -f2 -d ':' | tr -d '[[:space:]]')
36+
MACOS_SDK_VERSION=$(xcodebuild -version -sdk macosx | grep SDKVersion | cut -f2 -d ':' | tr -d '[[:space:]]')
37+
###################################
38+
39+
################################################
40+
# Minimum deployment target version
41+
################################################
42+
MACOS_DEPLOYMENT_VERSION="10.10"
43+
IOS_DEPLOYMENT_VERSION="8.0"
44+
45+
DEVELOPER=`xcode-select -print-path`
46+
47+
buildMac()
48+
{
49+
ARCH=$1
50+
51+
echo "Start Building ${OPENSSL_VERSION} for macOS ${MACOS_DEPLOYMENT_VERSION} ${ARCH}"
52+
53+
TARGET="darwin64-x86_64-cc"
54+
55+
export CC="${BUILD_TOOLS}/usr/bin/clang -mmacosx-version-min=${MACOS_DEPLOYMENT_VERSION}"
56+
57+
pushd . > /dev/null
58+
cd "${OPENSSL_VERSION}"
59+
echo "Configure"
60+
./Configure ${TARGET} --openssldir="/tmp/${OPENSSL_VERSION}-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-${ARCH}.log"
61+
make >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
62+
echo "make install"
63+
make install >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
64+
echo "make clean"
65+
make clean >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
66+
popd > /dev/null
67+
68+
echo "Done Building ${OPENSSL_VERSION} for macOS ${MACOS_SDK_VERSION} ${ARCH}"
69+
}
70+
71+
buildIOS()
72+
{
73+
ARCH=$1
74+
75+
pushd . > /dev/null
76+
cd "${OPENSSL_VERSION}"
77+
78+
if [[ "${ARCH}" == "i386" || "${ARCH}" == "x86_64" ]]; then
79+
PLATFORM="iPhoneSimulator"
80+
else
81+
PLATFORM="iPhoneOS"
82+
sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"
83+
fi
84+
85+
export $PLATFORM
86+
export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
87+
export CROSS_SDK="${PLATFORM}${IOS_SDK_VERSION}.sdk"
88+
export BUILD_TOOLS="${DEVELOPER}"
89+
export CC="${BUILD_TOOLS}/usr/bin/gcc -fembed-bitcode -mios-version-min=${IOS_DEPLOYMENT_VERSION} -arch ${ARCH}"
90+
91+
echo "Start Building ${OPENSSL_VERSION} for ${PLATFORM} ${IOS_DEPLOYMENT_VERSION} ${ARCH}"
92+
93+
echo "Configure"
94+
95+
if [[ "${ARCH}" == "x86_64" ]]; then
96+
./Configure darwin64-x86_64-cc --openssldir="/tmp/${IOS_DIST_OUTPUT}-${ARCH}" &> "/tmp/${IOS_DIST_OUTPUT}-${ARCH}.log"
97+
else
98+
./Configure iphoneos-cross --openssldir="/tmp/${IOS_DIST_OUTPUT}-${ARCH}" &> "/tmp/${IOS_DIST_OUTPUT}-${ARCH}.log"
99+
fi
100+
# add -isysroot to CC=
101+
sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -mios-version-min=${IOS_DEPLOYMENT_VERSION} !" "Makefile"
102+
103+
echo "make"
104+
make >> "/tmp/${IOS_DIST_OUTPUT}-${ARCH}.log" 2>&1
105+
echo "make install"
106+
make install >> "/tmp/${IOS_DIST_OUTPUT}-${ARCH}.log" 2>&1
107+
echo "make clean"
108+
make clean >> "/tmp/${IOS_DIST_OUTPUT}-${ARCH}.log" 2>&1
109+
popd > /dev/null
110+
111+
echo "Done Building ${OPENSSL_VERSION} for ${PLATFORM} ${IOS_SDK_VERSION} ${ARCH}"
112+
}
113+
114+
echo "Cleaning up"
115+
rm -rf ${IOS_DIST_OUTPUT}/* ${MACOS_DIST_OUTPUT}/*
116+
117+
mkdir -p ${IOS_DIST_OUTPUT}/lib
118+
mkdir -p ${IOS_DIST_OUTPUT}/include/openssl/
119+
120+
mkdir -p ${MACOS_DIST_OUTPUT}/lib
121+
mkdir -p ${MACOS_DIST_OUTPUT}/include/openssl/
122+
123+
rm -rf "/tmp/${OPENSSL_VERSION}-*"
124+
rm -rf "/tmp/${OPENSSL_VERSION}-*.log"
125+
126+
cd ./dist
127+
rm -rf "${OPENSSL_VERSION}"
128+
129+
if [ ! -e ${OPENSSL_VERSION}.tar.gz ]; then
130+
echo "Downloading ${OPENSSL_VERSION}.tar.gz"
131+
curl -O https://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz
132+
else
133+
echo "Using ${OPENSSL_VERSION}.tar.gz"
134+
fi
135+
136+
echo "Unpacking OpenSSL"
137+
tar xfz "./${OPENSSL_VERSION}.tar.gz"
138+
139+
echo "----------------------------------------"
140+
echo "OpenSSL version: ${OPENSSL_VERSION}"
141+
echo "macOS SDK version: ${MACOS_SDK_VERSION}"
142+
echo "macOS deployment target: ${MACOS_DEPLOYMENT_VERSION}"
143+
echo "----------------------------------------"
144+
echo " "
145+
146+
buildMac "x86_64"
147+
148+
echo "Copying macOS headers"
149+
cp /tmp/${OPENSSL_VERSION}-x86_64/include/openssl/* ${MACOS_DIST_OUTPUT}/include/openssl/
150+
151+
echo "Copying macOS libraries"
152+
cp /tmp/${OPENSSL_VERSION}-x86_64/lib/libcrypto.a ${MACOS_DIST_OUTPUT}/lib/libcrypto.a
153+
cp /tmp/${OPENSSL_VERSION}-x86_64/lib/libssl.a ${MACOS_DIST_OUTPUT}/lib/libssl.a
154+
155+
echo "Compress macOS libraries"
156+
tar --exclude='*DS_Store' -zcf ${MACOS_DIST_OUTPUT}.tar.gz ${MACOS_DIST_OUTPUT}
157+
158+
echo "----------------------------------------"
159+
echo "OpenSSL version: ${OPENSSL_VERSION}"
160+
echo "iOS SDK version: ${IOS_SDK_VERSION}"
161+
echo "iOS deployment target: ${IOS_DEPLOYMENT_VERSION}"
162+
echo "----------------------------------------"
163+
echo " "
164+
165+
buildIOS "armv7"
166+
buildIOS "arm64"
167+
buildIOS "x86_64"
168+
buildIOS "i386"
169+
170+
echo "Copying iOS headers"
171+
cp /tmp/${IOS_DIST_OUTPUT}-arm64/include/openssl/* ${IOS_DIST_OUTPUT}/include/openssl/
172+
173+
echo "Building iOS libraries"
174+
lipo \
175+
"/tmp/${IOS_DIST_OUTPUT}-armv7/lib/libcrypto.a" \
176+
"/tmp/${IOS_DIST_OUTPUT}-arm64/lib/libcrypto.a" \
177+
"/tmp/${IOS_DIST_OUTPUT}-i386/lib/libcrypto.a" \
178+
"/tmp/${IOS_DIST_OUTPUT}-x86_64/lib/libcrypto.a" \
179+
-create -output ${IOS_DIST_OUTPUT}/lib/libcrypto.a
180+
181+
lipo \
182+
"/tmp/${IOS_DIST_OUTPUT}-armv7/lib/libssl.a" \
183+
"/tmp/${IOS_DIST_OUTPUT}-arm64/lib/libssl.a" \
184+
"/tmp/${IOS_DIST_OUTPUT}-i386/lib/libssl.a" \
185+
"/tmp/${IOS_DIST_OUTPUT}-x86_64/lib/libssl.a" \
186+
-create -output ${IOS_DIST_OUTPUT}/lib/libssl.a
187+
188+
echo "Compress iOS libraries"
189+
tar --exclude='*DS_Store' -zcf ${IOS_DIST_OUTPUT}.tar.gz ${IOS_DIST_OUTPUT}
190+
191+
echo "Cleaning up"
192+
rm -rf /tmp/${OPENSSL_VERSION}-*
193+
rm -rf ${OPENSSL_VERSION}
194+
195+
popd > /dev/null
196+
197+
echo "Done"

0 commit comments

Comments
 (0)