|
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
|