This repository was archived by the owner on Sep 7, 2021. It is now read-only.
forked from livecode/livecode-thirdparty
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild-openssl.ios
More file actions
154 lines (125 loc) · 4.59 KB
/
Copy pathbuild-openssl.ios
File metadata and controls
154 lines (125 loc) · 4.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/bash
################################################################################
#
# CONFIGURE VERSIONS AND FOLDERS
#
ROOT_DIR=$HOME/revlibs
INSTALL_DIR=$ROOT_DIR/prefix
PLATFORMS_DIR=$HOME/Builds/Platforms
THIS_DIR=`pwd`
OPENSSL_VERSION=1.0.1g
echo "Will build into $ROOT_DIR"
mkdir -p $ROOT_DIR
echo "Will install into $INSTALL_DIR"
mkdir -p $INSTALL_DIR
BUILDS="Xcode_3_2_6,iPhoneSimulator,4.3,i386"
BUILDS+=" Xcode_4_2_0,iPhoneSimulator,5.0,i386"
BUILDS+=" Xcode_4_3_1/Xcode.app/Contents/Developer,iPhoneSimulator,5.1,i386"
if [ -e "$PLATFORMS_DIR/Xcode_4_5_0" ]; then
BUILDS+=" Xcode_4_5_0/Xcode.app/Contents/Developer,iPhoneSimulator,6.0,i386"
fi
if [ -e "$PLATFORMS_DIR/Xcode_4_6_0" ]; then
BUILDS+=" Xcode_4_6_0/Xcode.app/Contents/Developer,iPhoneSimulator,6.1,i386"
fi
if [ -e "$PLATFORMS_DIR/Xcode_5_0_0" ]; then
BUILDS+=" Xcode_5_0_0/Xcode.app/Contents/Developer,iPhoneSimulator,7.0,i386"
fi
if [ -e "$PLATFORMS_DIR/Xcode_5_1_0" ]; then
BUILDS+=" Xcode_5_1_0/Xcode.app/Contents/Developer,iPhoneSimulator,7.1,i386"
fi
BUILDS+=" Xcode_4_2_0,iPhoneOS,5.0,armv7"
if [ -e "$PLATFORMS_DIR/Xcode_4_6_0" ]; then
BUILDS+=" Xcode_4_6_0/Xcode.app/Contents/Developer,iPhoneOS,6.1,armv7"
fi
if [ -e "$PLATFORMS_DIR/Xcode_5_0_0" ]; then
BUILDS+=" Xcode_5_0_0/Xcode.app/Contents/Developer,iPhoneOS,7.0,armv7"
fi
if [ -e "$PLATFORMS_DIR/Xcode_5_1_0" ]; then
BUILDS+=" Xcode_5_1_0/Xcode.app/Contents/Developer,iPhoneOS,7.1,armv7"
fi
################################################################################
#
# BUILD OPENSSL
#
OPENSSL_TGZ=$ROOT_DIR/openssl-$OPENSSL_VERSION.tar.gz
OPENSSL_SRC=$ROOT_DIR/openssl-$OPENSSL_VERSION
cd $ROOT_DIR
if [ ! -e $OPENSSL_TGZ ]; then
echo "Fetching openssl-$OPENSSL_VERSION"
#wget -nv http://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
curl http://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz -o openssl-$OPENSSL_VERSION.tar.gz
if [ $? == 0 ]; then
echo " fetched to $OPENSSL_TGZ"
else
if [ -e $OPENSSL_TGZ ]; then rm $OPENSSL_TGZ; fi
echo " failed"
exit
fi
else
echo "Found openssl-$OPENSSL_VERSION tgz at $ROOT_DIR"
fi
for BUILD in ${BUILDS}
do
BUILD_OPTS=(${BUILD//,/ })
DEVELOPER=${BUILD_OPTS[0]}
PLATFORM=${BUILD_OPTS[1]}
VERSION=${BUILD_OPTS[2]}
ARCHS=$(echo ${BUILD_OPTS[3]} | tr "|" " ")
TAG=$(echo $PLATFORM | tr '[:upper:]' '[:lower:]')
TAG+=$VERSION
CRYPTO_LIBS=
SSL_LIBS=
for ARCH in ${ARCHS}
do
OPENSSL_ARCH_SRC=$OPENSSL_SRC-ios-$TAG-$ARCH
OPENSSL_ARCH_CONFIG="no-idea no-rc5 no-hw shared --prefix=$INSTALL_DIR/ios/$TAG/$ARCH iphoneos-cross"
OPENSSL_ARCH_LOG="$OPENSSL_ARCH_SRC.log"
if [ ! -e $OPENSSL_ARCH_SRC ]; then
echo "Unpacking openssl-$OPENSSL_VERSION for $PLATFORM $VERSION $ARCH"
tar xf $OPENSSL_TGZ
mv $OPENSSL_SRC $OPENSSL_ARCH_SRC
if [ "${ARCH}" != "i386" ]; then
cd $OPENSSL_ARCH_SRC
sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"
cd ..
fi
fi
if [ -e $OPENSSL_ARCH_SRC/config.cmd ]; then
OPENSSL_ARCH_CURRENT_CONFIG=`cat $OPENSSL_ARCH_SRC/config.cmd`
else
OPENSSL_ARCH_CURRENT_CONFIG=
fi
if [ "$OPENSSL_ARCH_CONFIG" != "$OPENSSL_ARCH_CURRENT_CONFIG" ]; then
cd $OPENSSL_ARCH_SRC
echo "Configuring openssl-$OPENSSL_VERSION for $PLATFORM $VERSION $ARCH"
if [ "${ARCH}" == "armv7" ]; then
ARCH_FLAGS="-mthumb"
else
ARCH_FLAGS=
fi
export CROSS_TOP="${PLATFORMS_DIR}/${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
export CROSS_SDK="${PLATFORM}${VERSION}.sdk"
export CC="${CROSS_TOP}/usr/bin/gcc -arch ${ARCH} ${ARCH_FLAGS}"
./Configure $OPENSSL_ARCH_CONFIG > "${OPENSSL_ARCH_LOG}" 2>&1
# add -isysroot to CC=
sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=4.3 !" "Makefile"
echo "Building openssl-$OPENSSL_VERSION for $PLATFORM $VERSION $ARCH"
make clean >> "${OPENSSL_ARCH_LOG}" 2>&1 && make >> "${OPENSSL_ARCH_LOG}" 2>&1 && make install_sw >> "${OPENSSL_ARCH_LOG}" 2>&1
if [ $? == 0 ]; then
echo "$OPENSSL_ARCH_CONFIG" > $OPENSSL_ARCH_SRC/config.cmd
else
echo " failed"
exit
fi
cd ..
else
echo "Found build of openssl-$OPENSSL_VERSION for $PLATFORM $VERSION $ARCH"
fi
CRYPTO_LIBS+="$INSTALL_DIR/ios/$TAG/$ARCH/lib/libcrypto.a "
SSL_LIBS+="$INSTALL_DIR/ios/$TAG/$ARCH/lib/libssl.a "
done
echo "Creating prebuilts for $PLATFORM $VERSION"
mkdir -p "$THIS_DIR/../../prebuilt/lib/ios/$TAG"
lipo -create $CRYPTO_LIBS -output "$THIS_DIR/../../prebuilt/lib/ios/$TAG/libcustomcrypto.a"
lipo -create $SSL_LIBS -output "$THIS_DIR/../../prebuilt/lib/ios/$TAG/libcustomssl.a"
done