abuild: Write XML/JUnit files per board
[coreboot.git] / util / abuild / abuild
index ba144aabd5bade857992394590540d489a422c05..8b81ea17fc9b6ffdbbbd80a9199f4bc3236d7698 100755 (executable)
 ABUILD_DATE="December 10th, 2010"
 ABUILD_VERSION="0.9.1"
 
+TOP=$PWD
+
 # Where shall we place all the build trees?
 TARGET=coreboot-builds
-XMLFILE=$( pwd )/abuild.xml
+XMLFILE=$TOP/abuild.xml
+REAL_XMLFILE=$XMLFILE
 
 # path to payload. Should be more generic
 PAYLOAD=/dev/null
@@ -222,7 +225,7 @@ function create_config
                fi
        fi
 
-       #yes "" | $MAKE oldconfig -j $cpus obj=${build_dir} objutil=$TARGET/sharedutils &> ${build_dir}/config.log
+       #yes "" | $MAKE oldconfig obj=${build_dir} objutil=$TARGET/sharedutils &> ${build_dir}/config.log
        yes "" | $MAKE oldconfig DOTCONFIG=${build_dir}/config.build obj=${build_dir} objutil=$TARGET/sharedutils &> ${build_dir}/config.log
        ret=$?
        if [ $ret -eq 0 ]; then
@@ -286,7 +289,7 @@ function compile_target
        CURR=$( pwd )
        #stime=`perl -e 'print time();' 2>/dev/null || date +%s`
        build_dir=$TARGET/${VENDOR}_${MAINBOARD}
-       eval $MAKE $silent -j $cpus DOTCONFIG=${build_dir}/config.build obj=${build_dir} objutil=$TARGET/sharedutils \
+       eval $MAKE $silent DOTCONFIG=${build_dir}/config.build obj=${build_dir} objutil=$TARGET/sharedutils \
                &> ${build_dir}/make.log
        ret=$?
        cp .xcompile ${build_dir}/xcompile.build
@@ -363,6 +366,7 @@ function build_target
        HOSTCC='gcc'
 
        printf "Building $VENDOR/$MAINBOARD; "
+       XMLFILE=$TOP/$TARGET/${VENDOR}_${MAINBOARD}/abuild.xml
 
        xml "<mainboard>"
        xml ""
@@ -624,6 +628,10 @@ while true ; do
        esac
 done
 
+if [ "$cpus" != "1" ]; then
+       export MAKEFLAGS="-j $cpus"
+fi
+
 # /path/to/freebios2/
 test -z "$1" || ROOT=$1
 
@@ -648,6 +656,8 @@ if [ "$target" != "" ]; then
        fi
        build_target $VENDOR $MAINBOARD $CONFIG
        test_target $VENDOR $MAINBOARD
+       cat $TARGET/${VENDOR}_${MAINBOARD}/abuild.xml >> $REAL_XMLFILE
+       XMLFILE=$REAL_XMLFILE
 else
        # build all boards per default
        for VENDOR in $( vendors ); do
@@ -657,6 +667,10 @@ else
                        remove_target $VENDOR $MAINBOARD
                done
        done
+       for xmlfile in $TARGET/*_*/abuild.xml; do
+               cat $xmlfile >> $REAL_XMLFILE
+       done
+       XMLFILE=$REAL_XMLFILE
 fi
 xml '</abuild>'
 junit '</testsuite>'