diff -r 86356a777616 -r cf0c187b284a sbsv2/raptor/bin/osbuild.sh --- a/sbsv2/raptor/bin/osbuild.sh Mon Nov 16 12:59:20 2009 +0000 +++ b/sbsv2/raptor/bin/osbuild.sh Mon Dec 14 18:19:38 2009 +0000 @@ -1,264 +1,264 @@ -#!/bin/sh - -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# This component and the accompanying materials are made available -# under the terms of the License "Eclipse Public License v1.0" -# which accompanies this distribution, and is available -# at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -# Initial Contributors: -# Nokia Corporation - initial contribution. -# -# Contributors: -# -# Description: -# Build automation for Symbian OS with Raptor -# Author: Timothy N Murphy -# -# - -# Default settings. You may override these by specifying a setup script -# as the first commandline argument -# -H=$HOME -export H -export EPOCROOT="$H/baselineos" -export LOGBASEDIR=~/public_html/buildlogs -export BUILDROOT="$H/baselineos" -export SOURCEROOT="$H/baselineos/fsupdate" -export SYSDEF="$H/baselineos/system_definition_fsupdate.xml" -export PREEXPORTSYSDEF="$SBS_HOME/test/envelope/preexport.xml" -export PLATFORMS="-c armv5" -export PARALLEL=46 -export SYNCSBSSOURCE="" -export UNSPLITDIRS="$SBS_HOME/unsplitdirs.py" - -# Do we want to attempt to build a ROM? -export DOROMBUILD="" -export ROMFILLIN_EPOCROOT=$BUILDROOT/rom_fillin -# We need to specify the OBY file (must be generated on windows) -export ROMOBYFILE="$BUILDROOT/h4hrp_001.techview.oby" - -# Do you have server that runs evalid automatically? -export SENDTOEVALIDSERVER="" -# The following should be mounted: -export EVALIDSERVERMOUNT="/mnt/evalidserver" -export USERBUILDID="" - - -# Allow overrides to this default config -if [ ! -z $1 ]; then - if [ -f "$1" ]; then - . $1 - else - echo "You must supply a build type as the first parameter - this should be a setup script" - exit 1 - fi -fi - - -genstats() { -if [ "$1.stats" -ot "$1.log" ]; then -python "$SBS_HOME/bin/buildstats.py" "$1.log" > "$1.stats" && -#python "$SBS_HOME/bin/failedstats.py" -m "$1.log" > "$1.failed"; -( - cd $EPOCROOT/epoc32 && find "release" > "$1.release_files" && find "build" > "$1.build_files" && find include > "$1.include_files" -) -fi; -} - -cd $BUILDROOT - - -# Don't edit the rest: -################################################### -export KEY=`date +%d_%m_%y` -export DAILYDIR="$LOGBASEDIR/$KEY" - -export BUILDNAME="`basename \"$SYSDEF\" | sed 's#\.[^.][^.]*$##'`" -if [ ! -z "$USERBUILDID" ]; then - BUILDNAME="$USERBUILDID-$BUILDNAME" -fi -export LOGNAME="${BUILDNAME}_${KEY}" - -for BUILDNUM in {1..50}; do - if [ ! -d "$DAILYDIR/$BUILDNUM" ]; then - break - fi - if [ -z "`echo $DAILYDIR/$BUILDNUM/*_BUILDNUM.log*`" ]; then - break - fi -done - -OUTDIR="$DAILYDIR/$BUILDNUM" -export TESTLOG="$OUTDIR/test.log" - -# make the day's directory -mkdir -p "$OUTDIR" - -echo "testrun: $TESTLOG, build $BUILDNUM of the day:" -echo '' > "$TESTLOG" - -echo "Parallel: $PARALLEL" -( -echo "" -echo " " -echo " $DAILYDIR/$BUILDNUM/${LOGNAME}_$BUILDNUM.log" -MAKEFILE=$EPOCROOT/epoc32/build/Makefile -echo "" - -TIMELOG="$OUTDIR/${LOGNAME}_$BUILDNUM.time" - -echo " "$OUTDIR/unzip" && -chmod -R u+rw "$EPOCROOT/epoc32" && -echo "unzipped skeleton epoc32 tree" -) - - -# (re)Initialise the cluster if required. -( -if [ ! -z "$PARALLEL" ]; then - echo "Setting up cluster" - echo "Parallel: $PARALLEL" - set -x - echo -e "halt\n" | pvm >/dev/null - echo -e "quit\n" | pvm $BUILDROOT/pvmhosts.$PARALLEL >/dev/null - set +x -else - echo "Parallel: 0 - no cluster setup" - set -x - echo -e "halt\n" | pvm >/dev/null - set +x -fi -) - - -set +x -echo "Prepping makefiles" -( - echo "\n" - export TIMEFORMAT="\n" - time $SBS_HOME/bin/sbs -d -k -s "$SYSDEF" -a "$SOURCEROOT" $PLATFORMS -n > $OUTDIR/${LOGNAME}_$BUILDNUM.meta 2>&1 - #time cp performance_Makefile $MAKEFILE -) > "$TIMELOG" 2>&1 -echo "Running Make" -( - # The build process - export TIMEFORMAT="\n" - - time /opt/symbian/make-pvm-381/pvmgmake -j$PARALLEL -k -f $MAKEFILE > "$OUTDIR/${LOGNAME}_$BUILDNUM.log" 2>&1 - touch "$SIGNALTOSTOPFILE" - echo "\n" -) >> "$TIMELOG" 2>&1 & -( - # Concurrent process to continuously update statistics - echo "" - - while [ 1 -eq 1 ]; do - sleep 20 - echo -n "." - - if [ -e "$SIGNALTOSTOPFILE" ]; then - rm -f "$SIGNALTOSTOPFILE" - break - fi - done - echo "" -) -#set +x -#genstats "$OUTDIR/${LOGNAME}_$BUILDNUM" -( - echo "UNSPLITTING DIRECTORIES" - set -x - cd $EPOCROOT/epoc32 && - python $UNSPLITDIRS -l . && - set +x - -) && ( - if [ ! -z "$DOROMBUILD" ]; then - echo "Building ROM" - set -x - cd $EPOCROOT && - unzip -o $BUILDROOT/data.zip >/dev/null && - python $BUILDROOT/oby_tolinux.py < "$ROMOBYFILE" >PROCESSED_H4HRP_001.TECHVIEW.OBY - $EPOCROOT/epoc32/tools/rombuild -type-safe-link PROCESSED_H4HRP_001.TECHVIEW.OBY - cp - set +x - else - echo "NOT Building ROM" - fi -) - -( - if [ ! -z "$SENDTOEVALIDSERVER" ]; then - echo "Sending epoc32/release and epoc32/data to the evalidserver" - set -x - ZIPFILE="$DAILYDIR/$BUILDNUM/${LOGNAME}_$BUILDNUM.zip" - cd $EPOCROOT && - find epoc32/release epoc32/data | zip "$ZIPFILE" -@ >/dev/null 2>&1 && - cp "$ZIPFILE" /mnt/evalidserver - set +x - else - echo "NOT sending epoc32/release and epoc32/data to the evalidserver" - fi -) - -# Zip the logs - note that test.log should not be zipped since the output from the zip goes into it -( - echo "Zipping logs..." - set -x - cd $OUTDIR && - zip ${LOGNAME}_${BUILDNUM}_logs.zip *.time *.meta *.log *.preexport -x test.log - set +x -) - - -echo " ]]>" -echo "" -) >> "$TESTLOG" 2>&1 - -BUILDNUM=$[ $BUILDNUM + 1 ] -# use a new output directory -echo -e "" >> "$TESTLOG" -echo "" >> "$TESTLOG" +#!/bin/sh + +# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of the License "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# Build automation for Symbian OS with Raptor +# Author: Timothy N Murphy +# +# + +# Default settings. You may override these by specifying a setup script +# as the first commandline argument +# +H=$HOME +export H +export EPOCROOT="$H/baselineos" +export LOGBASEDIR=~/public_html/buildlogs +export BUILDROOT="$H/baselineos" +export SOURCEROOT="$H/baselineos/fsupdate" +export SYSDEF="$H/baselineos/system_definition_fsupdate.xml" +export PREEXPORTSYSDEF="$SBS_HOME/test/envelope/preexport.xml" +export PLATFORMS="-c armv5" +export PARALLEL=46 +export SYNCSBSSOURCE="" +export UNSPLITDIRS="$SBS_HOME/unsplitdirs.py" + +# Do we want to attempt to build a ROM? +export DOROMBUILD="" +export ROMFILLIN_EPOCROOT=$BUILDROOT/rom_fillin +# We need to specify the OBY file (must be generated on windows) +export ROMOBYFILE="$BUILDROOT/h4hrp_001.techview.oby" + +# Do you have server that runs evalid automatically? +export SENDTOEVALIDSERVER="" +# The following should be mounted: +export EVALIDSERVERMOUNT="/mnt/evalidserver" +export USERBUILDID="" + + +# Allow overrides to this default config +if [ ! -z $1 ]; then + if [ -f "$1" ]; then + . $1 + else + echo "You must supply a build type as the first parameter - this should be a setup script" + exit 1 + fi +fi + + +genstats() { +if [ "$1.stats" -ot "$1.log" ]; then +python "$SBS_HOME/bin/buildstats.py" "$1.log" > "$1.stats" && +#python "$SBS_HOME/bin/failedstats.py" -m "$1.log" > "$1.failed"; +( + cd $EPOCROOT/epoc32 && find "release" > "$1.release_files" && find "build" > "$1.build_files" && find include > "$1.include_files" +) +fi; +} + +cd $BUILDROOT + + +# Don't edit the rest: +################################################### +export KEY=`date +%d_%m_%y` +export DAILYDIR="$LOGBASEDIR/$KEY" + +export BUILDNAME="`basename \"$SYSDEF\" | sed 's#\.[^.][^.]*$##'`" +if [ ! -z "$USERBUILDID" ]; then + BUILDNAME="$USERBUILDID-$BUILDNAME" +fi +export LOGNAME="${BUILDNAME}_${KEY}" + +for BUILDNUM in {1..50}; do + if [ ! -d "$DAILYDIR/$BUILDNUM" ]; then + break + fi + if [ -z "`echo $DAILYDIR/$BUILDNUM/*_BUILDNUM.log*`" ]; then + break + fi +done + +OUTDIR="$DAILYDIR/$BUILDNUM" +export TESTLOG="$OUTDIR/test.log" + +# make the day's directory +mkdir -p "$OUTDIR" + +echo "testrun: $TESTLOG, build $BUILDNUM of the day:" +echo '' > "$TESTLOG" + +echo "Parallel: $PARALLEL" +( +echo "" +echo " " +echo " $DAILYDIR/$BUILDNUM/${LOGNAME}_$BUILDNUM.log" +MAKEFILE=$EPOCROOT/epoc32/build/Makefile +echo "" + +TIMELOG="$OUTDIR/${LOGNAME}_$BUILDNUM.time" + +echo " "$OUTDIR/unzip" && +chmod -R u+rw "$EPOCROOT/epoc32" && +echo "unzipped skeleton epoc32 tree" +) + + +# (re)Initialise the cluster if required. +( +if [ ! -z "$PARALLEL" ]; then + echo "Setting up cluster" + echo "Parallel: $PARALLEL" + set -x + echo -e "halt\n" | pvm >/dev/null + echo -e "quit\n" | pvm $BUILDROOT/pvmhosts.$PARALLEL >/dev/null + set +x +else + echo "Parallel: 0 - no cluster setup" + set -x + echo -e "halt\n" | pvm >/dev/null + set +x +fi +) + + +set +x +echo "Prepping makefiles" +( + echo "\n" + export TIMEFORMAT="\n" + time $SBS_HOME/bin/sbs -d -k -s "$SYSDEF" -a "$SOURCEROOT" $PLATFORMS -n > $OUTDIR/${LOGNAME}_$BUILDNUM.meta 2>&1 + #time cp performance_Makefile $MAKEFILE +) > "$TIMELOG" 2>&1 +echo "Running Make" +( + # The build process + export TIMEFORMAT="\n" + + time /opt/symbian/make-pvm-381/pvmgmake -j$PARALLEL -k -f $MAKEFILE > "$OUTDIR/${LOGNAME}_$BUILDNUM.log" 2>&1 + touch "$SIGNALTOSTOPFILE" + echo "\n" +) >> "$TIMELOG" 2>&1 & +( + # Concurrent process to continuously update statistics + echo "" + + while [ 1 -eq 1 ]; do + sleep 20 + echo -n "." + + if [ -e "$SIGNALTOSTOPFILE" ]; then + rm -f "$SIGNALTOSTOPFILE" + break + fi + done + echo "" +) +#set +x +#genstats "$OUTDIR/${LOGNAME}_$BUILDNUM" +( + echo "UNSPLITTING DIRECTORIES" + set -x + cd $EPOCROOT/epoc32 && + python $UNSPLITDIRS -l . && + set +x + +) && ( + if [ ! -z "$DOROMBUILD" ]; then + echo "Building ROM" + set -x + cd $EPOCROOT && + unzip -o $BUILDROOT/data.zip >/dev/null && + python $BUILDROOT/oby_tolinux.py < "$ROMOBYFILE" >PROCESSED_H4HRP_001.TECHVIEW.OBY + $EPOCROOT/epoc32/tools/rombuild -type-safe-link PROCESSED_H4HRP_001.TECHVIEW.OBY + cp + set +x + else + echo "NOT Building ROM" + fi +) + +( + if [ ! -z "$SENDTOEVALIDSERVER" ]; then + echo "Sending epoc32/release and epoc32/data to the evalidserver" + set -x + ZIPFILE="$DAILYDIR/$BUILDNUM/${LOGNAME}_$BUILDNUM.zip" + cd $EPOCROOT && + find epoc32/release epoc32/data | zip "$ZIPFILE" -@ >/dev/null 2>&1 && + cp "$ZIPFILE" /mnt/evalidserver + set +x + else + echo "NOT sending epoc32/release and epoc32/data to the evalidserver" + fi +) + +# Zip the logs - note that test.log should not be zipped since the output from the zip goes into it +( + echo "Zipping logs..." + set -x + cd $OUTDIR && + zip ${LOGNAME}_${BUILDNUM}_logs.zip *.time *.meta *.log *.preexport -x test.log + set +x +) + + +echo " ]]>" +echo "" +) >> "$TESTLOG" 2>&1 + +BUILDNUM=$[ $BUILDNUM + 1 ] +# use a new output directory +echo -e "" >> "$TESTLOG" +echo "" >> "$TESTLOG"