mirror of
https://github.com/cuberite/libdeflate.git
synced 2025-09-13 06:15:51 -04:00
tools/android_build.sh: support crypto extensions
This commit is contained in:
parent
e7aa4666e0
commit
4282583b9b
@ -5,7 +5,8 @@ set -eu
|
|||||||
ARCH="arm32"
|
ARCH="arm32"
|
||||||
COMPILER="gcc"
|
COMPILER="gcc"
|
||||||
NDKDIR="/opt/android-ndk"
|
NDKDIR="/opt/android-ndk"
|
||||||
DISABLE_NEON=
|
ENABLE_NEON=false
|
||||||
|
ENABLE_CRYPTO=false
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
cat << EOF
|
cat << EOF
|
||||||
@ -15,12 +16,13 @@ Build the libdeflate test programs for Android
|
|||||||
--arch=ARCH Architecture: arm32|arm64 (default: $ARCH)
|
--arch=ARCH Architecture: arm32|arm64 (default: $ARCH)
|
||||||
--compiler=COMPILER Compiler: gcc|clang (default: $COMPILER)
|
--compiler=COMPILER Compiler: gcc|clang (default: $COMPILER)
|
||||||
--ndkdir=NDKDIR Android NDK directory (default: $NDKDIR)
|
--ndkdir=NDKDIR Android NDK directory (default: $NDKDIR)
|
||||||
--disable-neon Disable NEON instructions
|
--enable-neon Enable NEON instructions
|
||||||
|
--enable-crypto Enable crypto extensions (implies NEON too)
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
if ! options=$(getopt -o '' \
|
if ! options=$(getopt -o '' \
|
||||||
-l 'arch:,compiler:,ndkdir:,disable-neon,help' -- "$@"); then
|
-l 'arch:,compiler:,ndkdir:,enable-neon,enable-crypto,help' -- "$@"); then
|
||||||
usage
|
usage
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@ -41,8 +43,11 @@ while [ $# -gt 0 ]; do
|
|||||||
NDKDIR="$2"
|
NDKDIR="$2"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
--disable-neon)
|
--enable-neon)
|
||||||
DISABLE_NEON=1
|
ENABLE_NEON=true
|
||||||
|
;;
|
||||||
|
--enable-crypto)
|
||||||
|
ENABLE_CRYPTO=true
|
||||||
;;
|
;;
|
||||||
--help)
|
--help)
|
||||||
usage
|
usage
|
||||||
@ -66,16 +71,23 @@ case "$ARCH" in
|
|||||||
arm|arm32|aarch32)
|
arm|arm32|aarch32)
|
||||||
GCC_TOOLCHAIN="arm-linux-androideabi-4.9"
|
GCC_TOOLCHAIN="arm-linux-androideabi-4.9"
|
||||||
CLANG_TARGET="armv7-none-linux-androideabi"
|
CLANG_TARGET="armv7-none-linux-androideabi"
|
||||||
if [ -n "$DISABLE_NEON" ]; then
|
if $ENABLE_CRYPTO; then
|
||||||
CFLAGS+=" -march=armv6"
|
CFLAGS+=" -march=armv7-a -mfloat-abi=softfp -mfpu=crypto-neon-fp-armv8"
|
||||||
|
elif $ENABLE_NEON; then
|
||||||
|
CFLAGS+=" -march=armv7-a -mfloat-abi=softfp -mfpu=neon"
|
||||||
else
|
else
|
||||||
CFLAGS+=" -march=armv7-a -mfpu=neon -mfloat-abi=softfp"
|
CFLAGS+=" -march=armv6"
|
||||||
fi
|
fi
|
||||||
CFLAGS+=" --sysroot=\"$NDKDIR/platforms/android-12/arch-arm\""
|
CFLAGS+=" --sysroot=\"$NDKDIR/platforms/android-12/arch-arm\""
|
||||||
;;
|
;;
|
||||||
arm64|aarch64)
|
arm64|aarch64)
|
||||||
GCC_TOOLCHAIN="aarch64-linux-android-4.9"
|
GCC_TOOLCHAIN="aarch64-linux-android-4.9"
|
||||||
CLANG_TARGET="aarch64-none-linux-android"
|
CLANG_TARGET="aarch64-none-linux-android"
|
||||||
|
if $ENABLE_CRYPTO; then
|
||||||
|
CFLAGS+=" -march=armv8-a+crypto"
|
||||||
|
else
|
||||||
|
CFLAGS+=" -march=armv8-a"
|
||||||
|
fi
|
||||||
CFLAGS+=" --sysroot=\"$NDKDIR/platforms/android-21/arch-arm64\""
|
CFLAGS+=" --sysroot=\"$NDKDIR/platforms/android-21/arch-arm64\""
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user