2
0
mirror of https://gitlab.com/Nanolx/NanoDroid synced 2024-10-31 09:20:23 +00:00
NanoDroid/tools/openssl-ndk-static.sh

40 lines
1.7 KiB
Bash
Raw Normal View History

#!/bin/sh
OPENSSL_VERSION="${OPENSSL_VERSION:-1.1.1o}"
curl -sSL "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" | tar xz
cd "openssl-${OPENSSL_VERSION}"
sed -i 's/-mandroid//' Configurations/15-android.conf
export CXXFLAGS="-std=c++11 -fPIC" CPPFLAGS="-DANDROID -fPIC"
export ANDROID_NDK_HOME="${ANDROID_NDK_HOME:-/opt/android-sdk/ndk/24.0.8215888}"
build_android_clang(){ # assumes arg3 is always gcc, which is kind of wrong
OPENSSL_PLATFORM="android-${1}" ANDROID_API="${2}" TOOLCHAIN="${3:-llvm}" #TOOLCHAIN="${3:+${3}${2}}" # llvm
if [ "${TOOLCHAIN}" = "llvm" ]; then
export TOOLCHAIN_ROOT="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-$(uname -m)" \
CC="clang" CXX="clang++"
else
export TOOLCHAIN_ROOT="${ANDROID_NDK_HOME}/toolchains/${3:+${TOOLCHAIN}-4.9}/prebuilt/linux-$(uname -m)" \
CC="${3:+${TOOLCHAIN}-}clang" CXX="${3:+${TOOLCHAIN}-}clang++"
#CC="${3:+${TOOLCHAIN}-}gcc" CXX="${3:+${TOOLCHAIN}-}g++"
fi
export AR="${TOOLCHAIN}-ar" \
AS="${TOOLCHAIN}-as" \
RANLIB="${TOOLCHAIN}-ranlib" \
NM="${TOOLCHAIN}-nm" \
STRIP="${TOOLCHAIN}-strip" \
LD="${3:+${TOOLCHAIN}-}ld" \
SYSROOT="${TOOLCHAIN_ROOT}/sysroot" \
PATH="${TOOLCHAIN_ROOT}/bin${PATH:+:${PATH}}"
make clean
./Configure --static -static -ffunction-sections -fdata-sections -Wl,--gc-sections "${OPENSSL_PLATFORM}" no-shared threads no-asm no-sse2 ${ANDROID_API:+-D__ANDROID_API__=${ANDROID_API}} #no-hw no-engine
make -j${NPROC:-$(nproc)} build_generated
make -j${NPROC:-$(nproc)} apps
"${STRIP}" apps/openssl
}
#build_android_clang arm 21 #arm-linux-androideabi
build_android_clang x86 21 #i686-linux-android
#build_android_clang arm64 21 #aarch64-linux-android