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