Patchwork [U-Boot,v2] MAKEALL: add support for per architecture toolchains

login
register
mail settings
Submitter Allen Martin
Date Jan. 30, 2013, 12:34 a.m.
Message ID <1359506098-4380-1-git-send-email-amartin@nvidia.com>
Download mbox | patch
Permalink /patch/216740/
State Accepted
Delegated to: Tom Rini
Headers show

Comments

Allen Martin - Jan. 30, 2013, 12:34 a.m.
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 <amartin@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
v2: Changed CROSS_COMPILE_ARM to CROSS_COMPILE_<ARCH> in help text
---
 MAKEALL |   32 +++++++++++++++++++++++++-------
 1 file changed, 25 insertions(+), 7 deletions(-)
Stephen Warren - Jan. 30, 2013, 2:20 a.m.
On 01/29/2013 05:34 PM, Allen Martin wrote:
> 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.

Reviewed-by: Stephen Warren <swarren@wwwdotorg.org>
Tom Rini - Feb. 20, 2013, 3:01 p.m.
On Tue, Jan 29, 2013 at 02:34:58PM -0000, Allen Martin wrote:

> 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 <amartin@nvidia.com>
> Acked-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stephen Warren <swarren@wwwdotorg.org>

Applied to u-boot/master, thanks!

Patch

diff --git a/MAKEALL b/MAKEALL
index 5b06c54..397adef 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_<ARCH> 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