79 lines
1.8 KiB
Bash
Executable File
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
|