Blame maint/samplebuilds

Packit Service c5cf8c
#! /bin/sh
Packit Service c5cf8c
#
Packit Service c5cf8c
# Configure and build the most common configurations.  Does not do 
Packit Service c5cf8c
# extensive tests
Packit Service c5cf8c
#
Packit Service c5cf8c
# ----------------------------------------------------------------------------
Packit Service c5cf8c
# Set defaults
Packit Service c5cf8c
#
Packit Service c5cf8c
do_tests=yes
Packit Service c5cf8c
builddir=/sandbox/$LOGNAME/mpich2
Packit Service c5cf8c
instdir=/sandbox/$LOGNAME/mpi2-inst
Packit Service c5cf8c
srcdir=/home/MPI/testing/mpich2/mpich2
Packit Service c5cf8c
# ----------------------------------------------------------------------------
Packit Service c5cf8c
# Get arguments
Packit Service c5cf8c
for arg in "$@" ; do
Packit Service c5cf8c
    case $arg in 
Packit Service c5cf8c
	-echo) set -x ;;
Packit Service c5cf8c
	-local) 
Packit Service c5cf8c
	# Do the testing in place.
Packit Service c5cf8c
	builddir=`pwd`
Packit Service c5cf8c
	instdir=`(cd .. && pwd)`"/mpi2-inst"
Packit Service c5cf8c
	srcdir=`pwd`
Packit Service c5cf8c
	;;
Packit Service c5cf8c
	-notest)
Packit Service c5cf8c
	do_tests=no
Packit Service c5cf8c
	;;
Packit Service c5cf8c
	*)
Packit Service c5cf8c
	if [ -n "$arg" ] ; then
Packit Service c5cf8c
	    echo "Unknown argument $arg"
Packit Service c5cf8c
	    exit 1
Packit Service c5cf8c
	fi
Packit Service c5cf8c
	;;
Packit Service c5cf8c
    esac
Packit Service c5cf8c
done
Packit Service c5cf8c
Packit Service c5cf8c
# ----------------------------------------------------------------------------
Packit Service c5cf8c
# Validate arguments
Packit Service c5cf8c
#
Packit Service c5cf8c
if [ ! -d $srcdir ] ; then
Packit Service c5cf8c
    if [ -d /homes/MPI/testing/mpich2/mpich2 ] ; then
Packit Service c5cf8c
        srcdir=/homes/MPI/testing/mpich2/mpich2
Packit Service c5cf8c
    else
Packit Service c5cf8c
	echo "Cannot find source directory"
Packit Service c5cf8c
	exit 1
Packit Service c5cf8c
    fi
Packit Service c5cf8c
fi
Packit Service c5cf8c
#
Packit Service c5cf8c
if cd $builddir ; then
Packit Service c5cf8c
    :
Packit Service c5cf8c
else
Packit Service c5cf8c
    echo "Could not change directory to $builddir"
Packit Service c5cf8c
    exit 1
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ ! -x $srcdir/configure ] ; then
Packit Service c5cf8c
    echo "Cannot find configure in $srcdir"
Packit Service c5cf8c
    exit 1
Packit Service c5cf8c
fi
Packit Service c5cf8c
#
Packit Service c5cf8c
# ---------------------------------------------------------------------------
Packit Service c5cf8c
# BuildMPICH uses the following global variables:
Packit Service c5cf8c
#    testname    - string name for test
Packit Service c5cf8c
#    config_args - arguments to pass to configure
Packit Service c5cf8c
#    do_tests    - yes or no; controls tests
Packit Service c5cf8c
#    srcdir,instdir - directories for source, installation
Packit Service c5cf8c
# This uses XML-style tags to mark the various segments, but does not
Packit Service c5cf8c
# filter the output from the individual steps for XML/SGML characters (e.g.,
Packit Service c5cf8c
# the <,>,& characters aren't handled).
Packit Service c5cf8c
# Note: we could filter through sed with
Packit Service c5cf8c
# sed -e 's/>/-AMP-gt;/g' -e 's/</-AMP-lt;/g' -e 's/\&/-AMP-amp;/g' | \
Packit Service c5cf8c
# sed -e 's/-AMP-/&/g'
Packit Service c5cf8c
#
Packit Service c5cf8c
BuildMPICH2 () {
Packit Service c5cf8c
echo "<BUILDTEST NAME=\"$testname\">"
Packit Service c5cf8c
echo "<CONFIG>"
Packit Service c5cf8c
if $srcdir/configure --prefix=$instdir $config_args ; then
Packit Service c5cf8c
    echo "</CONFIG>"
Packit Service c5cf8c
    echo "<MAKE>"
Packit Service c5cf8c
    # Remove any lingering libraries
Packit Service c5cf8c
    rm -f lib/libmpi*.a lib/libpmpi*.a lib/libmpifort*.a
Packit Service c5cf8c
    rm -f lib/libmpi*.so lib/libpmpi*.so lib/libmpifort*.so
Packit Service c5cf8c
    if make ; then
Packit Service c5cf8c
        echo "</MAKE>"
Packit Service c5cf8c
	echo "<MAKEINST>"
Packit Service c5cf8c
	if make install ; then
Packit Service c5cf8c
	    echo "</MAKEINST>"
Packit Service c5cf8c
	    if [ "$do_tests" = "yes" ] ; then
Packit Service c5cf8c
	        echo "<RUNTEST>"
Packit Service c5cf8c
	        if make testing ; then
Packit Service c5cf8c
		    echo "Tests completed in test/mpi/summary.xml"
Packit Service c5cf8c
		    # Really should copy failures if any
Packit Service c5cf8c
	        else
Packit Service c5cf8c
		    echo "Tests failed ($testname)"
Packit Service c5cf8c
	        fi
Packit Service c5cf8c
	        echo "</RUNTEST>"
Packit Service c5cf8c
	    fi
Packit Service c5cf8c
	else
Packit Service c5cf8c
	    rc=$?
Packit Service c5cf8c
	    echo "Install failed ($testname)"
Packit Service c5cf8c
	    echo "</MAKEINST STATUS=\"$rc\">"
Packit Service c5cf8c
	fi
Packit Service c5cf8c
    else 
Packit Service c5cf8c
        rc = $?
Packit Service c5cf8c
	echo "make failed ($testname)"
Packit Service c5cf8c
	echo "</MAKE STATUS=\"$rc\">"
Packit Service c5cf8c
    fi
Packit Service c5cf8c
else
Packit Service c5cf8c
    rc=$?
Packit Service c5cf8c
    echo "Configure failed ($testname)"
Packit Service c5cf8c
    echo "</CONFIG STATUS=\"$rc\">"
Packit Service c5cf8c
fi
Packit Service c5cf8c
echo "</BUILDTEST>"
Packit Service c5cf8c
}
Packit Service c5cf8c
# ---------------------------------------------------------------------------
Packit Service c5cf8c
# Preamble
Packit Service c5cf8c
echo "<MPICH2BUILD>"
Packit Service c5cf8c
echo "<DATE>"
Packit Service c5cf8c
date
Packit Service c5cf8c
echo "</DATE>"
Packit Service c5cf8c
# ---------------------------------------------------------------------------
Packit Service c5cf8c
# Basic test
Packit Service c5cf8c
testname="basic"
Packit Service c5cf8c
config_args=""
Packit Service c5cf8c
BuildMPICH2
Packit Service c5cf8c
Packit Service c5cf8c
#
Packit Service c5cf8c
# No Fortran or C++
Packit Service c5cf8c
testname="no f77/c++"
Packit Service c5cf8c
config_args="--disable-f77 --disable-cxx"
Packit Service c5cf8c
BuildMPICH2
Packit Service c5cf8c
Packit Service c5cf8c
#
Packit Service c5cf8c
# No Weak symbols
Packit Service c5cf8c
testname="no weak symbols"
Packit Service c5cf8c
config_args="--disable-weak-symbols"
Packit Service c5cf8c
BuildMPICH2
Packit Service c5cf8c
Packit Service c5cf8c
#
Packit Service c5cf8c
# --enable-fast
Packit Service c5cf8c
testname="fast"
Packit Service c5cf8c
config_args="--enable-fast"
Packit Service c5cf8c
BuildMPICH2
Packit Service c5cf8c
Packit Service c5cf8c
#
Packit Service c5cf8c
# forker pm, strict
Packit Service c5cf8c
testname="strict and forker"
Packit Service c5cf8c
config_args="--enable-strict --with-pm=forker"
Packit Service c5cf8c
BuildMPICH2
Packit Service c5cf8c
Packit Service c5cf8c
#
Packit Service c5cf8c
# Build and link with a logging library
Packit Service c5cf8c
testname="logging with lwlog"
Packit Service c5cf8c
config_args="--with-logging=lwlog --with-pm=forker"
Packit Service c5cf8c
BuildMPICH2
Packit Service c5cf8c
Packit Service c5cf8c
#
Packit Service c5cf8c
# Build with memory checking
Packit Service c5cf8c
testname="memory tests"
Packit Service c5cf8c
config_args="--enable-g=all --enable-strict"
Packit Service c5cf8c
BuildMPICH2
Packit Service c5cf8c
Packit Service c5cf8c
#
Packit Service c5cf8c
# Build with shared libraries
Packit Service c5cf8c
testname="sharedlibs"
Packit Service c5cf8c
config_args="--enable-sharedlibs=gcc"
Packit Service c5cf8c
BuildMPICH2
Packit Service c5cf8c
Packit Service c5cf8c
#
Packit Service c5cf8c
# Build with PVFS if available
Packit Service c5cf8c
# --with-romio=--with-file-system=ufs+nfs+testfs+pvfs
Packit Service c5cf8c
# Tests could be run in /pvfs/pvfsstage/$LOGNAME on Chiba
Packit Service c5cf8c
if [ -d /pvfs ] ; then
Packit Service c5cf8c
    testname="pvfs"
Packit Service c5cf8c
    config_args="--with-romio=--with-file-system=ufs+nfs+testfs+pvfs"
Packit Service c5cf8c
    BuildMPICH2
Packit Service c5cf8c
fi
Packit Service c5cf8c
# ---------------------------------------------------------------------------
Packit Service c5cf8c
# Postamble
Packit Service c5cf8c
echo "</MPICH2BUILD>"