Updated build script error checking.
This commit is contained in:
parent
3b21209e72
commit
7b5d0d59c9
@ -26,7 +26,7 @@ ARCHS="i386 x86_64 armv7 armv7s arm64"
|
||||
|
||||
# Use default SDK version if not set
|
||||
if [ -z ${SDK_VERSION} ]; then
|
||||
SDK_VERSION=`xcrun -sdk iphoneos --show-sdk-version`
|
||||
SDK_VERSION=`xcrun -sdk iphoneos --show-sdk-version`
|
||||
fi
|
||||
|
||||
CORES=`sysctl hw.ncpu | awk '{print $2}'`
|
||||
@ -44,87 +44,97 @@ if [ ! -d "$DEVELOPER" ]; then
|
||||
echo "sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer"
|
||||
exit 1
|
||||
fi
|
||||
function run {
|
||||
echo "PATH=$PATH"
|
||||
$@
|
||||
local status=$?
|
||||
if [ $status -ne 0 ]; then
|
||||
echo "error with $@" >&2
|
||||
exit $status
|
||||
fi
|
||||
return $status
|
||||
}
|
||||
|
||||
# Functions
|
||||
function buildArch(){
|
||||
ARCH=$1
|
||||
if [[ "${ARCH}" == "i386" || "${ARCH}" == "x86_64" ]];
|
||||
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
|
||||
ARCH=$1
|
||||
if [[ "${ARCH}" == "i386" || "${ARCH}" == "x86_64" ]];
|
||||
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}"
|
||||
if [ ! -z $MIN_SDK_VERSION ]; then
|
||||
export CC="$CC -miphoneos-version-min=${MIN_SDK_VERSION}"
|
||||
fi
|
||||
echo "Building openssl-${OPENSSLVERSION} for ${PLATFORM} ${SDK_VERSION} ${ARCH} (min SDK set: ${MIN_SDK_VERSION:-"none"})"
|
||||
run export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
|
||||
run export CROSS_SDK="${PLATFORM}${SDK_VERSION}.sdk"
|
||||
run export BUILD_TOOLS="${DEVELOPER}"
|
||||
run export CC="${BUILD_TOOLS}/usr/bin/gcc -arch ${ARCH}"
|
||||
if [ ! -z $MIN_SDK_VERSION ]; then
|
||||
run export CC="$CC -miphoneos-version-min=${MIN_SDK_VERSION}"
|
||||
fi
|
||||
echo "Building openssl-${OPENSSLVERSION} for ${PLATFORM} ${SDK_VERSION} ${ARCH} (min SDK set: ${MIN_SDK_VERSION:-"none"})"
|
||||
|
||||
LOGFILE="BuildLog.darwin-${ARCH}.txt"
|
||||
echo -n " Please wait ..."
|
||||
if [[ "$OPENSSLVERSION" =~ 1.0.0. ]]; then
|
||||
./Configure BSD-generic32 > "${LOGFILE}" 2>&1
|
||||
elif [ "${ARCH}" == "x86_64" ]; then
|
||||
./Configure darwin64-x86_64-cc > "${LOGFILE}" 2>&1
|
||||
elif [ "${ARCH}" == "i386" ]; then
|
||||
./Configure iphoneos-cross no-asm > "${LOGFILE}" 2>&1
|
||||
else
|
||||
./Configure iphoneos-cross > "${LOGFILE}" 2>&1
|
||||
fi
|
||||
LOGFILE="BuildLog.darwin-${ARCH}.txt"
|
||||
echo -n " Please wait ..."
|
||||
if [[ "$OPENSSLVERSION" =~ 1.0.0. ]]; then
|
||||
run ./Configure BSD-generic32 > "${LOGFILE}" 2>&1
|
||||
elif [ "${ARCH}" == "x86_64" ]; then
|
||||
run ./Configure darwin64-x86_64-cc > "${LOGFILE}" 2>&1
|
||||
elif [ "${ARCH}" == "i386" ]; then
|
||||
run ./Configure iphoneos-cross no-asm > "${LOGFILE}" 2>&1
|
||||
else
|
||||
run ./Configure iphoneos-cross > "${LOGFILE}" 2>&1
|
||||
fi
|
||||
|
||||
make ${MAKEOPTS} >> ${LOGFILE} 2>&1
|
||||
echo " Done. Build log saved in ${LOGFILE}"
|
||||
cp libcrypto.a ../../lib/libcrypto_${ARCH}.a
|
||||
cp libssl.a ../../lib/libssl_${ARCH}.a
|
||||
make clean >/dev/null 2>&1
|
||||
run make ${MAKEOPTS} >> ${LOGFILE} 2>&1
|
||||
echo " Done. Build log saved in ${LOGFILE}"
|
||||
run cp libcrypto.a ../../lib/libcrypto_${ARCH}.a
|
||||
run cp libssl.a ../../lib/libssl_${ARCH}.a
|
||||
run make clean >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# main
|
||||
if [ $# -gt 0 ];then
|
||||
INSTALLDIR=$1
|
||||
if [ ! -d $INSTALLDIR ];then
|
||||
echo "Install directory \"$INSTALLDIR\" does not exist"
|
||||
exit 1
|
||||
fi
|
||||
INSTALLDIR=$1
|
||||
if [ ! -d $INSTALLDIR ];then
|
||||
echo "Install directory \"$INSTALLDIR\" does not exist"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
cd $INSTALLDIR
|
||||
if [ ! -d openssl ];then
|
||||
mkdir openssl
|
||||
run mkdir openssl
|
||||
fi
|
||||
cd openssl
|
||||
run cd openssl
|
||||
CS=`shasum -a 256 "openssl-$OPENSSLVERSION.tar.gz" | cut -d ' ' -f1`
|
||||
if [ ! "$CS" = "$SHA256SUM" ]; then
|
||||
echo "Downloading OpenSSL Version $OPENSSLVERSION ..."
|
||||
rm -f "openssl-$OPENSSLVERSION.tar.gz"
|
||||
curl -o "openssl-$OPENSSLVERSION.tar.gz" https://www.openssl.org/source/openssl-$OPENSSLVERSION.tar.gz
|
||||
run rm -f "openssl-$OPENSSLVERSION.tar.gz"
|
||||
run curl -o "openssl-$OPENSSLVERSION.tar.gz" https://www.openssl.org/source/openssl-$OPENSSLVERSION.tar.gz
|
||||
|
||||
CS=`shasum -a 256 "openssl-$OPENSSLVERSION.tar.gz" | cut -d ' ' -f1`
|
||||
if [ ! "$CS" = "$SHA256SUM" ]; then
|
||||
echo "Download failed or invalid checksum. Have a nice day."
|
||||
exit 1
|
||||
echo "Download failed or invalid checksum. Have a nice day."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# remove old build dir
|
||||
rm -rf openssltmp
|
||||
mkdir openssltmp
|
||||
cd openssltmp
|
||||
run rm -rf openssltmp
|
||||
run mkdir openssltmp
|
||||
run cd openssltmp
|
||||
|
||||
echo "Unpacking OpenSSL ..."
|
||||
tar xfz "../openssl-$OPENSSLVERSION.tar.gz"
|
||||
run tar xfz "../openssl-$OPENSSLVERSION.tar.gz"
|
||||
if [ ! $? = 0 ]; then
|
||||
echo "Unpacking failed."
|
||||
exit 1
|
||||
fi
|
||||
echo
|
||||
|
||||
cd "openssl-$OPENSSLVERSION"
|
||||
run cd "openssl-$OPENSSLVERSION"
|
||||
|
||||
case `pwd` in
|
||||
*\ * )
|
||||
@ -134,22 +144,22 @@ case `pwd` in
|
||||
esac
|
||||
|
||||
# Cleanup old build artifacts
|
||||
mkdir -p ../../include/openssl
|
||||
rm -f ../../include/openssl/*.h
|
||||
run mkdir -p ../../include/openssl
|
||||
run rm -f ../../include/openssl/*.h
|
||||
|
||||
mkdir -p ../../lib
|
||||
rm -f ../../lib/*.a
|
||||
run mkdir -p ../../lib
|
||||
run rm -f ../../lib/*.a
|
||||
|
||||
echo "Copying header files ..."
|
||||
cp include/openssl/*.h ../../include/openssl/
|
||||
run cp include/openssl/*.h ../../include/openssl/
|
||||
echo
|
||||
|
||||
for i in ${ARCHS}; do
|
||||
buildArch $i
|
||||
buildArch $i
|
||||
done
|
||||
|
||||
echo "Combining to unversal binary"
|
||||
lipo -create ../../lib/libcrypto_*.a -o ../../lib/libcrypto.a
|
||||
lipo -create ../../lib/libssl_*.a -o ../../lib/libssl.a
|
||||
run lipo -create ../../lib/libcrypto_*.a -o ../../lib/libcrypto.a
|
||||
run lipo -create ../../lib/libssl_*.a -o ../../lib/libssl.a
|
||||
|
||||
echo "Finished. Please verify the contens of the openssl folder in \"$INSTALLDIR\""
|
||||
|
Loading…
Reference in New Issue
Block a user