663 lines
19 KiB
Bash
Executable File
663 lines
19 KiB
Bash
Executable File
#!/bin/ksh
|
|
#
|
|
# build_world
|
|
#
|
|
########################################################################
|
|
# set -x
|
|
|
|
##########################################################################
|
|
#
|
|
# Script setup: THIS NEEDS TO BE FIRST
|
|
#
|
|
SCRIPTS_DIR="`dirname $0`"
|
|
if [ "" = "$SCRIPTS_DIR" ]; then
|
|
SCRIPTS_DIR=/project/dt/scripts
|
|
fi
|
|
|
|
##########################################################################
|
|
##########################################################################
|
|
#
|
|
# Script specific global variables
|
|
#
|
|
##########################################################################
|
|
##########################################################################
|
|
PROJECT_NAME="dt"
|
|
BUILD_TYPE=""
|
|
LOG_DIR=""
|
|
MAIL_LIST=""
|
|
PRE_BUILD=""
|
|
POST_BUILD=""
|
|
TOP=""
|
|
PROG_NAME="$0"
|
|
LOG_DATE="`date +%h.%d,%H:%M:%S`"
|
|
TMP_LOG_DIR_BASE=/project/dt/logs/build #Need to define now for usage()
|
|
VIEW_TAG="`uname -s`:no_view_specified"
|
|
|
|
X_PROJECT=x11
|
|
MOTIF_PROJECT=motif
|
|
CDE_PROJECT=cde
|
|
CDEDOC_PROJECT=cdedoc
|
|
CDETEST_PROJECT=cde-test
|
|
BUILD=build
|
|
|
|
DO_X_BUILD="False"
|
|
DO_MOTIF_BUILD="False"
|
|
DO_CDE_BUILD="False"
|
|
DO_CDEDOC_BUILD="False"
|
|
DO_REDIRECT_IO="True"
|
|
DO_CDETEST_BUILD="False"
|
|
|
|
DO_DEBUG="False"
|
|
DO_NOT_BUILD="False"
|
|
DO_COMPONENT_LOGS="True"
|
|
DO_ERROR_FILES="True"
|
|
DO_WARNING_FILES="True"
|
|
|
|
##########################################################################
|
|
|
|
usage ()
|
|
{
|
|
cat <<eof
|
|
USAGE: $1
|
|
[-e | -dev] # Default: build x11, motif and cde
|
|
[-x | -x11] # Build x11 only
|
|
[-m | -motif] # Build motif only
|
|
[-c | -cde] # Build cde only
|
|
[-d | -cdedoc] # Build cde docs only
|
|
[-t | -cdetest] # Build cde tests only
|
|
[-a | -all] # Build x11, motif, cde, cdedoc and cdetest
|
|
[-no_build] # Dont build anything
|
|
[-no_complogs] # Dont create .log files for components
|
|
[-no_errors] # Dont create .err files
|
|
[-no_ioredirect]# Dont redirect stdout/stderr to build.log
|
|
[-no_warnings] # Dont create .wrn files
|
|
[-rpt_summary]
|
|
# Only print information used by
|
|
# build_summary to stdout. Equivalent to
|
|
# -no_build -no_complogs -no_errors -no_warnings
|
|
[-clean] # Do a clean build; default is incremental
|
|
[-debug] # Debugging output
|
|
[-pre <script_name>]
|
|
# script_name is a program that is run before the
|
|
# build is run.
|
|
[-post <script_name>]
|
|
# script_name is a program that is run after the
|
|
# build is run.
|
|
[{-v | -view | -view_tag} <view_tag>]
|
|
# The ClearCase view should always be set before
|
|
# this script is run. This option should only
|
|
# be used on systems where ClearCase is not installed.
|
|
# The view tag will be used when constructing the
|
|
# log directory name.
|
|
[{-ld | -log_dir} <directory>]
|
|
# Specify an alternate log directory.
|
|
# Default: $TMP_LOG_DIR_BASE/<view_tag>/<date>/
|
|
# <date> is of the format '$LOG_DATE'
|
|
[{-sd | -script_dir} <directory>]
|
|
# Specify an alternate directory for required files.
|
|
# Default: $SCRIPTS_DIR/
|
|
[{-pn | -project_name} project_name]
|
|
# Specifies the project name used in the log dir.
|
|
# The default log dir is is /project/dt/...
|
|
# Use this option (-pn x11) for X11 only builds to
|
|
# get logs in /project/x11/...
|
|
[-top <dir_name>]
|
|
# Use this to over-ride the default TOP directory
|
|
# for a project. There is NO default.
|
|
[{-mail | mail_list} <user_names>]
|
|
[-h | -? | -help] # Print usage and exit
|
|
eof
|
|
}
|
|
|
|
|
|
##########################################################################
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case $1 in
|
|
-e | -dev) DO_X_BUILD="True"
|
|
DO_MOTIF_BUILD="True"
|
|
DO_CDE_BUILD="True"
|
|
shift 1 ;;
|
|
|
|
-x | -x11) DO_X_BUILD="True"
|
|
shift 1 ;;
|
|
|
|
-m | -motif) DO_MOTIF_BUILD="True"
|
|
shift 1 ;;
|
|
|
|
-c | -cde) DO_CDE_BUILD="True"
|
|
shift 1 ;;
|
|
|
|
-d | -cdedoc) DO_CDEDOC_BUILD="True"
|
|
shift 1 ;;
|
|
|
|
-t | -cdetest) DO_CDETEST_BUILD="True";
|
|
shift 1 ;;
|
|
|
|
-a | -all) DO_X_BUILD="True"
|
|
DO_MOTIF_BUILD="True"
|
|
DO_CDE_BUILD="True"
|
|
DO_CDEDOC_BUILD="True"
|
|
DO_CDETEST_BUILD="True"
|
|
shift 1 ;;
|
|
|
|
-no_build) DO_NOT_BUILD="True"; shift 1 ;;
|
|
|
|
-no_complogs) DO_COMPONENT_LOGS="False"; shift 1 ;;
|
|
|
|
-no_errors) DO_ERROR_FILES="False"; shift 1 ;;
|
|
|
|
-no_ioredirect) DO_REDIRECT_IO="False"; shift 1 ;;
|
|
|
|
-no_warnings) DO_WARNING_FILES="False"; shift 1 ;;
|
|
|
|
-rpt_summary) DO_NOT_BUILD="True"
|
|
DO_COMPONENT_LOGS="False"
|
|
DO_ERROR_FILES="False"
|
|
DO_WARNING_FILES="False"
|
|
shift 1;;
|
|
|
|
-clean) BUILD_TYPE="clean"; shift 1 ;;
|
|
|
|
-debug) DO_DEBUG="True"
|
|
DO_REDIRECT_IO="False"; shift 1 ;;
|
|
|
|
-ld | -log_dir) LOG_DIR=$2; shift 2 ;;
|
|
|
|
-v | -view | -view_tag) VIEW_TAG=$2; shift 2 ;;
|
|
|
|
-sd | -script_dir) SCRIPTS_DIR=$2;
|
|
export SCRIPTS_DIR;
|
|
shift 2 ;;
|
|
|
|
-pre) PRE_BUILD=$2; shift 2 ;;
|
|
|
|
-post) POST_BUILD=$2; shift 2 ;;
|
|
|
|
-top) TOP=$2; shift 2 ;;
|
|
|
|
-pn | -project_name) PROJECT_NAME=$2; shift 2 ;;
|
|
|
|
-mail | -mail_list) MAIL_LIST=$2; shift 2 ;;
|
|
|
|
-h | "-?" | -help | *) usage $PROG_NAME;
|
|
exit 1;
|
|
esac
|
|
done
|
|
|
|
|
|
##########################################################################
|
|
#
|
|
# Script setup: Do this after the command line parsing to pick up
|
|
# an alternate setting of SCRIPTS_DIR
|
|
#
|
|
if [ ! -f $SCRIPTS_DIR/script_setup.ksh ]; then
|
|
print -u2 "$PRG: File '$SCRIPTS_DIR/script_setup.ksh' NOT found!"
|
|
print -u2 "$PRG: Exiting ..."
|
|
exit 1
|
|
fi
|
|
. $SCRIPTS_DIR/script_setup.ksh
|
|
|
|
do_check_file $BUILD_PROJECT -x "NOT found"
|
|
do_check_file $EXTRACT_LOG -x "NOT found"
|
|
do_check_file $EXTRACT_MSG -x "NOT found"
|
|
do_check_file $CDE_COMPONENTS -f "NOT found"
|
|
do_check_file $ERROR_MSGS -f "NOT found"
|
|
do_check_file $WARNING_MSGS -f "NOT found"
|
|
|
|
|
|
##########################################################################
|
|
#
|
|
# Exit if $CLEAR_CASE_TOOL is installed and no view is set
|
|
#
|
|
if [ -x $CLEAR_CASE_TOOL ]; then
|
|
$CLEAR_CASE_TOOL pwv | grep 'Set view' | grep NONE > /dev/null
|
|
if [ $? -eq 0 ]; then
|
|
print -u2 "Exiting ... No ClearCase view is set!"
|
|
do_exit 1
|
|
fi
|
|
VIEW_TAG="`$CLEAR_CASE_TOOL pwv -short`"
|
|
else
|
|
#
|
|
# Some systems don't have $CLEAR_CASE_TOOL so we need to
|
|
# work around it. Just output a warning for now.
|
|
#
|
|
print -u2 "$PROG_NAME: Warning: '$CLEAR_CASE_TOOL' is NOT installed."
|
|
fi
|
|
|
|
|
|
##########################################################################
|
|
#
|
|
# If no project was selected, then build the 'dev' projects
|
|
#
|
|
if [ "False" = $DO_X_BUILD -a "False" = $DO_MOTIF_BUILD -a "False" = $DO_CDE_BUILD -a "FALSE" = $DO_CDEDOC_BUILD -a "False" = $DO_CDETEST_BUILD ]; then
|
|
DO_X_BUILD="True"
|
|
DO_MOTIF_BUILD="True"
|
|
DO_CDE_BUILD="True"
|
|
fi
|
|
|
|
##########################################################################
|
|
#
|
|
# If $INITIALIZE_VIEW is present, run it
|
|
#
|
|
if [ -x $INITIALIZE_VIEW -a "$X_PROJECT" != "$PROJECT_NAME" ]; then
|
|
$INITIALIZE_VIEW > /dev/null 2>&1
|
|
fi
|
|
|
|
##########################################################################
|
|
#
|
|
# Set the log dir and log file for the project logs
|
|
#
|
|
# Put all undirected stdout and stderr in a separate log file
|
|
#
|
|
if [ "" = "$LOG_DIR" ]; then
|
|
LOG_DIR=$LOG_DIR_BASE/$VIEW_TAG/$LOG_DATE
|
|
|
|
if [ -L $LOG_DIR_BASE/$VIEW_TAG/LATEST ]; then
|
|
rm $LOG_DIR_BASE/$VIEW_TAG/LATEST
|
|
fi
|
|
ln -s ./$LOG_DATE $LOG_DIR_BASE/$VIEW_TAG/LATEST
|
|
fi
|
|
SUMM_FILE=$LOG_DIR/build.summary
|
|
if [ ! -d $LOG_DIR ]; then
|
|
mkdir -p $LOG_DIR
|
|
chmod 775 $LOG_DIR
|
|
fi
|
|
|
|
if [ "True" = "$DO_REDIRECT_IO" ]; then
|
|
BUILD_LOG=$LOG_DIR/$BUILD.log
|
|
BUILD_LOG_REDIRECT="-e $BUILD_LOG"
|
|
rm -f $BUILD_LOG && touch $BUILD_LOG
|
|
exec >> $BUILD_LOG
|
|
exec 2>> $BUILD_LOG
|
|
else
|
|
BUILD_LOG_REDIRECT=""
|
|
fi
|
|
|
|
|
|
##########################################################################
|
|
#
|
|
# Build a project
|
|
#
|
|
do_build ()
|
|
{
|
|
#
|
|
# $1 = the project name
|
|
# $2 = [optional] command line options for $BUILD_PROJECT
|
|
# $3 = [optional] value for command line option $2
|
|
#
|
|
|
|
print -u1 "building in $1..."
|
|
|
|
DATE=`date +"$BTAG_DFMT"`
|
|
|
|
if [ "True" = $DO_NOT_BUILD ]; then
|
|
print -u1 "$BTAG_STRT $1: $DATE" >> $SUMM_FILE
|
|
print -u1 "$BTAG_PRJT = $1" >> $SUMM_FILE
|
|
print -u1 "$BTAG_ENDD $1: $DATE" >> $SUMM_FILE
|
|
return
|
|
fi
|
|
|
|
#
|
|
# if building cde tests, write to cde-test-summary.log and
|
|
# not cde-test.log since cde-test.log will be created by the
|
|
# test-build program.
|
|
#
|
|
if [ "$CDETEST_PROJECT" = "$1" ]; then
|
|
LOG_FILE=$LOG_DIR/$1-summary.log
|
|
else
|
|
LOG_FILE=$LOG_DIR/$1.log
|
|
fi
|
|
|
|
print -u1 "$BTAG_STRT $1: $DATE" >> $SUMM_FILE
|
|
print -u1 "$BTAG_PRJT = $1" >> $SUMM_FILE
|
|
print -u1 "$BTAG_LOGF = $LOG_FILE" >> $SUMM_FILE
|
|
|
|
print -u1 "$BTAG_STRT $1: $DATE" > $LOG_FILE
|
|
print -u1 "$BTAG_PRJT = $1" >> $LOG_FILE
|
|
print -u1 "$BTAG_LOGF = $LOG_FILE" >> $LOG_FILE
|
|
|
|
print -u1 "$BTAG_SYST = `uname -a`" >> $LOG_FILE
|
|
print -u1 "$BTAG_VIEW = $VIEW_TAG" >> $LOG_FILE
|
|
if [ "" = "$BUILD_TYPE" ]; then
|
|
print -u1 "$BTAG_TYPE = incrmt" >> $LOG_FILE
|
|
else
|
|
print -u1 "$BTAG_TYPE = $BUILD_TYPE" >> $LOG_FILE
|
|
fi
|
|
if [ -x $CLEAR_CASE_TOOL ]; then
|
|
$CLEAR_CASE_TOOL catcs >> $LOG_FILE
|
|
fi
|
|
|
|
if [ "" != "$PRE_BUILD" -a -x "$PRE_BUILD" ]; then
|
|
print -u1 "Running pre-build script '$PRE_BUILD'." >> $LOG_FILE
|
|
$PRE_BUILD >> $LOG_FILE 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
print -u2 "\nThe pre_build script '$PRE_BUILD' failed."
|
|
print -u2 "Aborting the build!\n"
|
|
do_exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ "" = "$2" ]; then
|
|
if [ "" = "$BUILD_TYPE" ]; then
|
|
if [ "" = "$TOP" ]; then
|
|
$BUILD_PROJECT -p $1 >> $LOG_FILE 2>&1
|
|
else
|
|
$BUILD_PROJECT -top "$TOP" -p $1 >> $LOG_FILE 2>&1
|
|
fi
|
|
else
|
|
if [ "" = "$TOP" ]; then
|
|
$BUILD_PROJECT -p $1 -"$BUILD_TYPE" >> $LOG_FILE 2>&1
|
|
else
|
|
$BUILD_PROJECT -top "$TOP" -p $1 -"$BUILD_TYPE" >> $LOG_FILE 2>&1
|
|
fi
|
|
fi
|
|
else
|
|
if [ "" = "$BUILD_TYPE" ]; then
|
|
if [ "" = "$TOP" ]; then
|
|
$BUILD_PROJECT -p $1 "$2" "$3" >> $LOG_FILE 2>&1
|
|
else
|
|
$BUILD_PROJECT -top "$TOP" -p $1 "$2" "$3" >> $LOG_FILE 2>&1
|
|
fi
|
|
else
|
|
if [ "" = "$TOP" ]; then
|
|
$BUILD_PROJECT -p $1 -"$BUILD_TYPE" "$2" "$3" >> $LOG_FILE 2>&1
|
|
else
|
|
$BUILD_PROJECT -top "$TOP" -p $1 -"$BUILD_TYPE" "$2" "$3" >> $LOG_FILE 2>&1
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ "" != "$POST_BUILD" -a -x "$POST_BUILD" ]; then
|
|
print -u1 "Running post-build script '$POST_BUILD'." >> $LOG_FILE
|
|
$POST_BUILD >> $LOG_FILE 2>&1
|
|
fi
|
|
|
|
DATE=`date +"$BTAG_DFMT"`
|
|
|
|
print -u1 "$BTAG_ENDD $1: $DATE" >> $LOG_FILE
|
|
print -u1 "$BTAG_ENDD $1: $DATE\n" >> $SUMM_FILE
|
|
}
|
|
|
|
|
|
##########################################################################
|
|
#
|
|
# do_summary -
|
|
#
|
|
do_summary ()
|
|
{
|
|
#
|
|
# $1 = the project name
|
|
# $2 = the log file
|
|
#
|
|
PROJECT=$1
|
|
LOG_FILE=$2$3
|
|
ERR_FILE=$2$4
|
|
WRN_FILE=$2$5
|
|
|
|
print -u1 extracting errors and warnings in $PROJECT...
|
|
|
|
ERR=`$EXTRACT_MSG \
|
|
-m $ERROR_MSGS \
|
|
-i $WARNING_MSGS -i $IGNORE_MSGS \
|
|
-l $LOG_FILE $BUILD_LOG_REDIRECT | wc -l`
|
|
WARN=`$EXTRACT_MSG \
|
|
-m $WARNING_MSGS \
|
|
-l $LOG_FILE $BUILD_LOG_REDIRECT | wc -l`
|
|
|
|
if [ "True" = $DO_ERROR_FILES ]; then
|
|
$EXTRACT_MSG \
|
|
-m $ERROR_MSGS -m $BUILD_MSGS \
|
|
-i $WARNING_MSGS -i $IGNORE_MSGS \
|
|
-l $LOG_FILE $BUILD_LOG_REDIRECT | \
|
|
$COMPRESS_MSG \
|
|
-m $BUILD_MSGS $BUILD_LOG_REDIRECT > $ERR_FILE
|
|
fi
|
|
|
|
if [ "True" = $DO_WARNING_FILES ]; then
|
|
$EXTRACT_MSG \
|
|
-m $WARNING_MSGS -m $BUILD_MSGS \
|
|
-l $LOG_FILE $BUILD_LOG_REDIRECT | \
|
|
$COMPRESS_MSG \
|
|
-m $BUILD_MSGS $BUILD_LOG_REDIRECT > $WRN_FILE
|
|
fi
|
|
|
|
AWK_PROJECT='{printf("%-32s %5s errors %5s warnings",$1,$2,$3)}'
|
|
echo $PROJECT $ERR $WARN | awk "$AWK_PROJECT" >> $SUMM_FILE
|
|
print -u1 >> $SUMM_FILE
|
|
|
|
if [ "True" = "$DO_DEBUG" ]; then
|
|
echo $PROJECT $ERR $WARN | awk "$AWK_PROJECT"
|
|
print -u1
|
|
fi
|
|
}
|
|
|
|
|
|
##########################################################################
|
|
#
|
|
# do_component_summary
|
|
#
|
|
do_component_summary ()
|
|
{
|
|
#
|
|
# $1 = the project name
|
|
# $2 = the project log file
|
|
# $3 = the components file
|
|
#
|
|
PROJECT=$1
|
|
PROJECT_LOG_FILE=$2
|
|
COMPONENTS_FILE=$3
|
|
COMPONENTS_LOG_DIR=$LOG_DIR/$PROJECT
|
|
|
|
typeset -i TTL_ERR
|
|
typeset -i TTL_WARN
|
|
|
|
AWK_COMPONENT='{printf(" %-32s %5s errors %5s warnings",$1,$2,$3)}'
|
|
|
|
#
|
|
# Separate the log file for the project into log files for the
|
|
# individual components. Put them into a subdirectory since
|
|
# there may be alot of them.
|
|
#
|
|
if [ "$DO_COMPONENT_LOGS" = "True" ]; then
|
|
if [ ! -d $COMPONENTS_LOG_DIR ]; then
|
|
mkdir -p $COMPONENTS_LOG_DIR
|
|
chmod 775 $COMPONENTS_LOG_DIR
|
|
fi
|
|
|
|
$EXTRACT_LOG \
|
|
-l $PROJECT_LOG_FILE \
|
|
-c $COMPONENTS_FILE \
|
|
-ld $COMPONENTS_LOG_DIR $BUILD_LOG_REDIRECT
|
|
fi
|
|
|
|
let TTL_ERR=0
|
|
let TTL_WARN=0
|
|
|
|
for COMPONENT in `cat $COMPONENTS_FILE`
|
|
do
|
|
print -u1 extracting errors and warnings in $PROJECT/$COMPONENT...
|
|
|
|
COMPONENT_FILE_BASE=`echo $COMPONENT | tr "/" ","`
|
|
COMPONENT_LOG_FILE=$COMPONENTS_LOG_DIR/$COMPONENT_FILE_BASE.log
|
|
|
|
if [ ! -f $COMPONENT_LOG_FILE ]; then
|
|
print -u2 $PROG_NAME: Error, $COMPONENT_LOG_FILE not found.
|
|
continue
|
|
fi
|
|
|
|
ERR=`$EXTRACT_MSG \
|
|
-m $ERROR_MSGS \
|
|
-i $WARNING_MSGS -i $IGNORE_MSGS \
|
|
-l $COMPONENT_LOG_FILE $BUILD_LOG_REDIRECT | wc -l`
|
|
WARN=`$EXTRACT_MSG \
|
|
-m $WARNING_MSGS \
|
|
-l $COMPONENT_LOG_FILE $BUILD_LOG_REDIRECT | wc -l`
|
|
|
|
let TTL_ERR=TTL_ERR+ERR
|
|
let TTL_WARN=TTL_WARN+WARN
|
|
|
|
if [ $ERR -ne 0 -o $WARN -ne 0 ]; then
|
|
echo $PROJECT/$COMPONENT $ERR $WARN | \
|
|
awk "$AWK_COMPONENT" >> $SUMM_FILE
|
|
print -u1 >> $SUMM_FILE
|
|
|
|
if [ "True" = $DO_ERROR_FILES -a $ERR -gt 0 ]; then
|
|
COMPONENT_ERR_FILE=$COMPONENTS_LOG_DIR/$COMPONENT_FILE_BASE.err
|
|
$EXTRACT_MSG \
|
|
-m $ERROR_MSGS -m $BUILD_MSGS \
|
|
-i $WARNING_MSGS -i $IGNORE_MSGS \
|
|
-l $COMPONENT_LOG_FILE $BUILD_LOG_REDIRECT | \
|
|
$COMPRESS_MSG \
|
|
-m $BUILD_MSGS $BUILD_LOG_REDIRECT > $COMPONENT_ERR_FILE
|
|
fi
|
|
|
|
if [ "True" = $DO_WARNING_FILES -a $WARN -gt 0 ]; then
|
|
COMPONENT_WRN_FILE=$COMPONENTS_LOG_DIR/$COMPONENT_FILE_BASE.wrn
|
|
$EXTRACT_MSG \
|
|
-m $WARNING_MSGS -m $BUILD_MSGS \
|
|
-l $COMPONENT_LOG_FILE $BUILD_LOG_REDIRECT | \
|
|
$COMPRESS_MSG \
|
|
-m $BUILD_MSGS $BUILD_LOG_REDIRECT > $COMPONENT_WRN_FILE
|
|
fi
|
|
|
|
if [ "True" = "$DO_DEBUG" ]; then
|
|
echo $PROJECT/$COMPONENT $ERR $WARN | awk "$AWK_COMPONENT"
|
|
print -u1
|
|
|
|
echo TOTAL $TTL_ERR $TTL_WARN | awk "$AWK_COMPONENT"
|
|
print -u1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
echo $PROJECT-TOTAL $TTL_ERR $TTL_WARN | awk "$AWK_COMPONENT" >> $SUMM_FILE
|
|
print -u1 >> $SUMM_FILE
|
|
}
|
|
|
|
|
|
##########################################################################
|
|
#
|
|
# Print header stuff needed for build_summary
|
|
#
|
|
DATE=`date +"$BTAG_DFMT"`
|
|
print -u1 "###################################################" >> $SUMM_FILE
|
|
print -u1 "$BTAG_DATE = $DATE" >> $SUMM_FILE
|
|
print -u1 "$BTAG_VIEW = $VIEW_TAG" >> $SUMM_FILE
|
|
if [ -x $CLEAR_CASE_TOOL ]; then
|
|
TMP_FILE_NAME=`$CLEAR_CASE_TOOL catcs | head -1 | awk '{printf "%s\n", $3}'`
|
|
if [ -f "$TMP_FILE_NAME" ]; then
|
|
print -u1 "$BTAG_CFGS = `$CLEAR_CASE_TOOL catcs | head -1 | awk '{printf "%s\n", $3}'`" >> $SUMM_FILE
|
|
else
|
|
print -u1 "$BTAG_CFGS = NoSpecFile" >> $SUMM_FILE
|
|
fi
|
|
else
|
|
print -u1 "$BTAG_CFGS = NoClrCase" >> $SUMM_FILE
|
|
fi
|
|
print -u1 "$BTAG_PTFM = `uname -s`" >> $SUMM_FILE
|
|
print -u1 "$BTAG_LOGD = $LOG_DIR" >> $SUMM_FILE
|
|
if [ "" = "$BUILD_TYPE" ]; then
|
|
print -u1 "$BTAG_TYPE = incrmt" >> $SUMM_FILE
|
|
else
|
|
print -u1 "$BTAG_TYPE = $BUILD_TYPE" >> $SUMM_FILE
|
|
fi
|
|
print -u1 "###################################################\n" >> $SUMM_FILE
|
|
|
|
|
|
##########################################################################
|
|
#
|
|
# Do the builds and Summarize the results
|
|
#
|
|
|
|
if [ "True" = $DO_X_BUILD ]; then
|
|
print -u1 "#############################################" >> $SUMM_FILE
|
|
do_build $X_PROJECT "" ""
|
|
do_summary $X_PROJECT $LOG_DIR/$X_PROJECT .log .err .wrn
|
|
do_component_summary \
|
|
$X_PROJECT \
|
|
$LOG_DIR/$X_PROJECT.log \
|
|
$X_COMPONENTS
|
|
print -u1 "#############################################\n" >> $SUMM_FILE
|
|
fi
|
|
|
|
if [ "True" = $DO_MOTIF_BUILD ]; then
|
|
print -u1 "#############################################" >> $SUMM_FILE
|
|
do_build $MOTIF_PROJECT "" ""
|
|
do_summary $MOTIF_PROJECT $LOG_DIR/$MOTIF_PROJECT .log .err .wrn
|
|
do_component_summary \
|
|
$MOTIF_PROJECT \
|
|
$LOG_DIR/$MOTIF_PROJECT.log \
|
|
$MOTIF_COMPONENTS
|
|
print -u1 "#############################################\n" >> $SUMM_FILE
|
|
fi
|
|
|
|
if [ "True" = $DO_CDE_BUILD ]; then
|
|
print -u1 "#############################################" >> $SUMM_FILE
|
|
do_build $CDE_PROJECT "" ""
|
|
do_summary $CDE_PROJECT $LOG_DIR/$CDE_PROJECT .log .err .wrn
|
|
do_component_summary \
|
|
$CDE_PROJECT \
|
|
$LOG_DIR/$CDE_PROJECT.log \
|
|
$CDE_COMPONENTS
|
|
print -u1 "#############################################\n" >> $SUMM_FILE
|
|
fi
|
|
|
|
if [ "True" = $DO_CDEDOC_BUILD ]; then
|
|
print -u1 "#############################################" >> $SUMM_FILE
|
|
do_build $CDEDOC_PROJECT "" ""
|
|
do_summary $CDEDOC_PROJECT $LOG_DIR/$CDEDOC_PROJECT .log .err .wrn
|
|
do_component_summary \
|
|
$CDEDOC_PROJECT \
|
|
$LOG_DIR/$CDEDOC_PROJECT.log \
|
|
$CDEDOC_COMPONENTS
|
|
print -u1 "#############################################\n" >> $SUMM_FILE
|
|
fi
|
|
|
|
if [ "True" = "$DO_CDETEST_BUILD" ]; then
|
|
print -u1 "#############################################" >> $SUMM_FILE
|
|
do_build $CDETEST_PROJECT "-log_dir" "$LOG_DIR"
|
|
if [ -f $LOG_DIR/$CDETEST_PROJECT/allmake.* ]; then
|
|
ln -s $LOG_DIR/$CDETEST_PROJECT/allmake.* $LOG_DIR/$CDETEST_PROJECT.log
|
|
fi
|
|
do_summary $CDETEST_PROJECT $LOG_DIR/$CDETEST_PROJECT .log .err .wrn
|
|
do_component_summary \
|
|
$CDETEST_PROJECT \
|
|
$LOG_DIR/$CDETEST_PROJECT.log \
|
|
$CDETEST_COMPONENTS
|
|
print -u1 "#############################################\n" >> $SUMM_FILE
|
|
fi
|
|
|
|
#print -u1 "###################################################\n" >> $SUMM_FILE
|
|
#do_summary $BUILD $LOG_DIR/$BUILD.log
|
|
#print -u1 "###################################################\n" >> $SUMM_FILE
|
|
|
|
##########################################################################
|
|
#
|
|
# Complete the build summary with the config spec and the $BTAG_CMPL
|
|
#
|
|
print -u1 "###################################################\n" >> $SUMM_FILE
|
|
if [ -x $CLEAR_CASE_TOOL ]; then
|
|
$CLEAR_CASE_TOOL catcs >> $SUMM_FILE
|
|
fi
|
|
print -u1 "###################################################\n" >> $SUMM_FILE
|
|
|
|
DATE=`date +"$BTAG_DFMT"`
|
|
print -u1 "###################################################\n" >> $SUMM_FILE
|
|
print -u1 "$BTAG_CMPL: $DATE\n" >> $SUMM_FILE
|
|
print -u1 "###################################################\n" >> $SUMM_FILE
|
|
|
|
##########################################################################
|
|
#
|
|
# Complete the build summary and mail it or dump it to stdout
|
|
#
|
|
if [ "" != "$MAIL_LIST" ]; then
|
|
mailx -s "$SUBJECT_BUILD_COMPLETE - $VIEW_TAG (`date $SUBJECT_DATE`)" "$MAIL_LIST" < $SUMM_FILE
|
|
else
|
|
cat $SUMM_FILE
|
|
fi
|
|
|
|
#
|
|
# Clean up temporary files and exit
|
|
#
|
|
do_exit 0
|