11#! /bin/bash
22
33# Architectures to build libraries for
4- declare -a ARCHITECTURES=(" arm" " armv7a" " x86" )
4+ declare -a ARCHITECTURES=(" arm" " armv7a" " x86" " arm64v8 " )
55
66# OpenSSL version to download if src is missing
77OPENSSL_VERSION=" 1.0.2j"
88
99# Set acccording to your Android NDK
10- ANDROID_PLATFORM=" android-14 "
10+ ANDROID_PLATFORM=" android-21 "
1111
12- ANDROID_ARM_TOOLCHAIN=" arm-linux-androideabi-4.8"
13- ANDROID_X86_TOOLCHAIN=" x86-4.8"
12+ ANDROID_ARM_TOOLCHAIN=" arm-linux-androideabi-4.9"
13+ ANDROID_X86_TOOLCHAIN=" x86-4.9"
14+ ANDROID_ARM64_V8_TOOLCHAIN=" aarch64-linux-android-4.9"
1415
1516# ###################################################################################################
1617# # Do not modify below this line unless you know what are you doing
1718
1819ANDROID_ARM_ARCH=" arch-arm"
1920ANDROID_X86_ARCH=" arch-x86"
21+ ANDROID_ARM64_ARCH=" arch-arm64"
2022
2123# ###################################################################################################
2224
@@ -106,12 +108,29 @@ function compileArmv7 () {
106108 export ANDROID_DEV=" $ANDROID_NDK /platforms/${ANDROID_PLATFORM} /${ANDROID_ARM_ARCH} /usr"
107109 export HOSTCC=gcc
108110 env
109- PATH=$TOOLCHAIN_PATH :$PATH ./config shared no-ssl2 no-ssl3 no-comp no-hw
111+ PATH=$TOOLCHAIN_PATH :$PATH ./config shared
110112 PATH=$TOOLCHAIN_PATH :$PATH make depend
111113 PATH=$TOOLCHAIN_PATH :$PATH make
112114}
113115
114116# ###################################################################################################
117+
118+ function compileArm64v8(){
119+ export TOOLCHAIN_PATH=$( getToolchainDir $ANDROID_ARM64_V8_TOOLCHAIN )
120+ export TOOL=aarch64-linux-android
121+ export SYSTEM=android
122+ export ARCH=arm
123+ export CROSS_COMPILE=" aarch64-linux-android-"
124+ export ANDROID_DEV=" $ANDROID_NDK /platforms/${ANDROID_PLATFORM} /${ANDROID_ARM64_ARCH} /usr"
125+ export HOSTCC=gcc
126+ env
127+ PATH=$TOOLCHAIN_PATH :$PATH ./Configure android shared
128+ PATH=$TOOLCHAIN_PATH :$PATH make depend
129+ PATH=$TOOLCHAIN_PATH :$PATH make
130+ }
131+
132+ # ###################################################################################################
133+
115134# ARM
116135function compileArm () {
117136 $ANDROID_NDK /build/tools/make-standalone-toolchain.sh --platform=${ANDROID_PLATFORM} --toolchain=${ANDROID_ARM_TOOLCHAIN} --install-dir=` pwd` /android-toolchain-arm
@@ -131,7 +150,7 @@ function compileArm () {
131150 export CXXFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions "
132151 export CFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 "
133152 export LDFLAGS=" ${ARCH_LINK} "
134- PATH=$TOOLCHAIN_PATH :$PATH ./Configure android shared no-ssl2 no-ssl3 no-comp no-hw
153+ PATH=$TOOLCHAIN_PATH :$PATH ./Configure android shared
135154 PATH=$TOOLCHAIN_PATH :$PATH make depend
136155 PATH=$TOOLCHAIN_PATH :$PATH make
137156}
@@ -148,7 +167,7 @@ function compileX86 () {
148167 export CROSS_COMPILE=" i686-linux-android-"
149168 export ANDROID_DEV=" $ANDROID_NDK /platforms/${ANDROID_PLATFORM} /${ANDROID_X86_ARCH} /usr"
150169 export HOSTCC=gcc
151- PATH=$TOOLCHAIN_PATH :$PATH ./config shared no-ssl2 no-ssl3 no-comp no-hw
170+ PATH=$TOOLCHAIN_PATH :$PATH ./config shared
152171 PATH=$TOOLCHAIN_PATH :$PATH make depend
153172 PATH=$TOOLCHAIN_PATH :$PATH make
154173}
@@ -179,6 +198,11 @@ function buildArchitectureSeparately () {
179198 # Particular build commands
180199 cleanVars
181200 case " $curArch " in
201+ arm64* )
202+ echo " 64-v8a"
203+ compileArm64v8
204+ LIBDIR=" ${UDIR} /arch-arm64/lib"
205+ ;;
182206 armv7* )
183207 echo " armv7"
184208 compileArmv7
@@ -198,11 +222,11 @@ function buildArchitectureSeparately () {
198222 compileX86
199223 LIBDIR=" ${UDIR} /arch-x86/lib"
200224 ;;
201-
202225 esac
203226 mkdir -p " $LIBDIR "
204227 cp lib* .a " $LIBDIR "
205228 cp lib* .so " $LIBDIR "
229+ cp lib* .so.1.0.0 " $LIBDIR "
206230}
207231
208232for i in " ${ARCHITECTURES[@]} "
0 commit comments