You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.0 KiB
95 lines
2.0 KiB
#!/bin/bash
|
|
# This script is used to run configure and generate all of the necessary
|
|
# files when updating to a new version of jemalloc.
|
|
# The NDK argument must be a NDK at r20 or newer so that it does not
|
|
# require installing the standalone tools.
|
|
|
|
ndk=${1}
|
|
if [[ "$ndk" == "" ]]; then
|
|
echo "Requires two arguments."
|
|
echo "usage: conf.sh NDK ARCH"
|
|
exit 1
|
|
fi
|
|
|
|
arch=${2}
|
|
if [[ "$arch" == "" ]]; then
|
|
echo "Requires two arguments."
|
|
echo "usage: conf.sh NDK ARCH"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -d ${ndk} ]]; then
|
|
echo "NDK directory ${ndk} does not exist."
|
|
exit 1
|
|
fi
|
|
toolchain=${ndk}/toolchains/llvm/prebuilt/linux-x86_64
|
|
if [[ ! -d ${toolchain} ]]; then
|
|
echo "NDK ${ndk} cannot find toolchain directory."
|
|
echo " ${toolchain}"
|
|
exit 1
|
|
fi
|
|
|
|
# The latest version of clang to use for compilation.
|
|
latest_api=29
|
|
|
|
case "$arch" in
|
|
"arm")
|
|
prefix="arm-linux-androideabi"
|
|
clang_prefix="armv7a-linux-androideabi"
|
|
target="arm-android-linux"
|
|
;;
|
|
"arm64")
|
|
prefix="aarch64-linux-android"
|
|
target="aarch64-android-linux"
|
|
;;
|
|
"x86")
|
|
target="x86-android-linux"
|
|
export CPPFLAGS="-m32"
|
|
;&
|
|
"x86_64")
|
|
prefix="x86_64-linux-android"
|
|
if [[ "$target" == "" ]]; then
|
|
target="x86_64-android-linux"
|
|
fi
|
|
;;
|
|
*)
|
|
echo "Unknown arch $arch"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
if [[ "${clang_prefix}" == "" ]]; then
|
|
clang_prefix="${prefix}"
|
|
fi
|
|
|
|
tools=("AR" "ar"
|
|
"AS" "as"
|
|
"LD" "ld"
|
|
"RANLIB" "ranlib"
|
|
"STRIP" "strip")
|
|
|
|
for ((i = 0; i < ${#tools[@]}; i = i + 2)); do
|
|
binary=${toolchain}/bin/${prefix}-${tools[$((i + 1))]}
|
|
if [[ ! -e ${binary} ]]; then
|
|
echo "${binary} does not exist."
|
|
exit 1
|
|
fi
|
|
export ${tools[$i]}=${binary}
|
|
done
|
|
|
|
clang=("CC" "clang"
|
|
"CXX" "clang++")
|
|
|
|
for ((i = 0; i < ${#clang[@]}; i = i + 2)); do
|
|
binary=${toolchain}/bin/${clang_prefix}${latest_api}-${clang[$((i + 1))]}
|
|
if [[ ! -e ${binary} ]]; then
|
|
echo "${binary} does not exist."
|
|
exit 1
|
|
fi
|
|
export ${clang[$i]}=${binary}
|
|
done
|
|
|
|
export CPP="${CC} -E"
|
|
|
|
./autogen.sh --with-jemalloc_prefix=je_ --host=${target}
|