2024-02-18 21:22:42 -05:00
|
|
|
#!/bin/bash
|
2023-09-27 18:23:52 -04:00
|
|
|
|
2024-02-18 21:22:42 -05:00
|
|
|
if [ -z $ANDROID_NDK_ROOT ]; then
|
|
|
|
ANDROID_NDK_ROOT=~/Android/Sdk/ndk/26.1.10909125
|
2024-01-30 22:06:47 -05:00
|
|
|
fi
|
2023-09-27 18:23:52 -04:00
|
|
|
|
2023-10-22 14:07:23 -04:00
|
|
|
API_LEVEL=24
|
2023-09-27 18:23:52 -04:00
|
|
|
|
|
|
|
BUILD_DIR=out/openssl_android_build
|
|
|
|
|
2023-10-11 14:44:50 -04:00
|
|
|
BUILD_TARGETS="x86_64 x86 arm64-v8a armeabi-v7a"
|
2023-09-27 18:23:52 -04:00
|
|
|
|
2024-09-04 20:24:32 -04:00
|
|
|
WORK_DIR=out/openssl-android
|
2024-07-10 19:25:01 -04:00
|
|
|
rm -rf $WORK_DIR
|
|
|
|
cp -arf deps/openssl_src/ $WORK_DIR
|
2023-09-27 18:23:52 -04:00
|
|
|
|
2024-02-18 21:22:42 -05:00
|
|
|
export ANDROID_NDK_ROOT
|
|
|
|
echo ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT
|
2023-09-27 18:23:52 -04:00
|
|
|
|
|
|
|
build_the_thing() {
|
2024-02-18 21:22:42 -05:00
|
|
|
TOOLCHAIN=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64
|
2023-09-27 18:23:52 -04:00
|
|
|
export PATH=$TOOLCHAIN/$TRIBLE/bin:$TOOLCHAIN/bin:$PATH
|
|
|
|
echo $PATH
|
2024-01-06 16:33:20 -05:00
|
|
|
export GLOBAL_OPTIONS="
|
|
|
|
no-apps
|
|
|
|
no-asm
|
|
|
|
no-async
|
|
|
|
no-autoerrinit
|
2024-07-31 19:58:41 -04:00
|
|
|
no-autoload-config
|
2024-01-06 16:33:20 -05:00
|
|
|
no-cmp
|
|
|
|
no-cms
|
|
|
|
no-comp
|
|
|
|
no-deprecated
|
|
|
|
no-dgram
|
|
|
|
no-docs
|
|
|
|
no-dsa
|
|
|
|
no-dso
|
|
|
|
no-dtls
|
2024-07-31 19:58:41 -04:00
|
|
|
no-dtls1
|
|
|
|
no-dtls1-method
|
2024-01-06 16:33:20 -05:00
|
|
|
no-dynamic-engine
|
|
|
|
no-ec2m
|
|
|
|
no-egd
|
|
|
|
no-engine
|
|
|
|
no-err
|
|
|
|
no-filenames
|
|
|
|
no-gost
|
|
|
|
no-http
|
|
|
|
no-idea
|
|
|
|
no-legacy
|
|
|
|
no-md2
|
|
|
|
no-md4
|
|
|
|
no-module
|
|
|
|
no-multiblock
|
|
|
|
no-nextprotoneg
|
|
|
|
no-ocsp
|
|
|
|
no-psk
|
|
|
|
no-shared
|
|
|
|
no-sock
|
|
|
|
no-srp
|
2024-07-31 19:58:41 -04:00
|
|
|
no-ssl
|
2024-01-06 16:33:20 -05:00
|
|
|
no-ssl3
|
|
|
|
no-ssl-trace
|
|
|
|
no-stdio
|
|
|
|
no-tests
|
|
|
|
no-thread-pool
|
|
|
|
no-threads
|
2024-07-31 19:58:41 -04:00
|
|
|
no-tls1
|
|
|
|
no-tls1-method
|
2024-01-06 16:33:20 -05:00
|
|
|
no-trace
|
|
|
|
no-ui-console
|
|
|
|
no-uplink
|
2024-07-31 19:58:41 -04:00
|
|
|
no-whirlpool
|
2024-01-06 16:33:20 -05:00
|
|
|
no-weak-ssl-ciphers
|
|
|
|
no-zlib
|
2024-12-24 14:47:33 -05:00
|
|
|
-Oz
|
2024-07-25 16:02:14 -04:00
|
|
|
-DOPENSSL_SMALL_FOOTPRINT
|
2024-12-24 14:47:33 -05:00
|
|
|
-ffunction-sections
|
|
|
|
-fdata-sections
|
2024-07-25 16:02:14 -04:00
|
|
|
-flto"
|
2024-02-18 21:22:42 -05:00
|
|
|
pwd
|
2024-07-10 19:25:01 -04:00
|
|
|
echo "./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS" && \
|
|
|
|
./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS && \
|
2024-08-04 12:10:52 -04:00
|
|
|
make -s clean && \
|
|
|
|
make -s build_generated && \
|
|
|
|
make -s libcrypto.a libssl.a || exit 128
|
2023-09-27 18:23:52 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
for build_target in $BUILD_TARGETS
|
|
|
|
do
|
|
|
|
echo "Building $build_target"
|
2024-02-18 21:22:42 -05:00
|
|
|
pwd
|
|
|
|
pushd $WORK_DIR || exit 128
|
2023-09-27 18:23:52 -04:00
|
|
|
|
|
|
|
case $build_target in
|
|
|
|
armeabi-v7a)
|
|
|
|
TRIBLE="arm-linux-androideabi"
|
2023-10-19 16:21:17 -04:00
|
|
|
OPTIONS="--target=armv7a-linux-androideabi -ffunction-sections -fdata-sections -Wl,--fix-cortex-a8 -fPIC -D__ANDROID_API__=$API_LEVEL -Wno-macro-redefined"
|
2023-09-27 18:23:52 -04:00
|
|
|
DESTDIR="/tmp/$BUILD_DIR/armeabi-v7a"
|
|
|
|
SSL_TARGET="android-arm"
|
|
|
|
CC=clang
|
|
|
|
;;
|
|
|
|
x86)
|
|
|
|
TRIBLE="i686-linux-android"
|
2023-10-19 16:21:17 -04:00
|
|
|
OPTIONS="-fPIC -ffunction-sections -fdata-sections -D__ANDROID_API__=${API_LEVEL} -Wno-macro-redefined"
|
2023-09-27 18:23:52 -04:00
|
|
|
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"
|
2023-09-27 20:32:52 -04:00
|
|
|
OPTIONS="--static -static -ffunction-sections -fdata-sections -fPIC -D__ANDROID_API__=${API_LEVEL} -Wno-macro-redefined"
|
2023-09-27 18:23:52 -04:00
|
|
|
DESTDIR="/tmp/$BUILD_DIR/arm64-v8a"
|
|
|
|
SSL_TARGET="android-arm64"
|
|
|
|
CC=clang
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
rm -rf $DESTDIR
|
|
|
|
build_the_thing
|
2024-02-18 21:22:42 -05:00
|
|
|
popd
|
2023-09-27 18:23:52 -04:00
|
|
|
echo WORK_DIR=$WORK_DIR
|
|
|
|
rm -rf deps/openssl/android/$build_target/
|
2024-02-21 19:46:28 -05:00
|
|
|
mkdir -p deps/openssl/android/$build_target/usr/local/include/
|
2023-09-27 18:23:52 -04:00
|
|
|
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
|