Commit b0d90531 authored by David 'Digit' Turner's avatar David 'Digit' Turner
Browse files

build/tools/dev-defaults.sh: new script

This patch moves the definitions of all defaults to dev-defaults.
This should make it easier in the future to upgrade the toolchains
or target binaries.

Change-Id: I140b51c5b5116d37d16e628120f8f58974252de4
parent cd4b3969
......@@ -36,22 +36,22 @@ OPTION_BUILD_OUT=
register_var_option "--build-out=<path>" OPTION_BUILD_OUT "Set temporary build directory"
# Note: platform API level 9 or higher is needed for proper C++ support
PLATFORM=android-9
PLATFORM=$DEFAULT_PLATFORM
register_var_option "--platform=<name>" PLATFORM "Specify platform name"
OPTION_SYSROOT=
register_var_option "--sysroot=<path>" OPTION_SYSROOT "Specify sysroot directory directly"
GDB_VERSION=7.1.x
GDB_VERSION=$DEFAULT_GDB_VERSION
register_var_option "--gdb-version=<version>" GDB_VERSION "Specify gdb version"
BINUTILS_VERSION=2.20.1
BINUTILS_VERSION=$DEFAULT_BINUTILS_VERSION
register_var_option "--binutils-version=<version>" BINUTILS_VERSION "Specify binutils version"
GMP_VERSION=4.2.4
GMP_VERSION=$DEFAULT_GMP_VERSION
register_var_option "--gmp-version=<version>" GMP_VERSION "Specify gmp version"
MPFR_VERSION=2.4.1
MPFR_VERSION=$DEFAULT_MPFR_VERSION
register_var_option "--mpfr-version=<version>" MPFR_VERSION "Specify mpfr version"
register_jobs_option
......
......@@ -43,7 +43,7 @@ BUILD_OUT=/tmp/ndk-$USER/build/gdbserver
register_option "--build-out=<path>" do_build_out "Set temporary build directory"
do_build_out () { OPTION_BUILD_OUT="$1"; }
PLATFORM=android-9
PLATFORM=$DEFAULT_PLATFORM
register_var_option "--platform=<name>" PLATFORM "Target specific platform"
SYSROOT=
......
......@@ -76,7 +76,7 @@ if [ -z "$SRCDIR" ]; then
exit 1
fi
GNUSTL_SRCDIR=$SRCDIR/gcc/gcc-4.4.3/libstdc++-v3
GNUSTL_SRCDIR=$SRCDIR/gcc/gcc-$DEFAULT_GCC_VERSION/libstdc++-v3
if [ ! -d "$GNUSTL_SRCDIR" ]; then
echo "ERROR: Not a valid toolchain source tree."
echo "Can't find: $GNUSTL_SRCDIR"
......@@ -186,7 +186,7 @@ copy_gnustl_libs ()
local BUILDDIR="$2"
local ARCH=$(convert_abi_to_arch $ABI)
local VERSION=$DEFAULT_GCC_VERSION
local PREFIX=$(get_default_toolchain_prefix_for $ARCH)
local PREFIX=$(get_default_toolchain_prefix_for_arch $ARCH)
PREFIX=${PREFIX%%-}
local SDIR="$BUILDDIR/install"
......
......@@ -366,4 +366,3 @@ builder_begin_android ()
;;
esac
}
......@@ -41,7 +41,7 @@ register_var_option "--out-dir=<path>" OUT_DIR "Alternate installation location.
CLEAN_NDK=no
register_var_option "--clean-ndk" CLEAN_NDK "Remove binaries from NDK installation."
TOOLCHAIN=arm-linux-androideabi-4.4.3
TOOLCHAIN=$DEFAULT_ARCH_TOOLCHAIN_NAME_arm
register_var_option "--toolchain=<name>" TOOLCHAIN "Specify toolchain name."
REVERSE=no
......
# Default values used by several dev-scripts.
#
# Current list of platform levels we support
#
# Note: levels 6 and 7 are omitted since they have the same native
# APIs as level 5. Same for levels 10, 11 and 12
#
API_LEVELS="3 4 5 8 9 13"
# Default ABIs for the target prebuilt binaries.
PREBUILT_ABIS="armeabi armeabi-v7a x86"
# Location of the STLport sources, relative to the NDK root directory
STLPORT_SUBDIR=sources/cxx-stl/stlport
# Location of the GAbi++ sources, relative to the NDK root directory
GABIXX_SUBDIR=sources/cxx-stl/gabi++
# Location of the GNU libstdc++ headers and libraries, relative to the NDK
# root directory.
GNUSTL_SUBDIR=sources/cxx-stl/gnu-libstdc++
# The date to use when downloading toolchain sources from android.git.kernel.org
# Leave it empty for tip of tree.
TOOLCHAIN_GIT_DATE=2011-02-23
DEFAULT_GCC_VERSION=4.4.3
DEFAULT_BINUTILS_VERSION=2.20.1
DEFAULT_GDB_VERSION=6.6
DEFAULT_MPFR_VERSION=2.4.1
DEFAULT_GMP_VERSION=4.2.4
# Default platform to build target binaries against.
DEFAULT_PLATFORM=android-9
# The list of default CPU architectures we support
DEFAULT_ARCHS="arm x86"
# Default toolchain names and prefix
#
# This is used by get_default_toolchain_name_for_arch and get_default_toolchain_prefix_for_arch
# defined below
DEFAULT_ARCH_TOOLCHAIN_arm=arm-linux-androideabi-$DEFAULT_GCC_VERSION
DEFAULT_ARCH_TOOLCHAIN_PREFIX_arm=arm-linux-androideabi
DEFAULT_ARCH_TOOLCHAIN_x86=x86-$DEFAULT_GCC_VERSION
DEFAULT_ARCH_TOOLCHAIN_PREFIX_x86=i686-android-linux
# The list of default host NDK systems we support
DEFAULT_SYSTEMS="linux-x86 windows darwin-x86"
# Return default NDK ABI for a given architecture name
# $1: Architecture name
# Out: ABI name
get_default_abi_for_arch ()
{
local RET
case $1 in
arm)
RET="armeabi"
;;
x86)
RET="x86"
;;
*)
2> echo "ERROR: Unsupported architecture name: $1, use one of: arm x86"
exit 1
;;
esac
echo "$RET"
}
# Retrieve the list of default ABIs supported by a given architecture
# $1: Architecture name
# Out: space-separated list of ABI names
get_default_abis_for_arch ()
{
local RET
case $1 in
arm)
RET="armeabi armeabi-v7a"
;;
x86)
RET="x86"
;;
*)
2> echo "ERROR: Unsupported architecture name: $1, use one of: arm x86"
exit 1
;;
esac
echo "$RET"
}
# Return the default name for a given architecture
# $1: Architecture name
# Out: default arch-specific toolchain name (e.g. arm-linux-androideabi-$GCC_VERSION)
# Return empty for unknown arch
get_default_toolchain_name_for_arch ()
{
eval echo "\$DEFAULT_ARCH_TOOLCHAIN_$1"
}
# Return the default toolchain program prefix for a given architecture
# $1: Architecture name
# Out: default arch-specific toolchain prefix (e.g. arm-linux-androideabi)
# Return empty for unknown arch
get_default_toolchain_prefix_for_arch ()
{
eval echo "\$DEFAULT_ARCH_TOOLCHAIN_PREFIX_$1"
}
......@@ -178,8 +178,8 @@ log "Android build tree root: $ANDROID_ROOT"
log "Android product out: $ANDROID_PRODUCT_OUT"
if [ -z "$TOOLCHAIN_PREFIX" ]; then
TOOLCHAIN_NAME=$(get_default_toolchain_name_for $ARCH)
TOOLCHAIN_PREFIX=$(get_default_toolchain_prefix_for $ARCH)
TOOLCHAIN_NAME=$(get_default_toolchain_name_for_arch $ARCH)
TOOLCHAIN_PREFIX=$(get_default_toolchain_prefix_for_arch $ARCH)
TOOLCHAIN_PREFIX=$(get_toolchain_install $ANDROID_NDK_ROOT $TOOLCHAIN_NAME)/bin/$TOOLCHAIN_PREFIX
TOOLCHAIN_PREFIX=${TOOLCHAIN_PREFIX%%-}
if [ -z "$TOOLCHAIN_PREFIX" ]; then
......
......@@ -41,7 +41,7 @@ OPTION_QUICK_BUILD="no"
register_var_option "--quick" OPTION_QUICK_BUILD "Only build the Linux basics"
# List of toolchains to package
OPTION_TOOLCHAINS="arm-linux-androideabi-4.4.3,x86-4.4.3"
OPTION_TOOLCHAINS="$DEFAULT_ARCH_TOOLCHAIN_NAME_arm,$DEFAULT_ARCH_TOOLCHAIN_NAME_x86"
register_var_option "--toolchains=<toolchain[,toolchain]>" OPTION_TOOLCHAINS "Toolchain(s) to package"
# # Name of the Mac OS Build host
......
......@@ -186,12 +186,12 @@ log "Android product out: $ANDROID_PRODUCT_OUT"
case $ARCH in
arm)
TOOLCHAIN=arm-linux-androideabi-4.4.3
PREFIX=arm-linux-androideabi
TOOLCHAIN=$DEFAULT_ARCH_TOOLCHAIN_NAME_arm
PREFIX=$DEFAULT_ARCH_TOOLCHAIN_PREFIX_arm
;;
x86)
TOOLCHAIN=x86-4.4.3
PREFIX=i686-android-linux
TOOLCHAIN=$DEFAULT_ARCH_TOOLCHAIN_NAME_x86
PREFIX=$DEFAULT_ARCH_TOOLCHAIN_PREFIX_x86
;;
*)
echo "ERROR: Unsupported architecture: $ARCH"
......@@ -199,8 +199,8 @@ case $ARCH in
esac
if [ -z "$TOOLCHAIN_PREFIX" ]; then
TOOLCHAIN_NAME=$(get_default_toolchain_name_for $ARCH)
TOOLCHAIN_PREFIX=$(get_default_toolchain_prefix_for $ARCH)
TOOLCHAIN_NAME=$(get_default_toolchain_name_for_arch $ARCH)
TOOLCHAIN_PREFIX=$(get_default_toolchain_prefix_for_arch $ARCH)
TOOLCHAIN_PREFIX=$(get_toolchain_install $ANDROID_NDK_ROOT $TOOLCHAIN_NAME)/bin/$TOOLCHAIN_PREFIX
TOOLCHAIN_PREFIX=${TOOLCHAIN_PREFIX%%-}
if [ -z "$TOOLCHAIN_PREFIX" ]; then
......
......@@ -79,7 +79,7 @@ fi
# Check toolchain name
if [ -z "$TOOLCHAIN_NAME" ]; then
TOOLCHAIN_NAME=$(get_default_toolchain_name_for $ARCH)
TOOLCHAIN_NAME=$(get_default_toolchain_name_for_arch $ARCH)
echo "Auto-config: --toolchain=$TOOLCHAIN_NAME"
fi
......
......@@ -46,11 +46,11 @@ PREBUILT_NDK=
register_var_option "--prebuilt-ndk=<file>" PREBUILT_NDK "Specify prebuilt ndk package"
# the list of supported host development systems
SYSTEMS="linux-x86,darwin-x86,windows"
SYSTEMS=$DEFAULT_SYSTEMS
register_var_option "--systems=<list>" SYSTEMS "Specify host systems"
# ARCH to build for
ARCHS="arm,x86"
ARCHS=$DEFAULT_ARCHS
register_var_option "--arch=<arch>" ARCHS "Specify target architecture(s)"
# set to 'yes' if we should use 'git ls-files' to list the files to
......@@ -59,7 +59,7 @@ NO_GIT=no
register_var_option "--no-git" NO_GIT "Don't use git to list input files, take all of them."
# set of toolchain prebuilts we need to package
TOOLCHAINS="arm-linux-androideabi-4.4.3"
TOOLCHAINS="$DEFAULT_ARCH_TOOLCHAIN_NAME_arm"
OPTION_TOOLCHAINS=$TOOLCHAINS
register_var_option "--toolchains=<list>" OPTION_TOOLCHAINS "Specify list of toolchains."
......@@ -117,14 +117,12 @@ fi
# Compute ABIS from ARCHS
ABIS=
for ARCH in $ARCHS; do
case $ARCH in
arm)
ABIS="$ABIS armeabi armeabi-v7a"
;;
*)
ABIS="$ABIS $ARCH"
;;
esac
DEFAULT_ABIS=$(get_default_abis_for_arch $ARCH)
if [ -z "$ABIS" ]; then
ABIS=$DEFAULT_ABIS
else
ABIS=$ABIS" $DEFAULT_ABIS"
fi
done
# If --arch is used to list x86 as a target architecture, Add x86-4.4.3 to
......@@ -137,7 +135,7 @@ if [ "$OPTION_TOOLCHAINS" != "$TOOLCHAINS" ]; then
TOOLCHAINS=$(commas_to_spaces $OPTION_TOOLCHAINS)
else
if [ "$TRY_X86" = "yes" ]; then
TOOLCHAINS="$TOOLCHAINS x86-4.4.3"
TOOLCHAINS="$TOOLCHAINS $DEFAULT_ARCH_TOOLCHAIN_NAME_x86"
fi
TOOLCHAINS=$(commas_to_spaces $TOOLCHAINS)
fi
......
......@@ -20,6 +20,7 @@ fi
NDK_BUILDTOOLS_ABSPATH=$(cd $NDK_BUILDTOOLS_PATH && pwd)
. $NDK_BUILDTOOLS_PATH/../core/ndk-common.sh
. $NDK_BUILDTOOLS_PATH/dev-defaults.sh
#====================================================
#
......@@ -853,67 +854,14 @@ convert_abi_to_arch ()
echo "$RET"
}
get_default_abi_for_arch ()
{
local RET
case $1 in
arm)
RET="armeabi"
;;
x86)
RET="x86"
;;
*)
2> echo "ERROR: Unsupported architecture name: $1, use one of: arm x86"
exit 1
;;
esac
echo "$RET"
}
# Retrieve the list of default ABIs supported by a given architecture
# $1: Architecture name
# Result: space-separated list of ABI names
get_default_abis_for_arch ()
{
local RET
case $1 in
arm)
RET="armeabi armeabi-v7a"
;;
x86)
RET="x86"
;;
*)
2> echo "ERROR: Unsupported architecture name: $1, use one of: arm x86"
exit 1
;;
esac
echo "$RET"
}
# Return the default name for a given architecture
# $1: Architecture name
get_default_toolchain_name_for ()
{
eval echo "\$DEFAULT_ARCH_TOOLCHAIN_$1"
}
# Return the default toolchain program prefix for a given architecture
# $1: Architecture name
get_default_toolchain_prefix_for ()
{
eval echo "\$DEFAULT_ARCH_TOOLCHAIN_PREFIX_$1"
}
# Return the default binary path prefix for a given architecture
# For example: arm -> toolchains/arm-linux-androideabi-4.4.3/prebuilt/<system>/bin/arm-linux-androideabi-
# $1: Architecture name
get_default_toolchain_binprefix_for_arch ()
{
local NAME PREFIX DIR BINPREFIX
NAME=$(get_default_toolchain_name_for $1)
PREFIX=$(get_default_toolchain_prefix_for $1)
NAME=$(get_default_toolchain_name_for_arch $1)
PREFIX=$(get_default_toolchain_prefix_for_arch $1)
DIR=$(get_toolchain_install . $NAME)
BINPREFIX=${DIR#./}/bin/$PREFIX
echo "$BINPREFIX"
......@@ -1047,42 +995,3 @@ if [ -z "$NDK_TMPDIR" ]; then
fi
export NDK_TMPDIR
fi
#
# Common definitions
#
# Current list of platform levels we support
#
# Note: levels 6 and 7 are omitted since they have the same native
# APIs as level 5.
#
API_LEVELS="3 4 5 8 9"
# Location of the STLport sources, relative to the NDK root directory
STLPORT_SUBDIR=sources/cxx-stl/stlport
# Location of the GAbi++ sources, relative to the NDK root directory
GABIXX_SUBDIR=sources/cxx-stl/gabi++
# Default ABIs for the prebuilt GAbi++ and STLport binaries
PREBUILT_ABIS="armeabi armeabi-v7a x86"
# Location of the GNU libstdc++ headers and libraries, relative to the NDK
# root directory.
GNUSTL_SUBDIR=sources/cxx-stl/gnu-libstdc++
# The date to use when downloading toolchain sources from android.git.kernel.org
# Leave it empty for tip of tree.
TOOLCHAIN_GIT_DATE=2011-02-23
# Default toolchain names and prefix
#
# This is used by get_default_toolchain_name and get_default_toolchain_prefix
# defined above
DEFAULT_ARCH_TOOLCHAIN_arm=arm-linux-androideabi-4.4.3
DEFAULT_ARCH_TOOLCHAIN_PREFIX_arm=arm-linux-androideabi-
DEFAULT_ARCH_TOOLCHAIN_x86=x86-4.4.3
DEFAULT_ARCH_TOOLCHAIN_PREFIX_x86=i686-android-linux-
......@@ -31,13 +31,13 @@ register_var_option "--ndk-dir=<path>" NDK_DIR "Don't package, copy binaries to
BUILD_DIR=/tmp/ndk-$USER/build
register_var_option "--build-dir=<path>" BUILD_DIR "Specify temporary build directory"
GDB_VERSION=6.6
GDB_VERSION=$DEFAULT_GDB_VERSION
register_var_option "--gdb-version=<version>" GDB_VERSION "Specify gdb version"
BINUTILS_VERSION=2.19
BINUTILS_VERSION=$DEFAULT_BINUTILS_VERSION
register_var_option "--binutils-version=<version>" BINUTILS_VERSION "Specify binutils version"
MPFR_VERSION=2.3.0
MPFR_VERSION=$DEFAULT_MPFR_VERSION
register_var_option "--mpfr-version=<version>" MPFR_VERSION "Specify mpfr version"
ARCH=arm
......@@ -288,15 +288,15 @@ get_toolchain_sources
case "$ARCH" in
arm )
build_toolchain arm-linux-androideabi-4.4.3
build_toolchain $DEFAULT_ARCH_TOOLCHAIN_NAME_arm
if [ -z "$HOST_ONLY" ]; then
build_gdbserver arm-linux-androideabi-4.4.3
build_gdbserver $DEFAULT_ARCH_TOOLCHAIN_NAME_arm
fi
;;
x86 )
build_toolchain x86-4.4.3
build_toolchain $DEFAULT_ARCH_TOOLCHAIN_NAME_x86
if [ -z "$HOST_ONLY" ]; then
build_gdbserver x86-4.4.3
build_gdbserver $DEFAULT_ARCH_TOOLCHAIN_NAME_x86
fi
;;
esac
......@@ -307,12 +307,12 @@ if [ -z "$HOST_ONLY" ]; then
if [ "$HOST_OS" = "linux" ] ; then
case "$ARCH" in
arm )
LIBSUPC_DIR="toolchains/arm-linux-androideabi-4.4.3/prebuilt/$HOST_TAG/arm-linux-androideabi/lib"
LIBSUPC_DIR="toolchains/$DEFAULT_ARCH_TOOLCHAIN_NAME_arm/prebuilt/$HOST_TAG/$DEFAULT_ARCH_TOOLCHAIN_PREFIX_arm/lib"
package_it "GNU libsupc++ armeabi libs" "gnu-libsupc++-armeabi" "$LIBSUPC_DIR/libsupc++.a $LIBSUPC_DIR/thumb/libsupc++.a"
package_it "GNU libsupc++ armeabi-v7a libs" "gnu-libsupc++-armeabi-v7a" "$LIBSUPC_DIR/armv7-a/libsupc++.a $LIBSUPC_DIR/armv7-a/thumb/libsupc++.a"
;;
x86 )
LIBSUPC_DIR="toolchains/x86-4.4.3/prebuilt/$HOST_TAG/i686-android-linux/lib"
LIBSUPC_DIR="toolchains/$DEFAULT_ARCH_TOOLCHAIN_NAME_x86/prebuilt/$HOST_TAG/$DEFAULT_ARCH_TOOLCHAIN_PREFIX_x86/lib"
package_it "GNU libsupc++ x86 libs" "gnu-libsupc++-x86" "$LIBSUPC_DIR/libsupc++.a"
;;
esac
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment