build-mac/build_libcurl_dist.sh
author Volker Birk <vb@pep-project.org>
Wed, 08 May 2019 16:41:10 +0200
branchENGINE-550
changeset 3653 b00047c994f6
parent 1513 e7f7e42385b5
permissions -rw-r--r--
suggestion
     1 #!/bin/bash
     2 
     3 # This file is under GNU General Public License 3.0
     4 # see LICENSE.txt
     5 
     6 export DEVROOT=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
     7 DFT_DIST_DIR=../libcurl-ios-dist
     8 DIST_DIR=${DIST_DIR:-$DFT_DIST_DIR}
     9 
    10 function check_curl_ver() {
    11 echo "#include \"include/curl/curlver.h\"
    12 #if LIBCURL_VERSION_MAJOR < 7 || LIBCURL_VERSION_MINOR < 40
    13 #error Required curl 7.40.0+; See http://curl.haxx.se/docs/adv_20150108A.html
    14 #endif"|gcc -c -o /dev/null -xc -||exit 9
    15 }
    16 
    17 function build_for_arch() {
    18   ARCH=$1
    19   HOST=$2
    20   SYSROOT=$3
    21   PREFIX=$4
    22   IPHONEOS_DEPLOYMENT_TARGET="6.0"
    23   export PATH="${DEVROOT}/usr/bin/:${PATH}"
    24   export CFLAGS="-arch ${ARCH} -pipe -Os -gdwarf-2 -isysroot ${SYSROOT} -miphoneos-version-min=${IPHONEOS_DEPLOYMENT_TARGET} -fembed-bitcode"
    25   export LDFLAGS="-arch ${ARCH} -isysroot ${SYSROOT}"
    26   ./configure --disable-shared --enable-static ${SSL_FLAG} --host="${HOST}" --prefix=${PREFIX} && make -j8 && make install
    27 }
    28 
    29 if [ "$1" == "openssl" ]
    30 then
    31   if [ ! -d ${HOME}/Desktop/openssl-ios-dist ]
    32   then
    33     echo "Please use https://github.com/sinofool/build-openssl-ios/ to build OpenSSL for iOS first"
    34     exit 8
    35   fi
    36   export SSL_FLAG=--with-ssl=${HOME}/Desktop/openssl-ios-dist
    37 else
    38   check_curl_ver
    39   export SSL_FLAG=--with-darwinssl
    40 fi
    41 
    42 TMP_DIR=/tmp/build_libcurl_$$
    43 
    44 build_for_arch i386 i386-apple-darwin /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk ${TMP_DIR}/i386 || exit 1
    45 build_for_arch x86_64 x86_64-apple-darwin /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk ${TMP_DIR}/x86_64 || exit 2
    46 build_for_arch arm64 arm-apple-darwin /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk ${TMP_DIR}/arm64 || exit 3
    47 build_for_arch armv7s armv7s-apple-darwin /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk ${TMP_DIR}/armv7s || exit 4
    48 build_for_arch armv7 armv7-apple-darwin /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk ${TMP_DIR}/armv7 || exit 5
    49 
    50 mkdir -p ${TMP_DIR}/lib/
    51 ${DEVROOT}/usr/bin/lipo \
    52 	-arch i386 ${TMP_DIR}/i386/lib/libcurl.a \
    53 	-arch x86_64 ${TMP_DIR}/x86_64/lib/libcurl.a \
    54 	-arch armv7 ${TMP_DIR}/armv7/lib/libcurl.a \
    55 	-arch armv7s ${TMP_DIR}/armv7s/lib/libcurl.a \
    56 	-arch arm64 ${TMP_DIR}/arm64/lib/libcurl.a \
    57 	-output ${TMP_DIR}/lib/libcurl.a -create
    58 
    59 cp -r ${TMP_DIR}/armv7s/include ${TMP_DIR}/
    60 curl -O https://raw.githubusercontent.com/sinofool/build-libcurl-ios/master/patch-include.patch
    61 patch ${TMP_DIR}/include/curl/curlbuild.h < patch-include.patch
    62 
    63 mkdir -p ${DIST_DIR}
    64 cp -r ${TMP_DIR}/include ${TMP_DIR}/lib ${DIST_DIR}
    65