forked from cory/tildefriends
OpenSSL 1.1.1w for Android.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4477 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
95
tools/ssl-android
Executable file
95
tools/ssl-android
Executable file
@ -0,0 +1,95 @@
|
||||
#!/bin/sh
|
||||
|
||||
ANDROID_NDK=~/Android/Sdk/ndk/23.1.7779620
|
||||
OPENSSL_VERSION=1.1.1w
|
||||
|
||||
API_LEVEL=28
|
||||
|
||||
BUILD_DIR=out/openssl_android_build
|
||||
|
||||
BUILD_TARGETS="x86_64 arm64-v8a"
|
||||
|
||||
rm -rfv openssl-${OPENSSL_VERSION}
|
||||
|
||||
if [ ! -d openssl-${OPENSSL_VERSION} ]
|
||||
then
|
||||
if [ ! -f openssl-${OPENSSL_VERSION}.tar.gz ]
|
||||
then
|
||||
wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz || exit 128
|
||||
fi
|
||||
tar xzf openssl-${OPENSSL_VERSION}.tar.gz || exit 128
|
||||
fi
|
||||
WORK_DIR=openssl-${OPENSSL_VERSION}
|
||||
|
||||
##### export ndk directory. Required by openssl-build-scripts #####
|
||||
export ANDROID_NDK
|
||||
|
||||
##### build-function #####
|
||||
build_the_thing() {
|
||||
TOOLCHAIN=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64
|
||||
export PATH=$TOOLCHAIN/$TRIBLE/bin:$TOOLCHAIN/bin:$PATH
|
||||
echo $PATH
|
||||
echo "./Configure $SSL_TARGET $OPTIONS -fuse-ld=$TOOLCHAIN/bin/ld" && \
|
||||
./Configure $SSL_TARGET $OPTIONS -fuse-ld=$TOOLCHAIN/bin/ld 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"
|
||||
cd $WORK_DIR || exit 128
|
||||
|
||||
case $build_target in
|
||||
armeabi)
|
||||
TRIBLE="arm-linux-androideabi"
|
||||
OPTIONS="-mthumb -fPIC -latomic -D__ANDROID_API__=$API_LEVEL"
|
||||
DESTDIR="/tmp/$BUILD_DIR/armeabi"
|
||||
SSL_TARGET="android-arm"
|
||||
CC=clang
|
||||
;;
|
||||
armeabi-v7a)
|
||||
TRIBLE="arm-linux-androideabi"
|
||||
OPTIONS="--target=armv7a-linux-androideabi -Wl,--fix-cortex-a8 -fPIC -D__ANDROID_MIN_SDK_VERSION__=$API_LEVEL "
|
||||
DESTDIR="/tmp/$BUILD_DIR/armeabi-v7a"
|
||||
SSL_TARGET="android-arm"
|
||||
CC=clang
|
||||
;;
|
||||
x86)
|
||||
TRIBLE="i686-linux-android"
|
||||
OPTIONS="-fPIC -D__ANDROID_MIN_SDK_VERSION__=${API_LEVEL}"
|
||||
DESTDIR="/tmp/$BUILD_DIR/x86"
|
||||
SSL_TARGET="android-x86"
|
||||
CC=clang
|
||||
;;
|
||||
x86_64)
|
||||
TRIBLE="x86_64-linux-android"
|
||||
OPTIONS="--static -static -ffunction-sections -fdata-sections -D__ANDROID_API__=${API_LEVEL} -Wno-macro-redefined"
|
||||
DESTDIR="/tmp/$BUILD_DIR/x86_64"
|
||||
SSL_TARGET="android-x86_64"
|
||||
CC=clang
|
||||
;;
|
||||
arm64-v8a)
|
||||
TRIBLE="aarch64-linux-android"
|
||||
OPTIONS="--static -static -fPIC -D__ANDROID_API__=${API_LEVEL} -Wno-macro-redefined"
|
||||
DESTDIR="/tmp/$BUILD_DIR/arm64-v8a"
|
||||
SSL_TARGET="android-arm64"
|
||||
CC=clang
|
||||
;;
|
||||
esac
|
||||
|
||||
rm -rf $DESTDIR
|
||||
build_the_thing
|
||||
cd ..
|
||||
#### copy libraries and includes to output-directory #####
|
||||
echo WORK_DIR=$WORK_DIR
|
||||
rm -rf deps/openssl/android/$build_target/
|
||||
mkdir -p deps/openssl/android/$build_target/usr/local/include
|
||||
mkdir -p deps/openssl/android/$build_target/usr/local/lib/
|
||||
cp -R $WORK_DIR/include/* deps/openssl/android/$build_target/usr/local/include/
|
||||
cp $WORK_DIR/*.a deps/openssl/android/$build_target/usr/local/lib/
|
||||
done
|
||||
|
||||
echo Success
|
Reference in New Issue
Block a user