From 47104c37de076e2be35ae1b3d144614f4d24a766 Mon Sep 17 00:00:00 2001 From: Allen Martin Date: Tue, 29 Jan 2013 14:34:58 +0000 Subject: MAKEALL: add support for per architecture toolchains Add support for per architecture CROSS_COMPILE toolchain definitions via CROSS_COMPILE_ARCH where "ARCH" is any of the supported u-boot architectures. This allows building every supported u-boot board in a single pass of MAKEALL. Signed-off-by: Allen Martin Acked-by: Simon Glass Reviewed-by: Stephen Warren --- MAKEALL | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'MAKEALL') diff --git a/MAKEALL b/MAKEALL index 5b06c5477d..397adef920 100755 --- a/MAKEALL +++ b/MAKEALL @@ -35,6 +35,9 @@ usage() Environment variables: BUILD_NCPUS number of parallel make jobs (default: auto) CROSS_COMPILE cross-compiler toolchain prefix (default: "") + CROSS_COMPILE_ cross-compiler toolchain prefix for + architecture "ARCH". Substitute "ARCH" for any + supported architecture (default: "") MAKEALL_LOGDIR output all logs to here (default: ./LOG/) BUILD_DIR output build directory (default: ./) BUILD_NBUILDS number of parallel targets (default: 1) @@ -180,13 +183,6 @@ else JOBS="" fi - -if [ "${CROSS_COMPILE}" ] ; then - MAKE="make CROSS_COMPILE=${CROSS_COMPILE}" -else - MAKE=make -fi - if [ "${MAKEALL_LOGDIR}" ] ; then LOG_DIR=${MAKEALL_LOGDIR} else @@ -585,6 +581,18 @@ get_target_maintainers() { echo "$mail" } +get_target_arch() { + local target=$1 + + # Automatic mode + local line=`egrep -i "^[[:space:]]*${target}[[:space:]]" boards.cfg` + + if [ -z "${line}" ] ; then echo "" ; return ; fi + + set ${line} + echo "$2" +} + list_target() { if [ "$PRINT_MAINTS" != 'y' ] ; then echo "$1" @@ -655,6 +663,16 @@ build_target() { export BUILD_DIR="${output_dir}" + target_arch=$(get_target_arch ${target}) + eval cross_toolchain=\$CROSS_COMPILE_${target_arch^^} + if [ "${cross_toolchain}" ] ; then + MAKE="make CROSS_COMPILE=${cross_toolchain}" + elif [ "${CROSS_COMPILE}" ] ; then + MAKE="make CROSS_COMPILE=${CROSS_COMPILE}" + else + MAKE=make + fi + ${MAKE} distclean >/dev/null ${MAKE} -s ${target}_config -- cgit v1.2.3