Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
jni/openssl/*.gz
jni/openssl/sources/*
jni/openssl/sources_*/*
.DS_Store


Binary file added jni/openssl/arch-arm64/lib/libcrypto.a
Binary file not shown.
Binary file added jni/openssl/arch-arm64/lib/libcrypto.so
Binary file not shown.
Binary file added jni/openssl/arch-arm64/lib/libssl.a
Binary file not shown.
Binary file added jni/openssl/arch-arm64/lib/libssl.so
Binary file not shown.
40 changes: 32 additions & 8 deletions jni/openssl/build.sh
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
#!/bin/bash

# Architectures to build libraries for
declare -a ARCHITECTURES=("arm" "armv7a" "x86")
declare -a ARCHITECTURES=("arm" "armv7a" "x86" "arm64v8")

# OpenSSL version to download if src is missing
OPENSSL_VERSION="1.0.2j"

# Set acccording to your Android NDK
ANDROID_PLATFORM="android-14"
ANDROID_PLATFORM="android-21"

ANDROID_ARM_TOOLCHAIN="arm-linux-androideabi-4.8"
ANDROID_X86_TOOLCHAIN="x86-4.8"
ANDROID_ARM_TOOLCHAIN="arm-linux-androideabi-4.9"
ANDROID_X86_TOOLCHAIN="x86-4.9"
ANDROID_ARM64_V8_TOOLCHAIN="aarch64-linux-android-4.9"

####################################################################################################
## Do not modify below this line unless you know what are you doing

ANDROID_ARM_ARCH="arch-arm"
ANDROID_X86_ARCH="arch-x86"
ANDROID_ARM64_ARCH="arch-arm64"

####################################################################################################

Expand Down Expand Up @@ -106,12 +108,29 @@ function compileArmv7 () {
export ANDROID_DEV="$ANDROID_NDK/platforms/${ANDROID_PLATFORM}/${ANDROID_ARM_ARCH}/usr"
export HOSTCC=gcc
env
PATH=$TOOLCHAIN_PATH:$PATH ./config shared no-ssl2 no-ssl3 no-comp no-hw
PATH=$TOOLCHAIN_PATH:$PATH ./config shared
PATH=$TOOLCHAIN_PATH:$PATH make depend
PATH=$TOOLCHAIN_PATH:$PATH make
}

####################################################################################################

function compileArm64v8(){
export TOOLCHAIN_PATH=$(getToolchainDir $ANDROID_ARM64_V8_TOOLCHAIN)
export TOOL=aarch64-linux-android
export SYSTEM=android
export ARCH=arm
export CROSS_COMPILE="aarch64-linux-android-"
export ANDROID_DEV="$ANDROID_NDK/platforms/${ANDROID_PLATFORM}/${ANDROID_ARM64_ARCH}/usr"
export HOSTCC=gcc
env
PATH=$TOOLCHAIN_PATH:$PATH ./Configure android shared
PATH=$TOOLCHAIN_PATH:$PATH make depend
PATH=$TOOLCHAIN_PATH:$PATH make
}

####################################################################################################

# ARM
function compileArm () {
$ANDROID_NDK/build/tools/make-standalone-toolchain.sh --platform=${ANDROID_PLATFORM} --toolchain=${ANDROID_ARM_TOOLCHAIN} --install-dir=`pwd`/android-toolchain-arm
Expand All @@ -131,7 +150,7 @@ function compileArm () {
export CXXFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions "
export CFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 "
export LDFLAGS=" ${ARCH_LINK} "
PATH=$TOOLCHAIN_PATH:$PATH ./Configure android shared no-ssl2 no-ssl3 no-comp no-hw
PATH=$TOOLCHAIN_PATH:$PATH ./Configure android shared
PATH=$TOOLCHAIN_PATH:$PATH make depend
PATH=$TOOLCHAIN_PATH:$PATH make
}
Expand All @@ -148,7 +167,7 @@ function compileX86 () {
export CROSS_COMPILE="i686-linux-android-"
export ANDROID_DEV="$ANDROID_NDK/platforms/${ANDROID_PLATFORM}/${ANDROID_X86_ARCH}/usr"
export HOSTCC=gcc
PATH=$TOOLCHAIN_PATH:$PATH ./config shared no-ssl2 no-ssl3 no-comp no-hw
PATH=$TOOLCHAIN_PATH:$PATH ./config shared
PATH=$TOOLCHAIN_PATH:$PATH make depend
PATH=$TOOLCHAIN_PATH:$PATH make
}
Expand Down Expand Up @@ -179,6 +198,11 @@ function buildArchitectureSeparately () {
# Particular build commands
cleanVars
case "$curArch" in
arm64*)
echo "64-v8a"
compileArm64v8
LIBDIR="${UDIR}/arch-arm64/lib"
;;
armv7*)
echo "armv7"
compileArmv7
Expand All @@ -198,11 +222,11 @@ function buildArchitectureSeparately () {
compileX86
LIBDIR="${UDIR}/arch-x86/lib"
;;

esac
mkdir -p "$LIBDIR"
cp lib*.a "$LIBDIR"
cp lib*.so "$LIBDIR"
cp lib*.so.1.0.0 "$LIBDIR"
}

for i in "${ARCHITECTURES[@]}"
Expand Down