[coreboot-gerrit] Patch set updated for coreboot: ebc7770 abuild: allow build results outside the source tree
Patrick Georgi (patrick@georgi-clan.de)
gerrit at coreboot.org
Wed May 21 23:26:50 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 ebc7770171834724be9f3104161f82387dc21ba8
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 | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/util/abuild/abuild b/util/abuild/abuild
index 6c8c304..0759a80 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,9 @@ 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
+ ABSPATH=`cd $TARGET/abuild; pwd`
+ XMLFILE=$ABSPATH/${VENDOR}_${MAINBOARD}.xml
stime=`perl -e 'print time();' 2>/dev/null || date +%s`
@@ -398,6 +399,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 +443,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 +512,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