tildefriends/tools/ssl-ios
2024-04-10 19:44:49 -04:00

73 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
OPENSSL_VERSION=3.3.0
API_LEVEL=28
BUILD_DIR=out/openssl_ios_build
BUILD_TARGETS="ios64-xcrun iossimulator-xcrun"
rm -rfv out/openssl-${OPENSSL_VERSION}
if [ ! -d out/openssl-${OPENSSL_VERSION} ]
then
if [ ! -f out/openssl-${OPENSSL_VERSION}.tar.gz ]
then
curl https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz -o out/openssl-${OPENSSL_VERSION}.tar.gz || exit 128
fi
tar -C out/ -xzf out/openssl-${OPENSSL_VERSION}.tar.gz || exit 128
fi
WORK_DIR=out/openssl-${OPENSSL_VERSION}
##### export ndk directory. Required by openssl-build-scripts #####
##### build-function #####
build_the_thing() {
export PATH=$TOOLCHAIN/$TRIBLE/bin:$TOOLCHAIN/bin:$PATH
echo $PATH
echo "./Configure $SSL_TARGET $OPTIONS" && \
./Configure $SSL_TARGET $OPTIONS no-tests && \
make clean && \
make build_generated && \
make libcrypto.a libssl.a || exit 128
}
##### set variables according to build-tagret #####
for build_target in $BUILD_TARGETS
do
echo "Building $build_target"
pwd
pushd $WORK_DIR || exit 128
case $build_target in
ios64-xcrun)
TRIBLE="arm64-darwin-ios"
OPTIONS="--static -static -ffunction-sections -fdata-sections -fPIC -Wno-macro-redefined"
DESTDIR="/tmp/$BUILD_DIR/arm64-ios"
SSL_TARGET="ios64-xcrun"
CC=clang
;;
iossimulator-xcrun)
TRIBLE="x86_64-darwin-ios"
OPTIONS="--static -static -ffunction-sections -fdata-sections -fPIC -Wno-macro-redefined"
DESTDIR="/tmp/$BUILD_DIR/x86_64-iossim"
SSL_TARGET="iossimulator-xcrun"
CC=clang
;;
esac
rm -rf $DESTDIR
build_the_thing
popd
#### copy libraries and includes to output-directory #####
echo WORK_DIR=$WORK_DIR
rm -rf deps/openssl/ios/$build_target/
mkdir -p deps/openssl/ios/$build_target/usr/local/include/
mkdir -p deps/openssl/ios/$build_target/usr/local/lib/
cp -R $WORK_DIR/include/* deps/openssl/ios/$build_target/usr/local/include/
cp $WORK_DIR/*.a deps/openssl/ios/$build_target/usr/local/lib/
done
echo Success