xref: /aosp_15_r20/external/jemalloc_new/android/conf.sh (revision 1208bc7e437ced7eb82efac44ba17e3beba411da)
1*1208bc7eSAndroid Build Coastguard Worker#!/bin/bash
2*1208bc7eSAndroid Build Coastguard Worker# This script is used to run configure and generate all of the necessary
3*1208bc7eSAndroid Build Coastguard Worker# files when updating to a new version of jemalloc.
4*1208bc7eSAndroid Build Coastguard Worker# The NDK argument must be a NDK at r20 or newer so that it does not
5*1208bc7eSAndroid Build Coastguard Worker# require installing the standalone tools.
6*1208bc7eSAndroid Build Coastguard Worker
7*1208bc7eSAndroid Build Coastguard Workerndk=${1}
8*1208bc7eSAndroid Build Coastguard Workerif [[ "$ndk" == "" ]]; then
9*1208bc7eSAndroid Build Coastguard Worker  echo "Requires two arguments."
10*1208bc7eSAndroid Build Coastguard Worker  echo "usage: conf.sh NDK ARCH"
11*1208bc7eSAndroid Build Coastguard Worker  exit 1
12*1208bc7eSAndroid Build Coastguard Workerfi
13*1208bc7eSAndroid Build Coastguard Worker
14*1208bc7eSAndroid Build Coastguard Workerarch=${2}
15*1208bc7eSAndroid Build Coastguard Workerif [[ "$arch" == "" ]]; then
16*1208bc7eSAndroid Build Coastguard Worker  echo "Requires two arguments."
17*1208bc7eSAndroid Build Coastguard Worker  echo "usage: conf.sh NDK ARCH"
18*1208bc7eSAndroid Build Coastguard Worker  exit 1
19*1208bc7eSAndroid Build Coastguard Workerfi
20*1208bc7eSAndroid Build Coastguard Worker
21*1208bc7eSAndroid Build Coastguard Workerif [[ ! -d ${ndk} ]]; then
22*1208bc7eSAndroid Build Coastguard Worker  echo "NDK directory ${ndk} does not exist."
23*1208bc7eSAndroid Build Coastguard Worker  exit 1
24*1208bc7eSAndroid Build Coastguard Workerfi
25*1208bc7eSAndroid Build Coastguard Workertoolchain=${ndk}/toolchains/llvm/prebuilt/linux-x86_64
26*1208bc7eSAndroid Build Coastguard Workerif [[ ! -d ${toolchain} ]]; then
27*1208bc7eSAndroid Build Coastguard Worker  echo "NDK ${ndk} cannot find toolchain directory."
28*1208bc7eSAndroid Build Coastguard Worker  echo "  ${toolchain}"
29*1208bc7eSAndroid Build Coastguard Worker  exit 1
30*1208bc7eSAndroid Build Coastguard Workerfi
31*1208bc7eSAndroid Build Coastguard Worker
32*1208bc7eSAndroid Build Coastguard Worker# The latest version of clang to use for compilation.
33*1208bc7eSAndroid Build Coastguard Workerlatest_api=29
34*1208bc7eSAndroid Build Coastguard Worker
35*1208bc7eSAndroid Build Coastguard Workercase "$arch" in
36*1208bc7eSAndroid Build Coastguard Worker  "arm")
37*1208bc7eSAndroid Build Coastguard Worker    prefix="arm-linux-androideabi"
38*1208bc7eSAndroid Build Coastguard Worker    clang_prefix="armv7a-linux-androideabi"
39*1208bc7eSAndroid Build Coastguard Worker    target="arm-android-linux"
40*1208bc7eSAndroid Build Coastguard Worker    ;;
41*1208bc7eSAndroid Build Coastguard Worker  "arm64")
42*1208bc7eSAndroid Build Coastguard Worker    prefix="aarch64-linux-android"
43*1208bc7eSAndroid Build Coastguard Worker    target="aarch64-android-linux"
44*1208bc7eSAndroid Build Coastguard Worker    ;;
45*1208bc7eSAndroid Build Coastguard Worker  "x86")
46*1208bc7eSAndroid Build Coastguard Worker    target="x86-android-linux"
47*1208bc7eSAndroid Build Coastguard Worker    export CPPFLAGS="-m32"
48*1208bc7eSAndroid Build Coastguard Worker    ;&
49*1208bc7eSAndroid Build Coastguard Worker  "x86_64")
50*1208bc7eSAndroid Build Coastguard Worker    prefix="x86_64-linux-android"
51*1208bc7eSAndroid Build Coastguard Worker    if [[ "$target" == "" ]]; then
52*1208bc7eSAndroid Build Coastguard Worker      target="x86_64-android-linux"
53*1208bc7eSAndroid Build Coastguard Worker    fi
54*1208bc7eSAndroid Build Coastguard Worker    ;;
55*1208bc7eSAndroid Build Coastguard Worker  *)
56*1208bc7eSAndroid Build Coastguard Worker    echo "Unknown arch $arch"
57*1208bc7eSAndroid Build Coastguard Worker    exit 1
58*1208bc7eSAndroid Build Coastguard Worker    ;;
59*1208bc7eSAndroid Build Coastguard Workeresac
60*1208bc7eSAndroid Build Coastguard Worker
61*1208bc7eSAndroid Build Coastguard Workerif [[ "${clang_prefix}" == "" ]]; then
62*1208bc7eSAndroid Build Coastguard Worker  clang_prefix="${prefix}"
63*1208bc7eSAndroid Build Coastguard Workerfi
64*1208bc7eSAndroid Build Coastguard Worker
65*1208bc7eSAndroid Build Coastguard Workertools=("AR" "ar"
66*1208bc7eSAndroid Build Coastguard Worker       "AS" "as"
67*1208bc7eSAndroid Build Coastguard Worker       "LD" "ld"
68*1208bc7eSAndroid Build Coastguard Worker       "RANLIB" "ranlib"
69*1208bc7eSAndroid Build Coastguard Worker       "STRIP" "strip")
70*1208bc7eSAndroid Build Coastguard Worker
71*1208bc7eSAndroid Build Coastguard Workerfor ((i = 0; i < ${#tools[@]}; i = i + 2)); do
72*1208bc7eSAndroid Build Coastguard Worker  binary=${toolchain}/bin/${prefix}-${tools[$((i + 1))]}
73*1208bc7eSAndroid Build Coastguard Worker  if [[ ! -e ${binary} ]]; then
74*1208bc7eSAndroid Build Coastguard Worker    echo "${binary} does not exist."
75*1208bc7eSAndroid Build Coastguard Worker    exit 1
76*1208bc7eSAndroid Build Coastguard Worker  fi
77*1208bc7eSAndroid Build Coastguard Worker  export ${tools[$i]}=${binary}
78*1208bc7eSAndroid Build Coastguard Workerdone
79*1208bc7eSAndroid Build Coastguard Worker
80*1208bc7eSAndroid Build Coastguard Workerclang=("CC" "clang"
81*1208bc7eSAndroid Build Coastguard Worker       "CXX" "clang++")
82*1208bc7eSAndroid Build Coastguard Worker
83*1208bc7eSAndroid Build Coastguard Workerfor ((i = 0; i < ${#clang[@]}; i = i + 2)); do
84*1208bc7eSAndroid Build Coastguard Worker  binary=${toolchain}/bin/${clang_prefix}${latest_api}-${clang[$((i + 1))]}
85*1208bc7eSAndroid Build Coastguard Worker  if [[ ! -e ${binary} ]]; then
86*1208bc7eSAndroid Build Coastguard Worker    echo "${binary} does not exist."
87*1208bc7eSAndroid Build Coastguard Worker    exit 1
88*1208bc7eSAndroid Build Coastguard Worker  fi
89*1208bc7eSAndroid Build Coastguard Worker  export ${clang[$i]}=${binary}
90*1208bc7eSAndroid Build Coastguard Workerdone
91*1208bc7eSAndroid Build Coastguard Worker
92*1208bc7eSAndroid Build Coastguard Workerexport CPP="${CC} -E"
93*1208bc7eSAndroid Build Coastguard Worker
94*1208bc7eSAndroid Build Coastguard Worker./autogen.sh --with-jemalloc_prefix=je_ --host=${target}
95