Skip to content

Instantly share code, notes, and snippets.

@bernardotorres
Forked from tmiz/build_openssl_dylib.sh
Last active August 29, 2015 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save bernardotorres/de3a87aa13b2e6dc758d to your computer and use it in GitHub Desktop.
Save bernardotorres/de3a87aa13b2e6dc758d to your computer and use it in GitHub Desktop.
Build latest OpenSSL Universal Binary on OSX.
#!/bin/bash
OPENSSL_VERSION="1.0.1g"
curl -O http://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
tar -xvzf openssl-$OPENSSL_VERSION.tar.gz
mv openssl-$OPENSSL_VERSION openssl_i386
tar -xvzf openssl-$OPENSSL_VERSION.tar.gz
mv openssl-$OPENSSL_VERSION openssl_x86_64
cd openssl_i386
./Configure darwin-i386-cc -shared
make
cd ../
cd openssl_x86_64
./Configure darwin64-x86_64-cc -shared
make
cd ../
lipo -create openssl_i386/libcrypto.1.0.0.dylib openssl_x86_64/libcrypto.1.0.0.dylib -output libcrypto.1.0.0.dylib
lipo -create openssl_i386/libssl.1.0.0.dylib openssl_x86_64/libssl.1.0.0.dylib -output libssl.1.0.0.dylib
rm openssl-$OPENSSL_VERSION.tar.gz#!/bin/bash
OPENSSL_VERSION="1.0.1"
OPENSSL_WRONG_VERSION="1.0.0"
OPENSSL_REVISION="g"
OPENSSL_RELEASE="openssl-$OPENSSL_VERSION$OPENSSL_REVISION"
OPENSSL_PACKAGE="$OPENSSL_RELEASE.tar.gz"
PREFIX="/usr/local/"
rm $OPENSSL_PACKAGE
echo curl -O http://www.openssl.org/source/$OPENSSL_PACKAGE
curl -O http://www.openssl.org/source/$OPENSSL_PACKAGE
LIPO_CRYPTO_CMD="lipo -create "
LIPO_SSL_CMD="$LIPO_CRYPTO_CMD"
PLATFORMS="darwin-i386-cc darwin64-x86_64-cc"
LIBDIR="$PREFIX/lib/"
OPENSSL_DIR="$OPENSSL/ssl/"
tar -xvzf $OPENSSL_PACKAGE
for PLATFORM in $PLATFORMS
do
cp -pr $OPENSSL_RELEASE openssl_$PLATFORM
cd openssl_$PLATFORM
./Configure $PLATFORM -shared --prefix="$PREFIX" --openssldir="$OPENSSL_DIR"
make
cd ../
LIPO_CRYPTO_CMD="$LIPO_CRYPTO_CMD openssl_$PLATFORM/libcrypto.$OPENSSL_WRONG_VERSION.dylib"
LIPO_SSL_CMD="$LIPO_SSL_CMD openssl_$PLATFORM/libssl.$OPENSSL_WRONG_VERSION.dylib"
rm openssl_$PLATFORM
done
LIPO_CRYPTO_CMD="$LIPO_CRYPTO_CMD -output $LIBDIR/libcrypto.$OPENSSL_VERSION.dylib"
LIPO_SSL_CMD="$LIPO_SSL_CMD -output $LIBDIR/libssl.$OPENSSL_VERSION.dylib"
echo "Running $LIPO_CRYPTO_CMD"
$LIPO_CRYPTO_CMD
echo "Running $LIPO_SSL_CMD"
$LIPO_SSL_CMD
for PLATFORM in $PLATFORMS
do
rm -rf openssl_$PLATFORM
done
rm -f $OPENSSL_RELEASE
rm -f $OPENSSL_PACKAGE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment