[coreboot-gerrit] New patch to review for coreboot: d38da19 abuild: allow build results outside the source tree

Patrick Georgi (patrick@georgi-clan.de) gerrit at coreboot.org
Wed May 21 23:03:09 CEST 2014


Patrick Georgi (patrick at georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5805

-gerrit

commit d38da194dcc23ee458aed46ec065d654ccb4adda
Author: Patrick Georgi <patrick at georgi-clan.de>
Date:   Wed May 21 23:00:32 2014 +0200

    abuild: allow build results outside the source tree
    
    A reasonable configuration that minimizes disk traffic
    could be
    
        $ abuild -o /tmp/abuild-$$ -z
    
    Change-Id: Ic91798af7e799a40a77025e09a6078ea6758cdac
    Signed-off-by: Patrick Georgi <patrick at georgi-clan.de>
---
 util/abuild/abuild | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/util/abuild/abuild b/util/abuild/abuild
index 6c8c304..4d98b9a 100755
--- a/util/abuild/abuild
+++ b/util/abuild/abuild
@@ -277,7 +277,7 @@ function build_target
 	CONFIG=$3
 	TARCH=$( architecture $VENDOR $MAINBOARD )
 
-	if [ "`cat $TOP/$TARGET/${VENDOR}_${MAINBOARD}/compile.status 2>/dev/null`" = "ok" -a \
+	if [ "`cat $TARGET/${VENDOR}_${MAINBOARD}/compile.status 2>/dev/null`" = "ok" -a \
 		"$buildall" = "false" ]; then
 		printf "Skipping $VENDOR/$MAINBOARD; (already successful)\n"
 		return
@@ -286,8 +286,8 @@ function build_target
  	HOSTCC='gcc'
 
 	printf "Building $VENDOR/$MAINBOARD; "
-	mkdir -p $TOP/$TARGET/${VENDOR}_${MAINBOARD} $TOP/$TARGET/abuild
-	XMLFILE=$TOP/$TARGET/abuild/${VENDOR}_${MAINBOARD}.xml
+	mkdir -p $TARGET/${VENDOR}_${MAINBOARD} $TARGET/abuild
+	XMLFILE=$TARGET/abuild/${VENDOR}_${MAINBOARD}.xml
 
 
 	stime=`perl -e 'print time();' 2>/dev/null || date +%s`
@@ -398,6 +398,8 @@ function myhelp
 	printf "    [-P|--prefix <name>]          file name prefix in CBFS\n"
 	printf "    [-B|--blobs]                  Allow using binary files\n"
 	printf "    [-z|--clean]                  Remove build results when finished\n"
+	printf "    [-o|--outdir <path>]          store build results in path\n"
+	printf "				  (defaults to $TARGET)\n"
 	printf "    [-L|--clang]                  Use clang\n"
 	printf "    [--scan-build]                use clang's static analyzer\n"
 	printf "    [cbroot]			  absolute path to coreboot sources\n"
@@ -440,7 +442,7 @@ cmdline="$* -c 1"
 getoptbrand="`getopt -V`"
 if [ "${getoptbrand:0:6}" == "getopt" ]; then
 	# Detected GNU getopt that supports long options.
-	args=`getopt -l version,verbose,help,all,target:,payloads:,test,cpus:,silent,junit,config,loglevel:,remove,prefix:,update,scan-build,ccache,blobs,clang,clean -o Vvhat:p:Tc:sJCl:rP:uyBLz -- "$@"` || exit 1
+	args=`getopt -l version,verbose,help,all,target:,payloads:,test,cpus:,silent,junit,config,loglevel:,remove,prefix:,update,scan-build,ccache,blobs,clang,clean,outdir: -o Vvhat:p:Tc:sJCl:rP:uyBLzo: -- "$@"` || exit 1
 	eval set -- $args
 else
 	# Detected non-GNU getopt
@@ -509,12 +511,20 @@ while true ; do
 			customizing="${customizing}, clean"
 			clean_work=true
 			;;
+		-o|--outdir)	shift
+			TARGET=$1; shift
+			;;
 		--)		shift; break;;
 		-*)		printf "Invalid option\n\n"; myhelp; exit 1;;
 		*)		break;;
 	esac
 done
 
+if [ -z "$TARGET" -o "$TARGET" = "/" ]; then
+	echo "Please specify a valid, non-root build directory."
+	exit 1
+fi
+
 customizing=`echo $customizing |cut -c3-`
 if [ "$customizing" = "" ]; then
 	customizing="default configuration"



More information about the coreboot-gerrit mailing list