dev
sh 118 lines 2.93 KB
Raw
1 #!/bin/sh
2
3 . ./config.sh
4
5 OPEN_SSL_DIR_NAME="OpenSSL"
6 OPEN_SSL_x86_64_DIR_NAME="${OPEN_SSL_DIR_NAME}-x86_64"
7 OPEN_SSL_ARM_DIR_NAME="${OPEN_SSL_DIR_NAME}-arm"
8 OPEN_SSL_X86_64_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/${OPEN_SSL_x86_64_DIR_NAME}"
9 OPEN_SSL_ARM_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/${OPEN_SSL_ARM_DIR_NAME}"
10
11 build_openssl_init_common() {
12 DIR=$1
13 # Use 1.1.1s because of https://github.com/openssl/openssl/issues/18720
14 OPENSSL_VERSION="1.1.1s"
15
16 echo "
17 ============================ OPENSSL ============================
18 "
19
20 cd $EXTERNAL_MACOS_SOURCE_DIR
21 curl -O https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
22 tar -xvzf openssl-$OPENSSL_VERSION.tar.gz
23 rm -rf $DIR
24 rm -rf $OPEN_SSL_DIR_PATH
25 mv openssl-$OPENSSL_VERSION $DIR
26 tar -xvzf openssl-$OPENSSL_VERSION.tar.gz
27 mv openssl-$OPENSSL_VERSION $OPEN_SSL_ARM_DIR_NAME
28 }
29
30 build_openssl_init_arm64() {
31 DIR=$OPEN_SSL_ARM_DIR_PATH
32 build_openssl_init_common ${DIR}
33 }
34
35 build_openssl_init_x86_64() {
36 DIR=$OPEN_SSL_X86_64_DIR_PATH
37 build_openssl_init_common ${DIR}
38 }
39
40 build_openssl_compile_common() {
41 ARCH=$1
42 DIR=""
43 XARCH=""
44 case $ARCH in
45 arm64)
46 DIR=$OPEN_SSL_ARM_DIR_PATH
47 XARCH="darwin64-arm64-cc";;
48 x86_64)
49 DIR=$OPEN_SSL_X86_64_DIR_PATH
50 XARCH="darwin64-x86_64-cc";;
51 esac
52
53 echo "Build OpenSSL for ${ARCH}"
54 cd $DIR
55 ./Configure $XARCH
56 make
57
58 }
59
60 build_openssl_compile_arm64() {
61 ARCH=arm64
62 build_openssl_compile_common "${ARCH}"
63 }
64
65 build_openssl_compile_x86_64() {
66 ARCH=x86_64
67 build_openssl_compile_common "${ARCH}"
68 }
69
70 build_openssl_install_common() {
71 DIR=$1
72 mv ${DIR}/include/* $EXTERNAL_MACOS_INCLUDE_DIR
73 mv ${DIR}/libcrypto.a ${EXTERNAL_MACOS_LIB_DIR}/libcrypto.a
74 mv ${DIR}/libssl.a ${EXTERNAL_MACOS_LIB_DIR}/libssl.a
75 }
76
77 build_openssl_install_arm64() {
78 build_openssl_install_common "${OPEN_SSL_ARM_DIR_PATH}"
79 }
80
81 build_openssl_install_x86_64() {
82 build_openssl_install_common "${OPEN_SSL_X86_64_DIR_PATH}"
83 }
84
85 build_openssl_install_universal() {
86 OPEN_SSL_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/${OPEN_SSL_DIR_NAME}"
87 mv ${OPEN_SSL_ARM_DIR_PATH}/include/* $OPEN_SSL_DIR_PATH/include
88 build_openssl_install_common "${OPEN_SSL_DIR_PATH}"
89 }
90
91 build_openssl_arm64() {
92 build_openssl_init_arm64
93 build_openssl_compile_arm64
94 build_openssl_install_arm64
95 }
96
97 build_openssl_x86_64() {
98 build_openssl_init_x86_64
99 build_openssl_compile_x86_64
100 build_openssl_install_x86_64
101 }
102
103 build_openssl_combine() {
104 OPEN_SSL_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/${OPEN_SSL_DIR_NAME}"
105 echo "Create universal bin"
106 mkdir -p $OPEN_SSL_DIR_PATH/include
107 lipo -create ${OPEN_SSL_ARM_DIR_PATH}/libcrypto.a ${OPEN_SSL_X86_64_DIR_PATH}/libcrypto.a -output ${OPEN_SSL_DIR_PATH}/libcrypto.a
108 lipo -create ${OPEN_SSL_ARM_DIR_PATH}/libssl.a ${OPEN_SSL_X86_64_DIR_PATH}/libssl.a -output ${OPEN_SSL_DIR_PATH}/libssl.a
109 }
110
111 build_openssl_universal() {
112 build_openssl_init_arm64
113 build_openssl_compile_arm64
114 build_openssl_init_x86_64
115 build_openssl_compile_x86_64
116 build_openssl_combine
117 build_openssl_install_universal
118 }