1 # Default values used by several dev-scripts. 2 # 3 4 # Current list of platform levels we support 5 # 6 # Note: levels 6 and 7 are omitted since they have the same native 7 # APIs as level 5. Same for levels 10, 11 and 12 8 # 9 API_LEVELS="3 4 5 8 9 14 18" 10 11 # Default ABIs for the target prebuilt binaries. 12 PREBUILT_ABIS="armeabi armeabi-v7a x86 mips" 13 14 # Location of the STLport sources, relative to the NDK root directory 15 STLPORT_SUBDIR=sources/cxx-stl/stlport 16 17 # Location of the GAbi++ sources, relative to the NDK root directory 18 GABIXX_SUBDIR=sources/cxx-stl/gabi++ 19 20 # Location of the GNU libstdc++ headers and libraries, relative to the NDK 21 # root directory. 22 GNUSTL_SUBDIR=sources/cxx-stl/gnu-libstdc++ 23 24 # Location of the LLVM libc++ headers and libraries, relative to the NDK 25 # root directory. 26 LIBCXX_SUBDIR=sources/cxx-stl/llvm-libc++ 27 28 # Location of the libportable sources, relative to the NDK root directory 29 LIBPORTABLE_SUBDIR=sources/android/libportable 30 31 # Location of the compiler-rt sources, relative to the NDK root directory 32 COMPILER_RT_SUBDIR=sources/android/compiler-rt 33 34 # The date to use when downloading toolchain sources from AOSP servers 35 # Leave it empty for tip of tree. 36 TOOLCHAIN_GIT_DATE=now 37 38 # The space-separated list of all GCC versions we support in this NDK 39 DEFAULT_GCC_VERSION_LIST="4.6 4.7 4.8" 40 41 # The default GCC version for this NDK, i.e. the first item in 42 # $DEFAULT_GCC_VERSION_LIST 43 # 44 DEFAULT_GCC_VERSION=$(echo "$DEFAULT_GCC_VERSION_LIST" | tr ' ' '\n' | head -n 1) 45 46 DEFAULT_BINUTILS_VERSION=2.21 47 DEFAULT_GDB_VERSION=7.3.x 48 DEFAULT_MPFR_VERSION=3.1.1 49 DEFAULT_GMP_VERSION=5.0.5 50 DEFAULT_MPC_VERSION=1.0.1 51 DEFAULT_CLOOG_VERSION=0.18.0 52 DEFAULT_ISL_VERSION=0.11.1 53 DEFAULT_PPL_VERSION=1.0 54 DEFAULT_PYTHON_VERSION=2.7.5 55 DEFAULT_PERL_VERSION=5.16.2 56 57 # Default platform to build target binaries against. 58 DEFAULT_PLATFORM=android-9 59 60 # The list of default CPU architectures we support 61 DEFAULT_ARCHS="arm x86 mips" 62 63 # Default toolchain names and prefix 64 # 65 # This is used by get_default_toolchain_name_for_arch and get_default_toolchain_prefix_for_arch 66 # defined below 67 DEFAULT_ARCH_TOOLCHAIN_NAME_arm=arm-linux-androideabi 68 DEFAULT_ARCH_TOOLCHAIN_PREFIX_arm=arm-linux-androideabi 69 70 DEFAULT_ARCH_TOOLCHAIN_NAME_x86=x86 71 DEFAULT_ARCH_TOOLCHAIN_PREFIX_x86=i686-linux-android 72 73 DEFAULT_ARCH_TOOLCHAIN_NAME_x86_64=x86_64 74 DEFAULT_ARCH_TOOLCHAIN_PREFIX_x86_64=x86_64-linux-android 75 76 DEFAULT_ARCH_TOOLCHAIN_NAME_mips=mipsel-linux-android 77 DEFAULT_ARCH_TOOLCHAIN_PREFIX_mips=mipsel-linux-android 78 79 # The space-separated list of all LLVM versions we support in NDK 80 DEFAULT_LLVM_VERSION_LIST="3.3 3.2" 81 82 # The default LLVM version (first item in the list) 83 DEFAULT_LLVM_VERSION=$(echo "$DEFAULT_LLVM_VERSION_LIST" | tr ' ' '\n' | head -n 1) 84 85 # The default URL to download the LLVM tar archive 86 DEFAULT_LLVM_URL="http://llvm.org/releases" 87 88 # The list of default host NDK systems we support 89 DEFAULT_SYSTEMS="linux-x86 windows darwin-x86" 90 91 # The default issue tracker URL 92 DEFAULT_ISSUE_TRACKER_URL="http://source.android.com/source/report-bugs.html" 93 94 # Return default NDK ABI for a given architecture name 95 # $1: Architecture name 96 # Out: ABI name 97 get_default_abi_for_arch () 98 { 99 local RET 100 case $1 in 101 arm) 102 RET="armeabi" 103 ;; 104 x86|x86_64|mips) 105 RET="$1" 106 ;; 107 *) 108 2> echo "ERROR: Unsupported architecture name: $1, use one of: arm x86 x86_64 mips" 109 exit 1 110 ;; 111 esac 112 echo "$RET" 113 } 114 115 116 # Retrieve the list of default ABIs supported by a given architecture 117 # $1: Architecture name 118 # Out: space-separated list of ABI names 119 get_default_abis_for_arch () 120 { 121 local RET 122 case $1 in 123 arm) 124 RET="armeabi armeabi-v7a" 125 ;; 126 x86|x86_64|mips) 127 RET="$1" 128 ;; 129 *) 130 2> echo "ERROR: Unsupported architecture name: $1, use one of: arm x86 x86_64 mips" 131 exit 1 132 ;; 133 esac 134 echo "$RET" 135 } 136 137 # Return toolchain name for given architecture and GCC version 138 # $1: Architecture name (e.g. 'arm') 139 # $2: optional, GCC version (e.g. '4.6') 140 # Out: default arch-specific toolchain name (e.g. 'arm-linux-androideabi-$GCC_VERSION') 141 # Return empty for unknown arch 142 get_toolchain_name_for_arch () 143 { 144 if [ ! -z "$2" ] ; then 145 eval echo \"\${DEFAULT_ARCH_TOOLCHAIN_NAME_$1}-$2\" 146 else 147 eval echo \"\${DEFAULT_ARCH_TOOLCHAIN_NAME_$1}\" 148 fi 149 } 150 151 # Return the default toolchain name for a given architecture 152 # $1: Architecture name (e.g. 'arm') 153 # Out: default arch-specific toolchain name (e.g. 'arm-linux-androideabi-$DEFAULT_GCC_VERSION') 154 # Return empty for unknown arch 155 get_default_toolchain_name_for_arch () 156 { 157 eval echo \"\${DEFAULT_ARCH_TOOLCHAIN_NAME_$1}-$DEFAULT_GCC_VERSION\" 158 } 159 160 # Return the default toolchain program prefix for a given architecture 161 # $1: Architecture name 162 # Out: default arch-specific toolchain prefix (e.g. arm-linux-androideabi) 163 # Return empty for unknown arch 164 get_default_toolchain_prefix_for_arch () 165 { 166 eval echo "\$DEFAULT_ARCH_TOOLCHAIN_PREFIX_$1" 167 } 168 169 # Get the list of all toolchain names for a given architecture 170 # $1: architecture (e.g. 'arm') 171 # Out: list of toolchain names for this arch (e.g. arm-linux-androideabi-4.6 arm-linux-androideabi-4.7) 172 # Return empty for unknown arch 173 get_toolchain_name_list_for_arch () 174 { 175 local PREFIX VERSION RET 176 PREFIX=$(eval echo \"\$DEFAULT_ARCH_TOOLCHAIN_NAME_$1\") 177 if [ -z "$PREFIX" ]; then 178 return 0 179 fi 180 RET="" 181 for VERSION in $DEFAULT_GCC_VERSION_LIST; do 182 RET=$RET" $PREFIX-$VERSION" 183 done 184 RET=${RET## } 185 echo "$RET" 186 } 187 188 # Return the binutils version to be used by default when 189 # building a given version of GCC. This is needed to ensure 190 # we use binutils-2.19 when building gcc-4.4.3 for ARM and x86, 191 # and later binutils in other cases (mips, or gcc-4.6+). 192 # 193 # Note that technically, we could use latest binutils for all versions of 194 # GCC, however, in NDK r7, we did build GCC 4.4.3 with binutils-2.20.1 195 # and this resulted in weird C++ debugging bugs. For NDK r7b and higher, 196 # binutils was reverted to 2.19, to ensure at least 197 # feature/bug compatibility. 198 # 199 # $1: toolchain with version numer (e.g. 'arm-linux-androideabi-4.6') 200 # 201 get_default_binutils_version_for_gcc () 202 { 203 case $1 in 204 mipsel-*-4.4.3|*-4.6) echo "$DEFAULT_BINUTILS_VERSION";; 205 *-4.4.3) echo "2.19";; 206 x86*-4.7) echo "2.23";; # Use 2.23 to get x32 support in ld.gold 207 *-4.7) echo "2.22";; 208 *) echo "2.23";; 209 esac 210 } 211 212 # Return the gdb version to be used by default when building a given 213 # version of GCC. 214 # 215 # $1: toolchain with version numer (e.g. 'arm-linux-androideabi-4.6') 216 # 217 get_default_gdb_version_for_gcc () 218 { 219 case $1 in 220 aarch64-*) echo "7.6";; 221 *) echo "$DEFAULT_GDB_VERSION";; 222 esac 223 } 224