Files
commandergenius/project/jni/openssl/compile.sh
2018-09-24 18:52:37 +03:00

79 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
ARCH_LIST="arm64-v8a x86_64 x86 armeabi-v7a"
PARALLEL=true
mkdir -p build
build() {
ARCH=$1
case $ARCH in
armeabi-v7a)
export CONFIGURE_ARCH=android;;
x86)
export CONFIGURE_ARCH=android;;
arm64-v8a)
export CONFIGURE_ARCH=android64;;
x86_64)
export CONFIGURE_ARCH=android64;;
*)
echo "Arch $ARCH not defined"
exit 1;;
esac
rm -rf build/$ARCH
mkdir -p build/$ARCH
cd build/$ARCH
tar -x -v -z -f ../../openssl-1.1.0h.tar.gz --strip=1
NDK=`which ndk-build`
NDK=`dirname $NDK`
NDK=`readlink -f $NDK`
export CROSS_SYSROOT=$NDK/sysroot/usr
../../setCrossEnvironment-$ARCH.sh sh -c './Configure shared zlib --prefix=`pwd`/dist --openssldir=. $CONFIGURE_ARCH -fPIC' || exit 1
sed -i.old 's/^CFLAGS=/CFLAGS:=$(CFLAGS) /' Makefile
sed -i.old 's/^LDFLAGS=/LDFLAGS:=$(LDFLAGS) /' Makefile
sed -i.old 's/^LIB_LDFLAGS=/LIB_LDFLAGS:=$(LDFLAGS) /' Makefile
sed -i.old 's/-mandroid//g' Makefile
sed -i.old 's/--sysroot=$(CROSS_SYSROOT)//g' Makefile
# OpenSSL build system disables parallel compilation, -j4 won't do anything
../../setCrossEnvironment-$ARCH.sh make SHLIB_MAJOR=sdl SHLIB_MINOR=1.so
cd ../..
rm -rf lib-$ARCH
mkdir -p lib-$ARCH
cp build/$ARCH/libcrypto.so.sdl.1.so lib-${ARCH}/libcrypto.so.sdl.1.so || exit 1
cp build/$ARCH/libssl.so.sdl.1.so lib-${ARCH}/libssl.so.sdl.1.so || exit 1
}
if $PARALLEL; then
PIDS=""
for ARCH in $ARCH_LIST; do
build $ARCH &
PIDS="$PIDS $!"
done
for PID in $PIDS; do
wait $PID || exit 1
done
else
for ARCH in $ARCH_LIST; do
build $ARCH || exit 1
done
fi
rm -rf include
mkdir -p include
cp -r -L build/armeabi-v7a/include/openssl include/openssl || exit 1
patch -p0 < opensslconf.h.patch || exit 1
sed -i.tmp 's@".*/dist/.*"@"."@g' include/openssl/opensslconf.h
rm -f include/openssl/opensslconf.h.tmp