Blame maint/testbuild

Packit 0848f5
#! /bin/sh
Packit 0848f5
#
Packit 0848f5
# This is a simple script that makes sure that checkbuilds can be 
Packit 0848f5
# created and then runs it.
Packit 0848f5
# The cb suffix is for "check build"
Packit 0848f5
# Set defaults for the MPICH2 home
Packit 0848f5
srcdir=/home/MPI/testing/mpich2/mpich2
Packit 0848f5
if [ ! -d $srcdir ] ; then
Packit 0848f5
    if [ -d /homes/MPI/testing/mpich2/mpich2 ] ; then
Packit 0848f5
        srcdir=/homes/MPI/testing/mpich2/mpich2
Packit 0848f5
    else
Packit 0848f5
        # We'll check for it later, after the args
Packit 0848f5
        srcdir=
Packit 0848f5
    fi
Packit 0848f5
fi
Packit 0848f5
outdir=/home/MPI/nightly
Packit 0848f5
if [ ! -d $outdir ] ; then
Packit 0848f5
    if [ -d /homes/MPI/nightly ] ; then
Packit 0848f5
        outdir=/homes/MPI/nightly
Packit 0848f5
    else
Packit 0848f5
        # We'll check for it later, after the args
Packit 0848f5
        outdir=
Packit 0848f5
    fi
Packit 0848f5
fi
Packit 0848f5
if [ -d "/home/MPI/testing/tsuites" ] ; then 
Packit 0848f5
    projectsdir="/home/MPI/testing/tsuites"
Packit 0848f5
elif [ -d "/homes/MPI/testing/tsuites" ] ; then
Packit 0848f5
    projectsdir="/homes/MPI/testing/tsuites"
Packit 0848f5
elif [ -d "/Users/$LOGNAME/projects/software/testing" ] ; then
Packit 0848f5
    projectsdir="/Users/$LOGNAME/projects/software/testing"
Packit 0848f5
fi
Packit 0848f5
Packit 0848f5
date=`date "+%Y-%m-%d"`
Packit 0848f5
# default outfile
Packit 0848f5
outfile=testbuild.xml
Packit 0848f5
tests="mpich:mpicxx:intel:testmpio" # Optional: mpich2
Packit 0848f5
#
Packit 0848f5
# Option options to checkbuild
Packit 0848f5
other_opts=""
Packit 0848f5
# Keep track of which compilers are set
Packit 0848f5
ccset=no
Packit 0848f5
cxxset=no
Packit 0848f5
fcset=no
Packit 0848f5
f90set=no
Packit 0848f5
#
Packit 0848f5
# Get options
Packit 0848f5
for arg in "$@" ; do
Packit 0848f5
    argval=""
Packit 0848f5
    case $arg in 
Packit 0848f5
        -*=*) argval=`echo "$arg" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
Packit 0848f5
    esac
Packit 0848f5
Packit 0848f5
    case $arg in 
Packit 0848f5
    -outfile=*) outfile=$argval ;;
Packit 0848f5
    -outdir=*)  outdir=$argval ;;
Packit 0848f5
    -srcdir=*)  srcdir=$argval ;;
Packit 0848f5
    -tests=*)   tests=$argval ;;
Packit 0848f5
    -tmpdir=*)  tmpdir=$argval ;;
Packit 0848f5
    -projectsdir=*) projectsdir=$argval ;;  # directory containing test sources
Packit 0848f5
    -echo) set -x ;;
Packit 0848f5
    *) other_opts="$other_opts '$arg'" 
Packit 0848f5
    envset=`echo A$arg | sed -e 's/A-env=\([A-Z]*\).*/\1/'`
Packit 0848f5
    if [ "$envset" != "$arg" ] ; then
Packit 0848f5
        case $envset in 
Packit 0848f5
	    CC) ccset=yes ;;
Packit 0848f5
	    FC) fcset=yes ;;
Packit 0848f5
	    CXX) cxxset=yes ;;
Packit 0848f5
	    F90) f90set=yes ;;
Packit 0848f5
	esac
Packit 0848f5
    fi
Packit 0848f5
    ;;
Packit 0848f5
    esac
Packit 0848f5
done
Packit 0848f5
Packit 0848f5
if [ -z "$rundir" ] ; then rundir=$tmpdir/cb/mpich2 ; fi
Packit 0848f5
if [ -z "$mpichtestdir" ] ; then mpichtestdir=$tmpdir/cb/mpitest ; fi
Packit 0848f5
if [ -z "$mpicxxtestdir" ] ; then mpicxxtestdir=$tmpdir/cb/mpicxxtest ; fi
Packit 0848f5
if [ -z "$inteltestdir" ] ; then inteltestdir=$tmpdir/cb/MPITEST ; fi
Packit 0848f5
if [ -z "$testmpiodir" ] ; then testmpiodir=$tmpdir/cb/testmpio ; fi
Packit 0848f5
if [ -z "$tmpdir" ] ; then tmpdir=/sandbox/$LOGNAME ; fi
Packit 0848f5
Packit 0848f5
# Construct the full outfile name from the dir and file
Packit 0848f5
outfile="$outdir/$outfile"
Packit 0848f5
if [ -z "$srcdir" ] ; then
Packit 0848f5
    echo "Source directory for MPICH not specified!"
Packit 0848f5
    exit 1
Packit 0848f5
fi
Packit 0848f5
if [ ! -d "$srcdir" ] ; then
Packit 0848f5
    echo "Could not find MPICH2 source dir $srcdir"
Packit 0848f5
    exit 1
Packit 0848f5
fi
Packit 0848f5
if [ ! -d $rundir ] ; then 
Packit 0848f5
    # Assume that we have mkdir -p
Packit 0848f5
    mkdir -p $rundir
Packit 0848f5
fi
Packit 0848f5
if [ ! -d $outdir ] ; then 
Packit 0848f5
    # Assume that we have mkdir -p
Packit 0848f5
    mkdir -p $outdir
Packit 0848f5
fi
Packit 0848f5
if [ ! -d "$rundir/maint" ] ; then
Packit 0848f5
    mkdir "$rundir/maint"
Packit 0848f5
fi
Packit 0848f5
if [ ! -d $mpichtestdir ] ; then
Packit 0848f5
    mkdir $mpichtestdir
Packit 0848f5
fi
Packit 0848f5
if [ ! -d $mpicxxtestdir ] ; then
Packit 0848f5
    mkdir $mpicxxtestdir
Packit 0848f5
fi
Packit 0848f5
if [ ! -d $testmpiodir ] ; then
Packit 0848f5
    mkdir $testmpiodir
Packit 0848f5
fi
Packit 0848f5
if [ ! -d $inteltestdir ] ; then
Packit 0848f5
    mkdir $inteltestdir
Packit 0848f5
fi
Packit 0848f5
# We don't need to build the mpich2testdir because it is part of the mpich2
Packit 0848f5
# distribution
Packit 0848f5
# Build the current version of checkbuilds
Packit 0848f5
(cd $rundir/maint && $srcdir/maint/configure 2>&1 >/dev/null)
Packit 0848f5
if [ ! -x $rundir/maint/checkbuilds ] ; then
Packit 0848f5
    echo "Could not build checkbuilds"
Packit 0848f5
    exit 1
Packit 0848f5
fi
Packit 0848f5
#
Packit 0848f5
#
Packit 0848f5
# -tests="mpich:mpicxx:intel"
Packit 0848f5
# Use -tests="mpich:mpicxx" to get a smaller list of tests.
Packit 0848f5
# Use eval to make sure that quoted arguments containing spaces are handled
Packit 0848f5
# correctly
Packit 0848f5
# Set the default values of the CC and FC environment variables
Packit 0848f5
#envargs='-envopt="CC;cc;gcc" -envopt="FC;f77;g77"'
Packit 0848f5
envargs=""
Packit 0848f5
if [ "$ccset" = no ] ; then
Packit 0848f5
    envargs='-envopt="CC;cc;gcc"'
Packit 0848f5
fi
Packit 0848f5
if [ "$fcset" = no ] ; then
Packit 0848f5
#    envargs="$envargs '-envopt="'"'"FC;f77;g77"'"'"'"
Packit 0848f5
    envargs="$envargs -envopt="'"'"FC;f77;g77"'"'
Packit 0848f5
fi
Packit 0848f5
#			  '-envopt="CC;cc;gcc"' '-envopt="FC;f77;g77"' 
Packit 0848f5
eval $rundir/maint/checkbuilds -rundir=$rundir \
Packit 0848f5
                        --srcdir=$srcdir \
Packit 0848f5
                        --projectsdir=$projectsdir \
Packit 0848f5
			$envargs \
Packit 0848f5
			  "-tests='""$tests""'" -tmpdir=$tmpdir \
Packit 0848f5
			  -xml -maxcount=1 -outfile=$outfile $other_opts