Skip to content

Instantly share code, notes, and snippets.

@foozmeat
Last active May 22, 2024 17:56
Show Gist options
  • Select an option

  • Save foozmeat/5154962 to your computer and use it in GitHub Desktop.

Select an option

Save foozmeat/5154962 to your computer and use it in GitHub Desktop.

Revisions

  1. @jamespanic jamespanic revised this gist Mar 19, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion openssl-build.sh
    Original file line number Diff line number Diff line change
    @@ -100,7 +100,7 @@ rm -rf "${OPENSSL_VERSION}"

    if [ ! -e ${OPENSSL_VERSION}.tar.gz ]; then
    echo "Downloading ${OPENSSL_VERSION}.tar.gz"
    curl -O http://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz
    curl -O https://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz
    else
    echo "Using ${OPENSSL_VERSION}.tar.gz"
    fi
  2. @jamespanic jamespanic revised this gist Mar 19, 2015. 1 changed file with 15 additions and 31 deletions.
    46 changes: 15 additions & 31 deletions openssl-build.sh
    Original file line number Diff line number Diff line change
    @@ -12,7 +12,7 @@ set -e

    usage ()
    {
    echo "usage: $0 [minimum iOS SDK version (default 7.1)]"
    echo "usage: $0 [minimum iOS SDK version (default 8.2)]"
    exit 127
    }

    @@ -21,12 +21,12 @@ if [ $1 -e "-h" ]; then
    fi

    if [ -z $1 ]; then
    SDK_VERSION="7.1"
    SDK_VERSION="8.2"
    else
    SDK_VERSION=$1
    fi

    OPENSSL_VERSION="openssl-1.0.1h"
    OPENSSL_VERSION="openssl-1.0.1m"
    DEVELOPER=`xcode-select -print-path`

    buildMac()
    @@ -89,7 +89,8 @@ buildIOS()
    echo "Cleaning up"
    rm -rf include/openssl/* lib/*

    mkdir -p lib
    mkdir -p lib/iOS
    mkdir -p lib/Mac
    mkdir -p include/openssl/

    rm -rf "/tmp/${OPENSSL_VERSION}-*"
    @@ -117,49 +118,32 @@ echo "Building Mac libraries"
    lipo \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_Mac.a
    -create -output lib/Mac/libcrypto.a

    lipo \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libssl.a" \
    -create -output lib/libssl_Mac.a
    -create -output lib/Mac/libssl.a

    buildIOS "armv7"
    buildIOS "armv7s"
    if [[ $SDK_VERSION == "7.1" ]]; then
    buildIOS "arm64"
    buildIOS "x86_64"
    fi
    buildIOS "arm64"
    buildIOS "x86_64"
    buildIOS "i386"

    echo "Building iOS libraries"
    lipo \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7s/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-arm64/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-i386/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a
    "/tmp/${OPENSSL_VERSION}-iOS-x86_64/lib/libcrypto.a" \
    -create -output lib/iOS/libcrypto.a

    lipo \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7s/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-arm64/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-i386/lib/libssl.a" \
    -create -output lib/libssl_iOS.a

    if [[ $SDK_VERSION == "7.1" ]]; then
    echo "Adding 64-bit libraries"
    lipo \
    "lib/libcrypto_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-arm64/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a

    lipo \
    "lib/libssl_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-arm64/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-x86_64/lib/libssl.a" \
    -create -output lib/libssl_iOS.a

    fi
    "/tmp/${OPENSSL_VERSION}-iOS-x86_64/lib/libssl.a" \
    -create -output lib/iOS/libssl.a

    echo "Cleaning up"
    rm -rf /tmp/${OPENSSL_VERSION}-*
  3. @jamespanic jamespanic revised this gist Jul 21, 2014. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions openssl-build.sh
    Original file line number Diff line number Diff line change
    @@ -126,7 +126,7 @@ lipo \

    buildIOS "armv7"
    buildIOS "armv7s"
    if [[ $SDK_VERSION == "7.0" ]]; then
    if [[ $SDK_VERSION == "7.1" ]]; then
    buildIOS "arm64"
    buildIOS "x86_64"
    fi
    @@ -145,7 +145,7 @@ lipo \
    "/tmp/${OPENSSL_VERSION}-iOS-i386/lib/libssl.a" \
    -create -output lib/libssl_iOS.a

    if [[ $SDK_VERSION == "7.0" ]]; then
    if [[ $SDK_VERSION == "7.1" ]]; then
    echo "Adding 64-bit libraries"
    lipo \
    "lib/libcrypto_iOS.a" \
  4. @jamespanic jamespanic revised this gist Jul 21, 2014. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions openssl-build.sh
    Original file line number Diff line number Diff line change
    @@ -12,7 +12,7 @@ set -e

    usage ()
    {
    echo "usage: $0 [minimum iOS SDK version (default 7.0)]"
    echo "usage: $0 [minimum iOS SDK version (default 7.1)]"
    exit 127
    }

    @@ -21,12 +21,12 @@ if [ $1 -e "-h" ]; then
    fi

    if [ -z $1 ]; then
    SDK_VERSION="7.0"
    SDK_VERSION="7.1"
    else
    SDK_VERSION=$1
    fi

    OPENSSL_VERSION="openssl-1.0.1e"
    OPENSSL_VERSION="openssl-1.0.1h"
    DEVELOPER=`xcode-select -print-path`

    buildMac()
  5. foozmeat revised this gist Oct 1, 2013. 1 changed file with 68 additions and 70 deletions.
    138 changes: 68 additions & 70 deletions openssl-build.sh
    Original file line number Diff line number Diff line change
    @@ -12,80 +12,78 @@ set -e

    usage ()
    {
    echo "usage: $0 [minimum iOS SDK version (default 7.0)]"
    exit 127
    echo "usage: $0 [minimum iOS SDK version (default 7.0)]"
    exit 127
    }

    if [ $1 -e "-h" ]; then
    usage
    usage
    fi

    if [ -z $1 ]; then
    SDK_VERSION="7.0"
    SDK_VERSION="7.0"
    else
    SDK_VERSION=$1
    SDK_VERSION=$1
    fi

    # Setup paths to stuff we need

    OPENSSL_VERSION="openssl-1.0.1e"
    DEVELOPER=`xcode-select -print-path`

    buildMac()
    {
    ARCH=$1
    ARCH=$1

    echo "Building ${OPENSSL_VERSION} for ${ARCH}"
    echo "Building ${OPENSSL_VERSION} for ${ARCH}"

    TARGET="darwin-i386-cc"
    TARGET="darwin-i386-cc"

    if [[ $ARCH == "x86_64" ]]; then
    TARGET="darwin64-x86_64-cc"
    fi
    if [[ $ARCH == "x86_64" ]]; then
    TARGET="darwin64-x86_64-cc"
    fi

    pushd . > /dev/null
    cd "${OPENSSL_VERSION}"
    ./Configure ${TARGET} --openssldir="/tmp/${OPENSSL_VERSION}-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-${ARCH}.log"
    make >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make install >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make clean >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    popd > /dev/null
    pushd . > /dev/null
    cd "${OPENSSL_VERSION}"
    ./Configure ${TARGET} --openssldir="/tmp/${OPENSSL_VERSION}-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-${ARCH}.log"
    make >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make install >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make clean >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    popd > /dev/null
    }

    buildIOS()
    {
    ARCH=$1
    ARCH=$1

    pushd . > /dev/null
    cd "${OPENSSL_VERSION}"
    pushd . > /dev/null
    cd "${OPENSSL_VERSION}"

    if [[ "${ARCH}" == "i386" || "${ARCH}" == "x86_64" ]]; then
    PLATFORM="iPhoneSimulator"
    else
    PLATFORM="iPhoneOS"
    sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"
    else
    PLATFORM="iPhoneOS"
    sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"
    fi

    export $PLATFORM
    export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
    export CROSS_SDK="${PLATFORM}${SDK_VERSION}.sdk"
    export BUILD_TOOLS="${DEVELOPER}"
    export $PLATFORM
    export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
    export CROSS_SDK="${PLATFORM}${SDK_VERSION}.sdk"
    export BUILD_TOOLS="${DEVELOPER}"
    export CC="${BUILD_TOOLS}/usr/bin/gcc -arch ${ARCH}"

    echo "Building ${OPENSSL_VERSION} for ${PLATFORM} ${SDK_VERSION} ${ARCH}"

    if [[ "${ARCH}" == "x86_64" ]]; then
    ./Configure darwin64-x86_64-cc --openssldir="/tmp/${OPENSSL_VERSION}-iOS-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log"
    else
    ./Configure iphoneos-cross --openssldir="/tmp/${OPENSSL_VERSION}-iOS-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log"
    fi
    ./Configure darwin64-x86_64-cc --openssldir="/tmp/${OPENSSL_VERSION}-iOS-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log"
    else
    ./Configure iphoneos-cross --openssldir="/tmp/${OPENSSL_VERSION}-iOS-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log"
    fi
    # add -isysroot to CC=
    sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=${SDK_VERSION} !" "Makefile"
    sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=${SDK_VERSION} !" "Makefile"

    make >> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log" 2>&1
    make install >> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log" 2>&1
    make clean >> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log" 2>&1
    popd > /dev/null
    make >> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log" 2>&1
    make install >> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log" 2>&1
    make clean >> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log" 2>&1
    popd > /dev/null
    }

    echo "Cleaning up"
    @@ -100,10 +98,10 @@ rm -rf "/tmp/${OPENSSL_VERSION}-*.log"
    rm -rf "${OPENSSL_VERSION}"

    if [ ! -e ${OPENSSL_VERSION}.tar.gz ]; then
    echo "Downloading ${OPENSSL_VERSION}.tar.gz"
    curl -O http://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz
    echo "Downloading ${OPENSSL_VERSION}.tar.gz"
    curl -O http://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz
    else
    echo "Using ${OPENSSL_VERSION}.tar.gz"
    echo "Using ${OPENSSL_VERSION}.tar.gz"
    fi

    echo "Unpacking openssl"
    @@ -117,49 +115,49 @@ cp /tmp/${OPENSSL_VERSION}-i386/include/openssl/* include/openssl/

    echo "Building Mac libraries"
    lipo \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_Mac.a
    "/tmp/${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_Mac.a

    lipo \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libssl.a" \
    -create -output lib/libssl_Mac.a
    "/tmp/${OPENSSL_VERSION}-i386/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libssl.a" \
    -create -output lib/libssl_Mac.a

    buildIOS "armv7"
    buildIOS "armv7s"
    if [[ $SDK_VERSION == "7.0" ]]; then
    buildIOS "arm64"
    buildIOS "x86_64"
    buildIOS "arm64"
    buildIOS "x86_64"
    fi
    buildIOS "i386"

    echo "Building iOS libraries"
    lipo \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7s/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-i386/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a
    "/tmp/${OPENSSL_VERSION}-iOS-armv7/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7s/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-i386/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a

    lipo \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7s/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-i386/lib/libssl.a" \
    -create -output lib/libssl_iOS.a
    "/tmp/${OPENSSL_VERSION}-iOS-armv7/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7s/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-i386/lib/libssl.a" \
    -create -output lib/libssl_iOS.a

    if [[ $SDK_VERSION == "7.0" ]]; then
    echo "Adding 64-bit libraries"
    lipo \
    "lib/libcrypto_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-arm64/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a

    lipo \
    "lib/libssl_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-arm64/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-x86_64/lib/libssl.a" \
    -create -output lib/libssl_iOS.a
    echo "Adding 64-bit libraries"
    lipo \
    "lib/libcrypto_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-arm64/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a

    lipo \
    "lib/libssl_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-arm64/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-x86_64/lib/libssl.a" \
    -create -output lib/libssl_iOS.a

    fi

  6. foozmeat revised this gist Oct 1, 2013. 1 changed file with 81 additions and 73 deletions.
    154 changes: 81 additions & 73 deletions openssl-build.sh
    Original file line number Diff line number Diff line change
    @@ -12,18 +12,18 @@ set -e

    usage ()
    {
    echo "usage: $0 [minimum iOS SDK version (default 7.0)]"
    exit 127
    echo "usage: $0 [minimum iOS SDK version (default 7.0)]"
    exit 127
    }

    if [ $1 -e "-h" ]; then
    usage
    usage
    fi

    if [ -z $1 ]; then
    SDK_VERSION="7.0"
    SDK_VERSION="7.0"
    else
    SDK_VERSION=$1
    SDK_VERSION=$1
    fi

    # Setup paths to stuff we need
    @@ -33,55 +33,59 @@ DEVELOPER=`xcode-select -print-path`

    buildMac()
    {
    ARCH=$1
    ARCH=$1

    echo "Building ${OPENSSL_VERSION} for ${ARCH}"
    echo "Building ${OPENSSL_VERSION} for ${ARCH}"

    TARGET="darwin-i386-cc"
    TARGET="darwin-i386-cc"

    if [[ $ARCH == "x86_64" ]]; then
    TARGET="darwin64-x86_64-cc"
    fi
    if [[ $ARCH == "x86_64" ]]; then
    TARGET="darwin64-x86_64-cc"
    fi

    pushd . > /dev/null
    cd "${OPENSSL_VERSION}"
    ./Configure ${TARGET} --openssldir="/tmp/${OPENSSL_VERSION}-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-${ARCH}.log"
    make >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make install >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make clean >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    popd > /dev/null
    pushd . > /dev/null
    cd "${OPENSSL_VERSION}"
    ./Configure ${TARGET} --openssldir="/tmp/${OPENSSL_VERSION}-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-${ARCH}.log"
    make >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make install >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make clean >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    popd > /dev/null
    }

    buildIOS()
    {
    ARCH=$1

    pushd . > /dev/null
    cd "${OPENSSL_VERSION}"

    if [ "${ARCH}" == "i386" ];
    then
    PLATFORM="iPhoneSimulator"
    else
    sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"
    PLATFORM="iPhoneOS"
    fi

    export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
    export CROSS_SDK="${PLATFORM}${SDK_VERSION}.sdk"
    export BUILD_TOOLS="${DEVELOPER}"
    export CC="${BUILD_TOOLS}/usr/bin/gcc -arch ${ARCH}"

    echo "Building ${OPENSSL_VERSION} for ${PLATFORM} ${SDK_VERSION} ${ARCH}"
    ./Configure iphoneos-cross --openssldir="/tmp/${OPENSSL_VERSION}-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-${ARCH}.log"

    # add -isysroot to CC=
    sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/Platforms/${PLATFORM}.platform/Developer/SDKs/${CROSS_SDK} -miphoneos-version-min=${SDK_VERSION} !" "Makefile"

    make >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make install >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make clean >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    popd > /dev/null
    ARCH=$1

    pushd . > /dev/null
    cd "${OPENSSL_VERSION}"

    if [[ "${ARCH}" == "i386" || "${ARCH}" == "x86_64" ]]; then
    PLATFORM="iPhoneSimulator"
    else
    PLATFORM="iPhoneOS"
    sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"
    fi

    export $PLATFORM
    export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
    export CROSS_SDK="${PLATFORM}${SDK_VERSION}.sdk"
    export BUILD_TOOLS="${DEVELOPER}"
    export CC="${BUILD_TOOLS}/usr/bin/gcc -arch ${ARCH}"

    echo "Building ${OPENSSL_VERSION} for ${PLATFORM} ${SDK_VERSION} ${ARCH}"

    if [[ "${ARCH}" == "x86_64" ]]; then
    ./Configure darwin64-x86_64-cc --openssldir="/tmp/${OPENSSL_VERSION}-iOS-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log"
    else
    ./Configure iphoneos-cross --openssldir="/tmp/${OPENSSL_VERSION}-iOS-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log"
    fi
    # add -isysroot to CC=
    sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=${SDK_VERSION} !" "Makefile"

    make >> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log" 2>&1
    make install >> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log" 2>&1
    make clean >> "/tmp/${OPENSSL_VERSION}-iOS-${ARCH}.log" 2>&1
    popd > /dev/null
    }

    echo "Cleaning up"
    @@ -96,10 +100,10 @@ rm -rf "/tmp/${OPENSSL_VERSION}-*.log"
    rm -rf "${OPENSSL_VERSION}"

    if [ ! -e ${OPENSSL_VERSION}.tar.gz ]; then
    echo "Downloading ${OPENSSL_VERSION}.tar.gz"
    curl -O http://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz
    echo "Downloading ${OPENSSL_VERSION}.tar.gz"
    curl -O http://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz
    else
    echo "Using ${OPENSSL_VERSION}.tar.gz"
    echo "Using ${OPENSSL_VERSION}.tar.gz"
    fi

    echo "Unpacking openssl"
    @@ -113,46 +117,50 @@ cp /tmp/${OPENSSL_VERSION}-i386/include/openssl/* include/openssl/

    echo "Building Mac libraries"
    lipo \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_Mac.a
    "/tmp/${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_Mac.a

    lipo \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libssl.a" \
    -create -output lib/libssl_Mac.a
    "/tmp/${OPENSSL_VERSION}-i386/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libssl.a" \
    -create -output lib/libssl_Mac.a

    buildIOS "armv7"
    buildIOS "armv7s"
    if [[ $SDK_VERSION == "7.0" ]]; then
    buildIOS "arm64"
    buildIOS "arm64"
    buildIOS "x86_64"
    fi
    buildIOS "i386"

    echo "Building iOS libraries"
    lipo \
    "/tmp/${OPENSSL_VERSION}-armv7/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-armv7s/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a
    "/tmp/${OPENSSL_VERSION}-iOS-armv7/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7s/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-i386/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a

    lipo \
    "/tmp/${OPENSSL_VERSION}-armv7/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-armv7s/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libssl.a" \
    -create -output lib/libssl_iOS.a
    "/tmp/${OPENSSL_VERSION}-iOS-armv7/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-armv7s/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-i386/lib/libssl.a" \
    -create -output lib/libssl_iOS.a

    if [[ $SDK_VERSION == "7.0" ]]; then
    echo "Adding arm64 libraries"
    lipo \
    "lib/libcrypto_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-arm64/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a
    echo "Adding 64-bit libraries"
    lipo \
    "lib/libcrypto_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-arm64/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a

    lipo \
    "lib/libssl_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-arm64/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-iOS-x86_64/lib/libssl.a" \
    -create -output lib/libssl_iOS.a

    lipo \
    "lib/libssl_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-arm64/lib/libssl.a" \
    -create -output lib/libssl_iOS.a
    fi

    echo "Cleaning up"
  7. foozmeat revised this gist Sep 24, 2013. 1 changed file with 131 additions and 71 deletions.
    202 changes: 131 additions & 71 deletions openssl-build.sh
    100644 → 100755
    Original file line number Diff line number Diff line change
    @@ -1,102 +1,162 @@
    #!/bin/bash

    # This script builds the iOS and Mac openSSL libraries
    # It's expanded from https://github.com/st3fan/ios-openssl
    # Download openssl http://www.openssl.org/source/ and place the tarball next to this script

    set -xe
    # Credits:
    # https://github.com/st3fan/ios-openssl
    # https://github.com/x2on/OpenSSL-for-iPhone/blob/master/build-libssl.sh

    # Setup paths to stuff we need

    OPENSSL_VERSION="1.0.1e"
    DEVELOPER="/Applications/Xcode.app/Contents/Developer"
    SDK_VERSION="6.1"
    set -e

    IPHONEOS_PLATFORM="${DEVELOPER}/Platforms/iPhoneOS.platform"
    IPHONEOS_SDK="${IPHONEOS_PLATFORM}/Developer/SDKs/iPhoneOS${SDK_VERSION}.sdk"
    IPHONEOS_GCC="${IPHONEOS_PLATFORM}/Developer/usr/bin/gcc"
    usage ()
    {
    echo "usage: $0 [minimum iOS SDK version (default 7.0)]"
    exit 127
    }

    IPHONESIMULATOR_PLATFORM="${DEVELOPER}/Platforms/iPhoneSimulator.platform"
    IPHONESIMULATOR_SDK="${IPHONESIMULATOR_PLATFORM}/Developer/SDKs/iPhoneSimulator${SDK_VERSION}.sdk"
    IPHONESIMULATOR_GCC="${IPHONESIMULATOR_PLATFORM}/Developer/usr/bin/gcc"
    if [ $1 -e "-h" ]; then
    usage
    fi

    # Clean up whatever was left from our previous build
    if [ -z $1 ]; then
    SDK_VERSION="7.0"
    else
    SDK_VERSION=$1
    fi

    rm -rf include/openssl/* lib/*
    rm -rf "/tmp/openssl-${OPENSSL_VERSION}-*"
    rm -rf "/tmp/openssl-${OPENSSL_VERSION}-*.log"
    # Setup paths to stuff we need

    OPENSSL_VERSION="openssl-1.0.1e"
    DEVELOPER=`xcode-select -print-path`

    buildMac()
    {
    ARCH=$1

    TARGET="darwin-i386-cc"

    if [[ $ARCH == "x86_64" ]]; then
    TARGET="darwin64-x86_64-cc"
    fi

    rm -rf "openssl-${OPENSSL_VERSION}"
    tar xfz "openssl-${OPENSSL_VERSION}.tar.gz"
    pushd .
    cd "openssl-${OPENSSL_VERSION}"
    ./Configure ${TARGET} --openssldir="/tmp/openssl-${OPENSSL_VERSION}-${ARCH}" &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    make &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    make install &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    popd
    rm -rf "openssl-${OPENSSL_VERSION}"
    ARCH=$1

    echo "Building ${OPENSSL_VERSION} for ${ARCH}"

    TARGET="darwin-i386-cc"

    if [[ $ARCH == "x86_64" ]]; then
    TARGET="darwin64-x86_64-cc"
    fi

    pushd . > /dev/null
    cd "${OPENSSL_VERSION}"
    ./Configure ${TARGET} --openssldir="/tmp/${OPENSSL_VERSION}-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-${ARCH}.log"
    make >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make install >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make clean >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    popd > /dev/null
    }

    buildIOS()
    {
    ARCH=$1
    GCC=$2
    SDK=$3
    rm -rf "openssl-${OPENSSL_VERSION}"
    tar xfz "openssl-${OPENSSL_VERSION}.tar.gz"
    pushd .
    cd "openssl-${OPENSSL_VERSION}"
    ./Configure BSD-generic32 --openssldir="/tmp/openssl-${OPENSSL_VERSION}-${ARCH}" &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    perl -i -pe 's|static volatile sig_atomic_t intr_signal|static volatile int intr_signal|' crypto/ui/ui_openssl.c
    perl -i -pe "s|^CC= gcc|CC= ${GCC} -arch ${ARCH}|g" Makefile
    perl -i -pe "s|^CFLAG= (.*)|CFLAG= -isysroot ${SDK} \$1|g" Makefile
    make &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    make install &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    popd
    rm -rf "openssl-${OPENSSL_VERSION}"
    ARCH=$1

    pushd . > /dev/null
    cd "${OPENSSL_VERSION}"

    if [ "${ARCH}" == "i386" ];
    then
    PLATFORM="iPhoneSimulator"
    else
    sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"
    PLATFORM="iPhoneOS"
    fi

    export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
    export CROSS_SDK="${PLATFORM}${SDK_VERSION}.sdk"
    export BUILD_TOOLS="${DEVELOPER}"
    export CC="${BUILD_TOOLS}/usr/bin/gcc -arch ${ARCH}"

    echo "Building ${OPENSSL_VERSION} for ${PLATFORM} ${SDK_VERSION} ${ARCH}"
    ./Configure iphoneos-cross --openssldir="/tmp/${OPENSSL_VERSION}-${ARCH}" &> "/tmp/${OPENSSL_VERSION}-${ARCH}.log"

    # add -isysroot to CC=
    sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/Platforms/${PLATFORM}.platform/Developer/SDKs/${CROSS_SDK} -miphoneos-version-min=${SDK_VERSION} !" "Makefile"

    make >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make install >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    make clean >> "/tmp/${OPENSSL_VERSION}-${ARCH}.log" 2>&1
    popd > /dev/null
    }

    echo "Cleaning up"
    rm -rf include/openssl/* lib/*

    mkdir -p lib
    mkdir -p include/openssl/

    rm -rf "/tmp/${OPENSSL_VERSION}-*"
    rm -rf "/tmp/${OPENSSL_VERSION}-*.log"

    rm -rf "${OPENSSL_VERSION}"

    if [ ! -e ${OPENSSL_VERSION}.tar.gz ]; then
    echo "Downloading ${OPENSSL_VERSION}.tar.gz"
    curl -O http://www.openssl.org/source/${OPENSSL_VERSION}.tar.gz
    else
    echo "Using ${OPENSSL_VERSION}.tar.gz"
    fi

    echo "Unpacking openssl"
    tar xfz "${OPENSSL_VERSION}.tar.gz"

    buildMac "i386"
    buildMac "x86_64"

    mkdir -p include/openssl/
    cp /tmp/openssl-${OPENSSL_VERSION}-i386/include/openssl/* include/openssl/
    echo "Copying headers"
    cp /tmp/${OPENSSL_VERSION}-i386/include/openssl/* include/openssl/

    mkdir -p lib
    lipo \
    "/tmp/openssl-${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_Mac.a
    echo "Building Mac libraries"
    lipo \
    "/tmp/openssl-${OPENSSL_VERSION}-i386/lib/libssl.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-x86_64/lib/libssl.a" \
    -create -output lib/libssl_Mac.a
    "/tmp/${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_Mac.a

    lipo \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-x86_64/lib/libssl.a" \
    -create -output lib/libssl_Mac.a

    buildIOS "armv7"
    buildIOS "armv7s"
    if [[ $SDK_VERSION == "7.0" ]]; then
    buildIOS "arm64"
    fi
    buildIOS "i386"

    echo "Building iOS libraries"
    lipo \
    "/tmp/${OPENSSL_VERSION}-armv7/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-armv7s/lib/libcrypto.a" \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a

    buildIOS "armv7" "${IPHONEOS_GCC}" "${IPHONEOS_SDK}"
    buildIOS "armv7s" "${IPHONEOS_GCC}" "${IPHONEOS_SDK}"
    buildIOS "i386" "${IPHONESIMULATOR_GCC}" "${IPHONESIMULATOR_SDK}"
    lipo \
    "/tmp/${OPENSSL_VERSION}-armv7/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-armv7s/lib/libssl.a" \
    "/tmp/${OPENSSL_VERSION}-i386/lib/libssl.a" \
    -create -output lib/libssl_iOS.a

    if [[ $SDK_VERSION == "7.0" ]]; then
    echo "Adding arm64 libraries"
    lipo \
    "/tmp/openssl-${OPENSSL_VERSION}-armv7/lib/libcrypto.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-armv7s/lib/libcrypto.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a
    "lib/libcrypto_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-arm64/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a

    lipo \
    "/tmp/openssl-${OPENSSL_VERSION}-armv7/lib/libssl.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-armv7s/lib/libssl.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-i386/lib/libssl.a" \
    -create -output lib/libssl_iOS.a
    "lib/libssl_iOS.a" \
    "/tmp/${OPENSSL_VERSION}-arm64/lib/libssl.a" \
    -create -output lib/libssl_iOS.a
    fi

    rm -rf "/tmp/openssl-${OPENSSL_VERSION}-*"
    rm -rf "/tmp/openssl-${OPENSSL_VERSION}-*.log"
    echo "Cleaning up"
    rm -rf /tmp/${OPENSSL_VERSION}-*
    rm -rf ${OPENSSL_VERSION}

    echo "Done"
  8. foozmeat created this gist Mar 13, 2013.
    102 changes: 102 additions & 0 deletions openssl-build.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,102 @@
    #!/bin/bash

    # This script builds the iOS and Mac openSSL libraries
    # It's expanded from https://github.com/st3fan/ios-openssl

    set -xe

    # Setup paths to stuff we need

    OPENSSL_VERSION="1.0.1e"
    DEVELOPER="/Applications/Xcode.app/Contents/Developer"
    SDK_VERSION="6.1"

    IPHONEOS_PLATFORM="${DEVELOPER}/Platforms/iPhoneOS.platform"
    IPHONEOS_SDK="${IPHONEOS_PLATFORM}/Developer/SDKs/iPhoneOS${SDK_VERSION}.sdk"
    IPHONEOS_GCC="${IPHONEOS_PLATFORM}/Developer/usr/bin/gcc"

    IPHONESIMULATOR_PLATFORM="${DEVELOPER}/Platforms/iPhoneSimulator.platform"
    IPHONESIMULATOR_SDK="${IPHONESIMULATOR_PLATFORM}/Developer/SDKs/iPhoneSimulator${SDK_VERSION}.sdk"
    IPHONESIMULATOR_GCC="${IPHONESIMULATOR_PLATFORM}/Developer/usr/bin/gcc"

    # Clean up whatever was left from our previous build

    rm -rf include/openssl/* lib/*
    rm -rf "/tmp/openssl-${OPENSSL_VERSION}-*"
    rm -rf "/tmp/openssl-${OPENSSL_VERSION}-*.log"

    buildMac()
    {
    ARCH=$1

    TARGET="darwin-i386-cc"

    if [[ $ARCH == "x86_64" ]]; then
    TARGET="darwin64-x86_64-cc"
    fi

    rm -rf "openssl-${OPENSSL_VERSION}"
    tar xfz "openssl-${OPENSSL_VERSION}.tar.gz"
    pushd .
    cd "openssl-${OPENSSL_VERSION}"
    ./Configure ${TARGET} --openssldir="/tmp/openssl-${OPENSSL_VERSION}-${ARCH}" &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    make &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    make install &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    popd
    rm -rf "openssl-${OPENSSL_VERSION}"
    }

    buildIOS()
    {
    ARCH=$1
    GCC=$2
    SDK=$3
    rm -rf "openssl-${OPENSSL_VERSION}"
    tar xfz "openssl-${OPENSSL_VERSION}.tar.gz"
    pushd .
    cd "openssl-${OPENSSL_VERSION}"
    ./Configure BSD-generic32 --openssldir="/tmp/openssl-${OPENSSL_VERSION}-${ARCH}" &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    perl -i -pe 's|static volatile sig_atomic_t intr_signal|static volatile int intr_signal|' crypto/ui/ui_openssl.c
    perl -i -pe "s|^CC= gcc|CC= ${GCC} -arch ${ARCH}|g" Makefile
    perl -i -pe "s|^CFLAG= (.*)|CFLAG= -isysroot ${SDK} \$1|g" Makefile
    make &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    make install &> "/tmp/openssl-${OPENSSL_VERSION}-${ARCH}.log"
    popd
    rm -rf "openssl-${OPENSSL_VERSION}"
    }

    buildMac "i386"
    buildMac "x86_64"

    mkdir -p include/openssl/
    cp /tmp/openssl-${OPENSSL_VERSION}-i386/include/openssl/* include/openssl/

    mkdir -p lib
    lipo \
    "/tmp/openssl-${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-x86_64/lib/libcrypto.a" \
    -create -output lib/libcrypto_Mac.a
    lipo \
    "/tmp/openssl-${OPENSSL_VERSION}-i386/lib/libssl.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-x86_64/lib/libssl.a" \
    -create -output lib/libssl_Mac.a


    buildIOS "armv7" "${IPHONEOS_GCC}" "${IPHONEOS_SDK}"
    buildIOS "armv7s" "${IPHONEOS_GCC}" "${IPHONEOS_SDK}"
    buildIOS "i386" "${IPHONESIMULATOR_GCC}" "${IPHONESIMULATOR_SDK}"

    lipo \
    "/tmp/openssl-${OPENSSL_VERSION}-armv7/lib/libcrypto.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-armv7s/lib/libcrypto.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-i386/lib/libcrypto.a" \
    -create -output lib/libcrypto_iOS.a
    lipo \
    "/tmp/openssl-${OPENSSL_VERSION}-armv7/lib/libssl.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-armv7s/lib/libssl.a" \
    "/tmp/openssl-${OPENSSL_VERSION}-i386/lib/libssl.a" \
    -create -output lib/libssl_iOS.a

    rm -rf "/tmp/openssl-${OPENSSL_VERSION}-*"
    rm -rf "/tmp/openssl-${OPENSSL_VERSION}-*.log"