Home | History | Annotate | Download | only in tools
      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