add full xml logging to abuild to work on the complete information
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2314 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
2d1fe3700e
commit
192b7bc445
|
@ -5,6 +5,7 @@
|
|||
# This script builds LinuxBIOS images for all available targets.
|
||||
#
|
||||
# (C) 2004 by Stefan Reinauer <stepan@openbios.org>
|
||||
# (C) 2006 by coresystems GmbH <info@coresystems.de>
|
||||
#
|
||||
# This file is subject to the terms and conditions of the GNU General
|
||||
# Public License. See the file COPYING in the main directory of this
|
||||
|
@ -15,6 +16,7 @@
|
|||
|
||||
# Where shall we place all the build trees?
|
||||
TARGET=$( pwd )/linuxbios-builds
|
||||
XMLFILE=$( pwd )/abuild.xml
|
||||
|
||||
# path to payload. Should be more generic
|
||||
PAYLOAD=/dev/null
|
||||
|
@ -26,6 +28,9 @@ CONTEXT=5
|
|||
MAKE="make"
|
||||
PYTHON=python
|
||||
|
||||
# this can be changed to xml by -x
|
||||
mode=text
|
||||
|
||||
ARCH=`uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
|
||||
-e s/arm.*/arm/ -e s/sa110/arm/ -e s/x86_64/amd64/ \
|
||||
-e "s/Power Macintosh/ppc/"`
|
||||
|
@ -35,6 +40,18 @@ function debug
|
|||
test "$verbose" == "true" && echo $*
|
||||
}
|
||||
|
||||
function xml
|
||||
{
|
||||
test "$mode" == "xml" && echo "$*" >> $XMLFILE
|
||||
}
|
||||
|
||||
function xmlfile
|
||||
{
|
||||
test "$mode" == "xml" && { echo '<![CDATA['; cat $1; echo ']]>'; } >> $XMLFILE
|
||||
}
|
||||
|
||||
|
||||
|
||||
function vendors
|
||||
{
|
||||
# make this a function so we can easily select
|
||||
|
@ -72,10 +89,12 @@ function create_config
|
|||
if [ -f $TARGCONFIG ]; then
|
||||
cp $TARGCONFIG $TARGET/Config-${VENDOR}_${MAINBOARD}.lb
|
||||
echo "Used existing test target $TARGCONFIG"
|
||||
xml " <config>$TARGCONFIG</config>"
|
||||
return
|
||||
fi
|
||||
|
||||
echo -n " Creating config file..."
|
||||
xml " <config>autogenerated</config>"
|
||||
( cat << EOF
|
||||
# This will make a target directory of ./VENDOR_MAINBOARD
|
||||
|
||||
|
@ -154,8 +173,16 @@ function create_builddir
|
|||
$PYTHON $config_py $config_lb $LBROOT &> $build_dir/config.log
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "ok"
|
||||
xml " <builddir>ok</builddir>"
|
||||
xml ""
|
||||
return 0
|
||||
else
|
||||
echo "FAILED! Log excerpt:"
|
||||
xml " <builddir>failed</builddir>"
|
||||
xml " <log>"
|
||||
xmlfile $build_dir/config.log
|
||||
xml " </log>"
|
||||
xml ""
|
||||
tail -n $CONTEXT $build_dir/config.log
|
||||
return 1
|
||||
fi
|
||||
|
@ -183,11 +210,19 @@ function compile_target
|
|||
etime=`date +%s`
|
||||
duration=$(( $etime - $stime ))
|
||||
if [ $ret -eq 0 ]; then
|
||||
xml " <compile>ok</compile>"
|
||||
xml " <compiletime>${duration}s</compiletime>"
|
||||
echo "ok" > compile.status
|
||||
echo "ok. (took ${duration}s)"
|
||||
cd $CURR
|
||||
return 0
|
||||
else
|
||||
xml " <compile>failed</compile>"
|
||||
xml " <compiletime>${duration}s</compiletime>"
|
||||
xml " <log>"
|
||||
xmlfile make.log
|
||||
xml " </log>"
|
||||
|
||||
echo "FAILED after ${duration}s! Log excerpt:"
|
||||
tail -n $CONTEXT make.log
|
||||
cd $CURR
|
||||
|
@ -229,6 +264,14 @@ function build_target
|
|||
CROSS_COMPILE=''
|
||||
|
||||
echo -n "Processing mainboard/$VENDOR/$MAINBOARD"
|
||||
|
||||
xml "<mainboard>"
|
||||
xml ""
|
||||
xml " <vendor>$VENDOR</vendor>"
|
||||
xml " <device>$MAINBOARD</device>"
|
||||
xml ""
|
||||
xml " <architecture>$TARCH</architecture>"
|
||||
xml ""
|
||||
|
||||
[ -r "$LBROOT/src/mainboard/${VENDOR}/${MAINBOARD}/abuild.info" ] && \
|
||||
source $LBROOT/src/mainboard/${VENDOR}/${MAINBOARD}/abuild.info
|
||||
|
@ -255,6 +298,12 @@ function build_target
|
|||
done
|
||||
fi
|
||||
|
||||
xml " <compiler>"
|
||||
xml " <path>`which ${CROSS_COMPILE}gcc`</path>"
|
||||
xml " <version>`${CROSS_COMPILE}gcc --version | head -1`</version>"
|
||||
xml " </compiler>"
|
||||
xml ""
|
||||
|
||||
# TBD: look for suitable cross compiler suite
|
||||
# cross-$TARCH-gcc and cross-$TARCH-ld
|
||||
|
||||
|
@ -272,6 +321,9 @@ function build_target
|
|||
{
|
||||
echo " ( mainboard/$VENDOR/$MAINBOARD previously ok )"
|
||||
echo
|
||||
xml " <status>previouslyok</status>"
|
||||
xml ""
|
||||
xml "</mainboard>"
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -279,14 +331,22 @@ function build_target
|
|||
{
|
||||
echo " ( broken mainboard/$VENDOR/$MAINBOARD skipped )"
|
||||
echo
|
||||
xml " <status>knownbroken</status>"
|
||||
xml ""
|
||||
xml "</mainboard>"
|
||||
return 0
|
||||
}
|
||||
|
||||
create_buildenv $VENDOR $MAINBOARD
|
||||
if [ $? -eq 0 ]; then
|
||||
compile_target $VENDOR $MAINBOARD
|
||||
compile_target $VENDOR $MAINBOARD &&
|
||||
xml "<status>ok</status>" ||
|
||||
xml "<status>broken</status>"
|
||||
fi
|
||||
|
||||
xml ""
|
||||
xml "</mainboard>"
|
||||
|
||||
echo
|
||||
}
|
||||
|
||||
|
@ -303,6 +363,7 @@ function myhelp
|
|||
echo " [-t|--target <vendor/board>] attempt to build target vendor/board only"
|
||||
echo " [-V|--version] print version number and exit"
|
||||
echo " [-h|--help] print this help and exit"
|
||||
echo " [-x|--xml] write xml log file $XMLFILE"
|
||||
echo " [lbroot] absolute path to LinuxBIOS sources"
|
||||
echo " (defaults to $LBROOT)"
|
||||
echo
|
||||
|
@ -312,9 +373,10 @@ function myversion
|
|||
{
|
||||
cat << EOF
|
||||
|
||||
LinuxBIOS autobuild: V0.1.
|
||||
LinuxBIOS autobuild: V0.2.
|
||||
|
||||
Copyright (C) 2004 by Stefan Reinauer, <stepan@openbios.org>
|
||||
Copyright (C) 2004 by Stefan Reinauer <stepan@openbios.org>
|
||||
Copyright (C) 2006 by coresystems GmbH <info@coresystems.de>
|
||||
This program is free software; you may redistribute it under the terms
|
||||
of the GNU General Public License. This program has absolutely no
|
||||
warranty.
|
||||
|
@ -340,6 +402,7 @@ fi
|
|||
eval set "$args"
|
||||
while true ; do
|
||||
case "$1" in
|
||||
-x|--xml) shift; mode=xml; rm -f $XMLFILE ;;
|
||||
-t|--target) shift; target="$1"; shift;;
|
||||
-a|--all) shift; buildall=true;;
|
||||
-b|--broken) shift; buildbroken=true;;
|
||||
|
@ -357,6 +420,9 @@ test -z "$1" || LBROOT=$1
|
|||
|
||||
debug "LBROOT=$LBROOT"
|
||||
|
||||
xml '<?xml version="1.0" encoding="utf-8"?>'
|
||||
xml '<abuild>'
|
||||
|
||||
if [ "$target" != "" ]; then
|
||||
# build a single board
|
||||
VENDOR=`echo $target|cut -f1 -d/`
|
||||
|
@ -370,4 +436,5 @@ else
|
|||
done
|
||||
done
|
||||
fi
|
||||
xml '</abuild>'
|
||||
|
||||
|
|
Loading…
Reference in New Issue