Blame confdb/aclocal_romio.m4

Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl This files contains additional macros for using autoconf to 
Packit Service c5cf8c
dnl build configure scripts.
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl Almost all of this file is taken from the aclocal.m4 of MPICH
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl Get the format of Fortran names.  Uses F77, FFLAGS, and sets WDEF.
Packit Service c5cf8c
dnl If the test fails, sets NOF77 to 1, HAVE_FORTRAN to 0.
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
AC_DEFUN([PAC_GET_FORTNAMES],[
Packit Service c5cf8c
   rm -f confftest.f confftest.$OBJEXT
Packit Service c5cf8c
   cat > confftest.f <
Packit Service c5cf8c
       subroutine mpir_init_fop( a )
Packit Service c5cf8c
       integer a
Packit Service c5cf8c
       a = 1
Packit Service c5cf8c
       return
Packit Service c5cf8c
       end
Packit Service c5cf8c
EOF
Packit Service c5cf8c
   $F77 $FFLAGS -c confftest.f > /dev/null 2>&1
Packit Service c5cf8c
   if test ! -s confftest.$OBJEXT ; then
Packit Service c5cf8c
	AC_MSG_WARN([Unable to test Fortran compiler.  Compiling a test 
Packit Service c5cf8c
program failed to produce an object file])
Packit Service c5cf8c
	NOF77=1
Packit Service c5cf8c
   elif test -z "$FORTRANNAMES" ; then
Packit Service c5cf8c
     # MAC OS X (and probably FreeBSD need strings - (not strings -a)
Packit Service c5cf8c
     # Cray doesn't accept -a ...
Packit Service c5cf8c
     allstrings="-a"
Packit Service c5cf8c
     if test $arch_CRAY ; then 
Packit Service c5cf8c
	allstrings="" 
Packit Service c5cf8c
     elif strings - confftest.$OBJEXT < /dev/null >/dev/null 2>&1 ; then
Packit Service c5cf8c
         allstrings="-"
Packit Service c5cf8c
     elif strings -a confftest.$OBJEXT < /dev/null >/dev/null 2>&1 ; then
Packit Service c5cf8c
         allstrings="-a"
Packit Service c5cf8c
     fi
Packit Service c5cf8c
    
Packit Service c5cf8c
     nameform1=`strings $allstrings confftest.$OBJEXT | grep mpir_init_fop_  | head -1`
Packit Service c5cf8c
     nameform2=`strings $allstrings confftest.$OBJEXT | grep MPIR_INIT_FOP   | head -1`
Packit Service c5cf8c
     nameform3=`strings $allstrings confftest.$OBJEXT | grep mpir_init_fop   | head -1`
Packit Service c5cf8c
     nameform4=`strings $allstrings confftest.$OBJEXT | grep mpir_init_fop__ | head -1`
Packit Service c5cf8c
    rm -f confftest.f confftest.$OBJEXT
Packit Service c5cf8c
    if test -n "$nameform4" ; then
Packit Service c5cf8c
	echo "Fortran externals are lower case and have two trailing underscores"
Packit Service c5cf8c
	FORTRANNAMES="FORTRANDOUBLEUNDERSCORE"
Packit Service c5cf8c
    elif test -n "$nameform1" ; then
Packit Service c5cf8c
        # We don't set this in CFLAGS; it is a default case
Packit Service c5cf8c
        echo "Fortran externals have a trailing underscore and are lowercase"
Packit Service c5cf8c
	FORTRANNAMES="FORTRANUNDERSCORE"
Packit Service c5cf8c
    elif test -n "$nameform2" ; then
Packit Service c5cf8c
	echo "Fortran externals are uppercase"     
Packit Service c5cf8c
	FORTRANNAMES="FORTRANCAPS" 
Packit Service c5cf8c
    elif test -n "$nameform3" ; then
Packit Service c5cf8c
	echo "Fortran externals are lower case"
Packit Service c5cf8c
	FORTRANNAMES="FORTRANNOUNDERSCORE"
Packit Service c5cf8c
    else
Packit Service c5cf8c
	AC_MSG_WARN([Unable to determine the form of Fortran external names.
Packit Service c5cf8c
Make sure that the compiler $F77 can be run on this system.
Packit Service c5cf8c
Turning off Fortran (-nof77 being assumed)])
Packit Service c5cf8c
	NOF77=1
Packit Service c5cf8c
    fi
Packit Service c5cf8c
    fi
Packit Service c5cf8c
    if test -n "$FORTRANNAMES" ; then
Packit Service c5cf8c
        WDEF="-D$FORTRANNAMES"
Packit Service c5cf8c
    fi
Packit Service c5cf8c
    # Delete confftest files with any extension.  This catches the case
Packit Service c5cf8c
    # where auxillary files, such as coverage files, are removed.
Packit Service c5cf8c
    rm -f confftest.*
Packit Service c5cf8c
    ])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_GET_SPECIAL_SYSTEM_INFO,[
Packit Service c5cf8c
#
Packit Service c5cf8c
if test -n "$arch_IRIX"; then
Packit Service c5cf8c
   AC_MSG_CHECKING(for IRIX OS version)
Packit Service c5cf8c
   dnl This block of code replaces a generic "IRIX" arch value with
Packit Service c5cf8c
   dnl  IRIX_<version>_<chip>
Packit Service c5cf8c
   dnl  For example
Packit Service c5cf8c
   dnl  IRIX_5_4400 (IRIX 5.x, using MIPS 4400)
Packit Service c5cf8c
   osversion=`uname -r | sed 's/\..*//'`
Packit Service c5cf8c
   dnl Note that we need to allow brackets here, so we briefly turn off 
Packit Service c5cf8c
   dnl the macro quotes
Packit Service c5cf8c
   changequote(,)dnl
Packit Service c5cf8c
   dnl Get the second field (looking for 6.1)
Packit Service c5cf8c
   osvminor=`uname -r | sed 's/[0-9]\.\([0-9]*\)\..*/\1/'`
Packit Service c5cf8c
   changequote([,])dnl
Packit Service c5cf8c
   AC_MSG_RESULT($osversion)
Packit Service c5cf8c
   dnl Get SGI processor count by quick hack
Packit Service c5cf8c
   AC_MSG_CHECKING(for IRIX cpucount)
Packit Service c5cf8c
   changequote(,)dnl
Packit Service c5cf8c
   cpucount=`hinv | grep '[0-9]* [0-9]* MHZ IP[0-9]* Proc' | cut -f 1 -d' '`
Packit Service c5cf8c
   if test "$cpucount" = "" ; then
Packit Service c5cf8c
     cpucount=`hinv | grep 'Processor [0-9]*:' | wc -l | sed -e 's/ //g'`
Packit Service c5cf8c
   fi
Packit Service c5cf8c
   changequote([,])dnl
Packit Service c5cf8c
   if test "$cpucount" = "" ; then
Packit Service c5cf8c
     AC_MSG_RESULT([Could not determine cpucount.  Please send])
Packit Service c5cf8c
     hinv
Packit Service c5cf8c
     AC_MSG_ERROR([to romio-maint@mcs.anl.gov])
Packit Service c5cf8c
   fi
Packit Service c5cf8c
   AC_MSG_RESULT($cpucount)
Packit Service c5cf8c
   dnl
Packit Service c5cf8c
   AC_MSG_CHECKING(for IRIX cpumodel)
Packit Service c5cf8c
   dnl The tail -1 is necessary for multiple processor SGI boxes
Packit Service c5cf8c
   dnl We might use this to detect SGI multiprocessors and recommend
Packit Service c5cf8c
   dnl -comm=shared
Packit Service c5cf8c
   cputype=`hinv -t cpu | tail -1 | cut -f 3 -d' '`
Packit Service c5cf8c
   if test -z "$cputype" ; then
Packit Service c5cf8c
        AC_MSG_RESULT([Could not get cputype from hinv -t cpu command. Please send])
Packit Service c5cf8c
        hinv -t cpu 2>&1
Packit Service c5cf8c
        hinv -t cpu | cut -f 3 -d' ' 2>&1
Packit Service c5cf8c
	AC_MSG_ERROR([to romio-maint@mcs.anl.gov])
Packit Service c5cf8c
   fi
Packit Service c5cf8c
   AC_MSG_RESULT($cputype)
Packit Service c5cf8c
   dnl echo "checking for osversion and cputype"
Packit Service c5cf8c
   dnl cputype may contain R4400, R2000A/R3000, or something else.  
Packit Service c5cf8c
   dnl We may eventually need to look at it.
Packit Service c5cf8c
   if test -z "$osversion" ; then
Packit Service c5cf8c
        AC_MSG_RESULT([Could not determine OS version.  Please send])
Packit Service c5cf8c
        uname -a
Packit Service c5cf8c
        AC_MSG_ERROR([to romio-maint@mcs.anl.gov])
Packit Service c5cf8c
   elif test $osversion = 4 ; then
Packit Service c5cf8c
        true
Packit Service c5cf8c
   elif test $osversion = 5 ; then
Packit Service c5cf8c
        true
Packit Service c5cf8c
   elif test $osversion = 6 ; then
Packit Service c5cf8c
        true
Packit Service c5cf8c
   else 
Packit Service c5cf8c
       AC_MSG_RESULT([Could not recognize the version of IRIX (got $osversion).
Packit Service c5cf8c
ROMIO knows about versions 4, 5 and 6; the version being returned from 
Packit Service c5cf8c
uname -r is $osversion.  Please send])
Packit Service c5cf8c
       uname -a 2>&1
Packit Service c5cf8c
       hinv 2>&1
Packit Service c5cf8c
       AC_MSG_ERROR([to romio-maint@mcs.anl.gov])
Packit Service c5cf8c
   fi
Packit Service c5cf8c
   AC_MSG_CHECKING(for cputype)
Packit Service c5cf8c
   OLD_ARCH=IRIX
Packit Service c5cf8c
   IRIXARCH="$ARCH_$osversion"
Packit Service c5cf8c
   dnl Now, handle the chip set
Packit Service c5cf8c
   changequote(,)dnl
Packit Service c5cf8c
   cputype=`echo $cputype | sed -e 's%.*/%%' -e 's/R//' | tr -d "[A-Z]"`
Packit Service c5cf8c
   changequote([,])dnl
Packit Service c5cf8c
   case $cputype in 
Packit Service c5cf8c
        3000) ;;
Packit Service c5cf8c
        4000) ;;
Packit Service c5cf8c
        4400) ;;
Packit Service c5cf8c
        4600) ;;
Packit Service c5cf8c
        5000) ;;
Packit Service c5cf8c
        8000) ;;
Packit Service c5cf8c
        10000);;
Packit Service c5cf8c
	12000);;
Packit Service c5cf8c
        *)
Packit Service c5cf8c
	AC_MSG_WARN([Unexpected IRIX/MIPS chipset $cputype.  Please send the output])
Packit Service c5cf8c
        uname -a 2>&1
Packit Service c5cf8c
        hinv 2>&1 
Packit Service c5cf8c
        AC_MSG_WARN([to romio-maint@mcs.anl.gov
Packit Service c5cf8c
ROMIO will continue and assume that the cputype is
Packit Service c5cf8c
compatible with a MIPS 4400 processor.])
Packit Service c5cf8c
        cputype=4400
Packit Service c5cf8c
        ;;
Packit Service c5cf8c
   esac
Packit Service c5cf8c
   AC_MSG_RESULT($cputype)
Packit Service c5cf8c
   IRIXARCH="$IRIXARCH_$cputype"
Packit Service c5cf8c
   echo "IRIX-specific architecture is $IRIXARCH"
Packit Service c5cf8c
fi
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_TEST_MPI,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if a simple MPI program compiles and links)
Packit Service c5cf8c
  rm -f mpitest.c
Packit Service c5cf8c
  cat > mpitest.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
     main(int argc, char **argv)
Packit Service c5cf8c
     {
Packit Service c5cf8c
         MPI_Init(&argc,&argv);
Packit Service c5cf8c
         MPI_Finalize(); 
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  cmd="$CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB"
Packit Service c5cf8c
  echo "$as_me:$LINENO: $cmd" >&5
Packit Service c5cf8c
  $cmd >&5 2>&5
Packit Service c5cf8c
  if test ! -x conftest$EXEEXT ; then
Packit Service c5cf8c
      echo "$as_me:$LINENO: failed program was:" >&5
Packit Service c5cf8c
      sed 's/^/| /' mpitest.c >&5
Packit Service c5cf8c
      rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
      AC_MSG_ERROR([Unable to compile a simple MPI program.
Packit Service c5cf8c
Use environment variables to provide the location of MPI libraries and
Packit Service c5cf8c
include directories])
Packit Service c5cf8c
  else
Packit Service c5cf8c
      rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
  fi
Packit Service c5cf8c
AC_MSG_RESULT(yes)
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_NEEDS_FINT,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if MPI_Fint is defined in the MPI implementation)
Packit Service c5cf8c
  cat > mpitest1.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
     main()
Packit Service c5cf8c
     {
Packit Service c5cf8c
         MPI_Fint i;
Packit Service c5cf8c
         i = 0;
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f mpitest1.$OBJEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -c mpitest1.c > /dev/null 2>&1
Packit Service c5cf8c
  if test ! -s mpitest1.$OBJEXT ; then
Packit Service c5cf8c
      NEEDS_MPI_FINT="#define NEEDS_MPI_FINT"
Packit Service c5cf8c
      CFLAGS="$CFLAGS -DNEEDS_MPI_FINT"
Packit Service c5cf8c
      AC_MSG_RESULT(no)
Packit Service c5cf8c
      rm -f mpitest1.$OBJEXT mpitest1.c
Packit Service c5cf8c
  else
Packit Service c5cf8c
      NEEDS_MPI_FINT=""
Packit Service c5cf8c
      AC_MSG_RESULT(yes)
Packit Service c5cf8c
      rm -f mpitest1.$OBJEXT mpitest1.c
Packit Service c5cf8c
  fi
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_MPI_LONG_LONG_INT,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if MPI_LONG_LONG_INT is defined in mpi.h)
Packit Service c5cf8c
  rm -f mpitest.c
Packit Service c5cf8c
  cat > mpitest.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
     main(int argc, char **argv)
Packit Service c5cf8c
     {
Packit Service c5cf8c
         long long i;   
Packit Service c5cf8c
         MPI_Init(&argc,&argv);
Packit Service c5cf8c
         MPI_Send(&i, 1, MPI_LONG_LONG_INT, 0, 0, MPI_COMM_WORLD);
Packit Service c5cf8c
         MPI_Finalize(); 
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
      AC_MSG_RESULT(yes)
Packit Service c5cf8c
      AC_DEFINE(HAVE_MPI_LONG_LONG_INT,,[Define if mpi has long long it])
Packit Service c5cf8c
  else
Packit Service c5cf8c
      AC_MSG_RESULT(no)
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl PAC_LONG_LONG_64: check if there is a 64-bit long long
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_LONG_LONG_64,[
Packit Service c5cf8c
if test -n "$longlongsize" ; then
Packit Service c5cf8c
    if test "$longlongsize" = 8 ; then
Packit Service c5cf8c
       echo "defining MPI_Offset as long long in C and integer*8 in Fortran" 
Packit Service c5cf8c
       AC_DEFINE(HAVE_LONG_LONG_64,,[Define if long long is 64 bits])
Packit Service c5cf8c
       DEFINE_MPI_OFFSET="typedef long long MPI_Offset;"
Packit Service c5cf8c
       FORTRAN_MPI_OFFSET="integer*8"
Packit Service c5cf8c
       LL="\%lld"
Packit Service c5cf8c
    elif test "$longlongsize" = "int" ; then  # a hack to set MPI_Offset as int
Packit Service c5cf8c
       echo "defining MPI_Offset as int in C and integer in Fortran"
Packit Service c5cf8c
       DEFINE_MPI_OFFSET="typedef int MPI_Offset;"
Packit Service c5cf8c
       FORTRAN_MPI_OFFSET="integer"
Packit Service c5cf8c
       AC_DEFINE(MPI_OFFSET_IS_INT,,[Define if MPI_Offset is int])
Packit Service c5cf8c
       LL="\%d"
Packit Service c5cf8c
       MPI_OFFSET_KIND1="!"
Packit Service c5cf8c
       MPI_OFFSET_KIND2="!"
Packit Service c5cf8c
    else 
Packit Service c5cf8c
       echo "defining MPI_Offset as long in C and integer in Fortran" 
Packit Service c5cf8c
       DEFINE_MPI_OFFSET="typedef long MPI_Offset;"
Packit Service c5cf8c
       FORTRAN_MPI_OFFSET="integer"
Packit Service c5cf8c
       LL="\%ld"
Packit Service c5cf8c
       MPI_OFFSET_KIND1="!"
Packit Service c5cf8c
       MPI_OFFSET_KIND2="!"
Packit Service c5cf8c
    fi
Packit Service c5cf8c
else
Packit Service c5cf8c
   PAC_GET_TYPE_SIZE(long long, longlongsize)
Packit Service c5cf8c
   if test -n "$longlongsize" ; then
Packit Service c5cf8c
      if test "$longlongsize" = 8 ; then
Packit Service c5cf8c
         PAC_TEST_LONG_LONG()
Packit Service c5cf8c
      else
Packit Service c5cf8c
         echo "defining MPI_Offset as long in C and integer in Fortran" 
Packit Service c5cf8c
         DEFINE_MPI_OFFSET="typedef long MPI_Offset;"
Packit Service c5cf8c
         FORTRAN_MPI_OFFSET="integer"
Packit Service c5cf8c
         LL="\%ld"
Packit Service c5cf8c
         MPI_OFFSET_KIND1="!"
Packit Service c5cf8c
         MPI_OFFSET_KIND2="!"
Packit Service c5cf8c
      fi
Packit Service c5cf8c
   else 
Packit Service c5cf8c
dnl   check if longlong is not supported or only its size cannot be determined
Packit Service c5cf8c
dnl   because the program cannot be run.
Packit Service c5cf8c
      rm -f ltest.c
Packit Service c5cf8c
      cat > ltest.c <
Packit Service c5cf8c
        main()
Packit Service c5cf8c
        {
Packit Service c5cf8c
           long long i=8;
Packit Service c5cf8c
           return 0;
Packit Service c5cf8c
        }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
      rm -f conftest$EXEEXT
Packit Service c5cf8c
      $CC $USER_CFLAGS -o conftest$EXEEXT ltest.c > /dev/null 2>&1
Packit Service c5cf8c
      if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
         echo "assuming size of long long is 8bytes; use '-longlongsize' to indicate otherwise"
Packit Service c5cf8c
         rm -f conftest$EXEEXT ltest.c
Packit Service c5cf8c
         echo "defining MPI_Offset as long long in C and integer*8 in Fortran" 
Packit Service c5cf8c
         AC_DEFINE(HAVE_LONG_LONG_64,,[Define if long long is 64 bits])
Packit Service c5cf8c
         DEFINE_MPI_OFFSET="typedef long long MPI_Offset;"
Packit Service c5cf8c
         FORTRAN_MPI_OFFSET="integer*8"
Packit Service c5cf8c
         LL="\%lld"
Packit Service c5cf8c
      else 
Packit Service c5cf8c
         echo "assuming long long is not available; use '-longlongsize' to indicate otherwise"
Packit Service c5cf8c
         echo "defining MPI_Offset as long in C and integer in Fortran" 
Packit Service c5cf8c
         DEFINE_MPI_OFFSET="typedef long MPI_Offset;"
Packit Service c5cf8c
         FORTRAN_MPI_OFFSET="integer"
Packit Service c5cf8c
         LL="\%ld"
Packit Service c5cf8c
         MPI_OFFSET_KIND1="!"
Packit Service c5cf8c
         MPI_OFFSET_KIND2="!"
Packit Service c5cf8c
      fi
Packit Service c5cf8c
   fi
Packit Service c5cf8c
fi
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_MPI_INFO,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if MPI_Info functions are defined in the MPI implementation)
Packit Service c5cf8c
  rm -f mpitest.c
Packit Service c5cf8c
  cat > mpitest.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
     main(int argc, char **argv)
Packit Service c5cf8c
     {
Packit Service c5cf8c
         MPI_Info info;
Packit Service c5cf8c
         MPI_Init(&argc,&argv);
Packit Service c5cf8c
         MPI_Info_create(&info;;
Packit Service c5cf8c
         MPI_Finalize(); 
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
      AC_MSG_RESULT(yes)
Packit Service c5cf8c
      AC_DEFINE(HAVE_MPI_INFO,1,[Define if MPI_Info available])
Packit Service c5cf8c
      HAVE_MPI_INFO="#define HAVE_MPI_INFO"
Packit Service c5cf8c
      MPI_FINFO1="!"
Packit Service c5cf8c
      MPI_FINFO2="!"
Packit Service c5cf8c
      MPI_FINFO3="!"
Packit Service c5cf8c
      MPI_FINFO4="!"
Packit Service c5cf8c
  else
Packit Service c5cf8c
      AC_MSG_RESULT(no)
Packit Service c5cf8c
      BUILD_MPI_INFO=1
Packit Service c5cf8c
      MPI_FINFO1="      INTEGER MPI_MAX_INFO_KEY, MPI_MAX_INFO_VAL"
Packit Service c5cf8c
      MPI_FINFO2="      PARAMETER (MPI_MAX_INFO_KEY=255, MPI_MAX_INFO_VAL=1024)"
Packit Service c5cf8c
      MPI_FINFO3="      INTEGER MPI_INFO_NULL"
Packit Service c5cf8c
      MPI_FINFO4="      PARAMETER (MPI_INFO_NULL=0)"
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_MPI_DARRAY_SUBARRAY,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if darray and subarray constructors are defined in the MPI implementation)
Packit Service c5cf8c
  rm -f mpitest.c
Packit Service c5cf8c
  cat > mpitest.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
     main(int argc, char **argv)
Packit Service c5cf8c
     {
Packit Service c5cf8c
         int i=MPI_DISTRIBUTE_CYCLIC;
Packit Service c5cf8c
         MPI_Datatype t;
Packit Service c5cf8c
         MPI_Init(&argc,&argv);
Packit Service c5cf8c
         MPI_Type_create_darray(i, i, i, &i, &i, &i, &i, i, MPI_INT, &t);
Packit Service c5cf8c
         MPI_Type_create_subarray(i, &i, &i, &i, i, MPI_INT, &t);
Packit Service c5cf8c
         MPI_Finalize(); 
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
      AC_MSG_RESULT(yes)
Packit Service c5cf8c
      AC_DEFINE(HAVE_MPI_DARRAY_SUBARRAY,,[Define if MPI Darray available])
Packit Service c5cf8c
      HAVE_MPI_DARRAY_SUBARRAY="#define HAVE_MPI_DARRAY_SUBARRAY"
Packit Service c5cf8c
      MPI_FARRAY1="!"
Packit Service c5cf8c
      MPI_FARRAY2="!"
Packit Service c5cf8c
      MPI_FARRAY3="!"
Packit Service c5cf8c
      MPI_FARRAY4="!"
Packit Service c5cf8c
      MPI_FARRAY5="!"
Packit Service c5cf8c
      MPI_FARRAY6="!"
Packit Service c5cf8c
      MPI_FARRAY7="!"
Packit Service c5cf8c
  else
Packit Service c5cf8c
      AC_MSG_RESULT(no)
Packit Service c5cf8c
      BUILD_MPI_ARRAY=1
Packit Service c5cf8c
      MPI_FARRAY1="      INTEGER MPI_ORDER_C, MPI_ORDER_FORTRAN"
Packit Service c5cf8c
      MPI_FARRAY2="      PARAMETER (MPI_ORDER_C=56, MPI_ORDER_FORTRAN=57)"
Packit Service c5cf8c
      MPI_FARRAY3="      INTEGER MPI_DISTRIBUTE_BLOCK, MPI_DISTRIBUTE_CYCLIC"
Packit Service c5cf8c
      MPI_FARRAY4="      INTEGER MPI_DISTRIBUTE_NONE, MPI_DISTRIBUTE_DFLT_DARG"
Packit Service c5cf8c
      MPI_FARRAY5="      PARAMETER (MPI_DISTRIBUTE_BLOCK=121, MPI_DISTRIBUTE_CYCLIC=122)"
Packit Service c5cf8c
      MPI_FARRAY6="      PARAMETER (MPI_DISTRIBUTE_NONE=123)"
Packit Service c5cf8c
      MPI_FARRAY7="      PARAMETER (MPI_DISTRIBUTE_DFLT_DARG=-49767)"
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_CHECK_MPI_SGI_INFO_NULL,[
Packit Service c5cf8c
  AC_MSG_CHECKING([if MPI_INFO_NULL is defined in mpi.h])
Packit Service c5cf8c
  rm -f mpitest.c
Packit Service c5cf8c
  cat > mpitest.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
     main(int argc, char **argv)
Packit Service c5cf8c
     {
Packit Service c5cf8c
	int i;
Packit Service c5cf8c
	i = MPI_INFO_NULL;
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
      AC_MSG_RESULT(yes)
Packit Service c5cf8c
      cp adio/sgi/mpi3.1/*.h include
Packit Service c5cf8c
  else
Packit Service c5cf8c
      AC_MSG_RESULT(no)
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_CHECK_MPIOF_H,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if mpiof.h is included in mpif.h)
Packit Service c5cf8c
  rm -f mpitest.f
Packit Service c5cf8c
  cat > mpitest.f <
Packit Service c5cf8c
      program main
Packit Service c5cf8c
      implicit none
Packit Service c5cf8c
      include 'mpif.h'
Packit Service c5cf8c
      integer i
Packit Service c5cf8c
      i = MPI_MODE_RDWR
Packit Service c5cf8c
      stop
Packit Service c5cf8c
      end
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $F77 $FFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.f $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
      AC_MSG_RESULT(yes)
Packit Service c5cf8c
      MPIOF_H_INCLUDED=1
Packit Service c5cf8c
  else
Packit Service c5cf8c
      AC_MSG_RESULT(no)
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.f
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl check if pread64 is defined in IRIX. needed on IRIX 6.5
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_HAVE_PREAD64,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if pread64 is defined)
Packit Service c5cf8c
  rm -f conftest.c
Packit Service c5cf8c
  cat > conftest.c <
Packit Service c5cf8c
#include <unistd.h>
Packit Service c5cf8c
     main()
Packit Service c5cf8c
     {
Packit Service c5cf8c
         int fd=0, buf=0, i=0;
Packit Service c5cf8c
         off64_t off=0;
Packit Service c5cf8c
         pread64(fd, &buf, i, off);
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -o conftest$EXEEXT conftest.c > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
      AC_MSG_RESULT(yes)
Packit Service c5cf8c
      AC_DEFINE(HAVE_PREAD64,,[Define if pread64 available])
Packit Service c5cf8c
  else
Packit Service c5cf8c
      AC_MSG_RESULT(no)
Packit Service c5cf8c
  fi
Packit Service c5cf8c
rm -f conftest$EXEEXT conftest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_TEST_MPI_SGI_type_is_contig,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if MPI_SGI_type_is_contig is defined)
Packit Service c5cf8c
  rm -f mpitest.c
Packit Service c5cf8c
  cat > mpitest.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
     main(int argc, char **argv)
Packit Service c5cf8c
     {
Packit Service c5cf8c
         MPI_Datatype type;
Packit Service c5cf8c
         int i;
Packit Service c5cf8c
Packit Service c5cf8c
         MPI_Init(&argc,&argv);
Packit Service c5cf8c
         i = MPI_SGI_type_is_contig(type);
Packit Service c5cf8c
         MPI_Finalize(); 
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
     AC_MSG_RESULT(yes)
Packit Service c5cf8c
  else
Packit Service c5cf8c
     AC_MSG_RESULT(no)
Packit Service c5cf8c
     AC_DEFINE(NO_MPI_SGI_type_is_contig,,[Define if no MPI type is contig])
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_TEST_MPI_COMBINERS,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if MPI-2 combiners are defined in mpi.h)
Packit Service c5cf8c
  rm -f mpitest.c
Packit Service c5cf8c
  cat > mpitest.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
     main(int argc, char **argv)
Packit Service c5cf8c
     {
Packit Service c5cf8c
         int i;
Packit Service c5cf8c
Packit Service c5cf8c
         MPI_Init(&argc,&argv);
Packit Service c5cf8c
         i = MPI_COMBINER_STRUCT;
Packit Service c5cf8c
         MPI_Finalize(); 
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
     AC_MSG_RESULT(yes)
Packit Service c5cf8c
     AC_DEFINE(HAVE_MPI_COMBINERS,,[Define if MPI combiners available])
Packit Service c5cf8c
  else
Packit Service c5cf8c
     AC_MSG_RESULT(no)
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl PAC_MPI_OFFSET_KIND()
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl tries to determine the Fortran 90 kind parameter for 8-byte integers
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_MPI_OFFSET_KIND,
Packit Service c5cf8c
[
Packit Service c5cf8c
# This is needed for Mac OSX 10.5
Packit Service c5cf8c
rm -rf conftest.dSYM
Packit Service c5cf8c
rm -f conftest*
Packit Service c5cf8c
# Determine the extension for Fortran 90 files (not all compilers accept
Packit Service c5cf8c
# .f and not all accept .f90)
Packit Service c5cf8c
if test -z "$ac_f90ext" ; then
Packit Service c5cf8c
    if test -z "$FC" ; then
Packit Service c5cf8c
       # This list should correspond to the list in aclocal_fc.m4
Packit Service c5cf8c
       AC_CHECK_PROGS(FC,ifort pgf90 pathf90 pathf95 xlf90 xlf95 f90 epcf90 \
Packit Service c5cf8c
       f95 fort lf95 gfortran g95 ifc efc)
Packit Service c5cf8c
    fi
Packit Service c5cf8c
    AC_MSG_CHECKING([for extension for Fortran 90 programs])
Packit Service c5cf8c
    ac_f90ext="f90"
Packit Service c5cf8c
    ac_f90compile='${FC-f90} -c $FCFLAGS conftest.$ac_f90ext 1>&AC_FD_CC'
Packit Service c5cf8c
    cat > conftest.$ac_f90ext <
Packit Service c5cf8c
      program conftest
Packit Service c5cf8c
      end
Packit Service c5cf8c
EOF
Packit Service c5cf8c
    if AC_TRY_EVAL(ac_f90compile) ; then
Packit Service c5cf8c
        AC_MSG_RESULT([f90])
Packit Service c5cf8c
    else
Packit Service c5cf8c
	# This is needed for Mac OSX 10.5
Packit Service c5cf8c
	rm -rf conftest.dSYM
Packit Service c5cf8c
        rm -f conftest*
Packit Service c5cf8c
        ac_f90ext="f"
Packit Service c5cf8c
        cat > conftest.$ac_f90ext <
Packit Service c5cf8c
      program conftest
Packit Service c5cf8c
      end
Packit Service c5cf8c
EOF
Packit Service c5cf8c
        if AC_TRY_EVAL(ac_f90compile) ; then
Packit Service c5cf8c
            AC_MSG_RESULT([f])
Packit Service c5cf8c
        else
Packit Service c5cf8c
            AC_MSG_RESULT([unknown!])
Packit Service c5cf8c
        fi
Packit Service c5cf8c
    fi
Packit Service c5cf8c
fi
Packit Service c5cf8c
AC_MSG_CHECKING([for Fortran 90 KIND parameter for 8-byte integers])
Packit Service c5cf8c
cat <<EOF > conftest.$ac_f90ext
Packit Service c5cf8c
      program main
Packit Service c5cf8c
      integer i
Packit Service c5cf8c
      i = selected_int_kind(16)
Packit Service c5cf8c
      open(8, file="conftest.out", form="formatted")
Packit Service c5cf8c
      write (8,*) i
Packit Service c5cf8c
      close(8)
Packit Service c5cf8c
      stop
Packit Service c5cf8c
      end
Packit Service c5cf8c
EOF
Packit Service c5cf8c
if test -z "$FC" ; then
Packit Service c5cf8c
   FC=f90
Packit Service c5cf8c
fi
Packit Service c5cf8c
KINDVAL=""
Packit Service c5cf8c
if $FC -o conftest$EXEEXT conftest.$ac_f90ext $FCFLAGS >/dev/null 2>&1 ; then
Packit Service c5cf8c
    ./conftest$EXEEXT >/dev/null 2>&1
Packit Service c5cf8c
    if test -s conftest.out ; then 
Packit Service c5cf8c
        KINDVAL=`cat conftest.out`
Packit Service c5cf8c
    fi
Packit Service c5cf8c
fi
Packit Service c5cf8c
# This is needed for Mac OSX 10.5
Packit Service c5cf8c
rm -rf conftest.dSYM
Packit Service c5cf8c
rm -f conftest*
Packit Service c5cf8c
if test -n "$KINDVAL" -a "$KINDVAL" != "-1" ; then
Packit Service c5cf8c
   AC_MSG_RESULT($KINDVAL)
Packit Service c5cf8c
   MPI_OFFSET_KIND1="      INTEGER MPI_OFFSET_KIND"
Packit Service c5cf8c
   MPI_OFFSET_KIND2="      PARAMETER (MPI_OFFSET_KIND=$KINDVAL)"
Packit Service c5cf8c
else
Packit Service c5cf8c
    AC_MSG_RESULT(unavailable)
Packit Service c5cf8c
fi
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_TEST_MPI_HAVE_OFFSET_KIND,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if MPI_OFFSET_KIND is defined in mpif.h)
Packit Service c5cf8c
  rm -f mpitest.f
Packit Service c5cf8c
  cat > mpitest.f <
Packit Service c5cf8c
      program main
Packit Service c5cf8c
      implicit none
Packit Service c5cf8c
      include 'mpif.h'
Packit Service c5cf8c
      integer i
Packit Service c5cf8c
      i = MPI_OFFSET_KIND
Packit Service c5cf8c
      stop
Packit Service c5cf8c
      end
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $F77 $FFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.f $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
     AC_MSG_RESULT(yes)
Packit Service c5cf8c
     MPI_OFFSET_KIND1="!"
Packit Service c5cf8c
     MPI_OFFSET_KIND2="!"
Packit Service c5cf8c
  else
Packit Service c5cf8c
     AC_MSG_RESULT(no)
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.f
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl PAC_GET_XFS_MEMALIGN
Packit Service c5cf8c
dnl 
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_GET_XFS_MEMALIGN,
Packit Service c5cf8c
[AC_MSG_CHECKING([for memory alignment needed for direct I/O])
Packit Service c5cf8c
rm -f memalignval
Packit Service c5cf8c
rm -f /tmp/romio_tmp.bin
Packit Service c5cf8c
AC_TEST_PROGRAM([#include <stdio.h>
Packit Service c5cf8c
#include <unistd.h>
Packit Service c5cf8c
#include <fcntl.h>
Packit Service c5cf8c
#include <stdio.h>
Packit Service c5cf8c
main() { 
Packit Service c5cf8c
  struct dioattr st;
Packit Service c5cf8c
  int fd = open("/tmp/romio_tmp.bin", O_RDWR | O_CREAT, 0644);
Packit Service c5cf8c
  FILE *f=fopen("memalignval","w");
Packit Service c5cf8c
  if (fd == -1) exit(1);
Packit Service c5cf8c
  if (!f) exit(1);
Packit Service c5cf8c
  fcntl(fd, F_DIOINFO, &st);
Packit Service c5cf8c
  fprintf( f, "%u\n", st.d_mem);
Packit Service c5cf8c
  exit(0);
Packit Service c5cf8c
}],Pac_CV_NAME=`cat memalignval`,Pac_CV_NAME="")
Packit Service c5cf8c
rm -f memalignval
Packit Service c5cf8c
rm -f /tmp/romio_tmp.bin
Packit Service c5cf8c
if test -n "$Pac_CV_NAME" -a "$Pac_CV_NAME" != 0 ; then
Packit Service c5cf8c
    AC_MSG_RESULT($Pac_CV_NAME)
Packit Service c5cf8c
    CFLAGS="$CFLAGS -DXFS_MEMALIGN=$Pac_CV_NAME"
Packit Service c5cf8c
else
Packit Service c5cf8c
    AC_MSG_RESULT(unavailable, assuming 128)
Packit Service c5cf8c
    CFLAGS="$CFLAGS -DXFS_MEMALIGN=128"
Packit Service c5cf8c
fi
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
Packit Service c5cf8c
define(PAC_HAVE_MOUNT_NFS,[
Packit Service c5cf8c
  AC_MSG_CHECKING([if MOUNT_NFS is defined in the include files])
Packit Service c5cf8c
  rm -f conftest.c
Packit Service c5cf8c
  cat > conftest.c <
Packit Service c5cf8c
#include <sys/param.h>
Packit Service c5cf8c
#include <sys/mount.h>
Packit Service c5cf8c
     main()
Packit Service c5cf8c
     {
Packit Service c5cf8c
         int i=MOUNT_NFS;
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -o conftest$EXEEXT conftest.c > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
     AC_MSG_RESULT(yes)
Packit Service c5cf8c
     ROMIO_HAVE_MOUNT_NFS=1
Packit Service c5cf8c
     AC_DEFINE(HAVE_MOUNT_NFS,,[Define if MOUNT_NFS defined])
Packit Service c5cf8c
  else
Packit Service c5cf8c
     ROMIO_HAVE_MOUNT_NFS=0
Packit Service c5cf8c
     AC_MSG_RESULT(no)
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT conftest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl PAC_MPI_OFFSET_KIND_4BYTE()
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl tries to determine the Fortran 90 kind parameter for 4-byte integers
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_MPI_OFFSET_KIND_4BYTE,
Packit Service c5cf8c
[AC_MSG_CHECKING([for Fortran 90 KIND parameter for 4-byte integers])
Packit Service c5cf8c
rm -f kind.f kind.$OBJEXT kind$EXEEXT
Packit Service c5cf8c
cat <<EOF > kind.f
Packit Service c5cf8c
      program main
Packit Service c5cf8c
      integer i
Packit Service c5cf8c
      i = selected_int_kind(8)
Packit Service c5cf8c
      open(8, file="k.out", form="formatted")
Packit Service c5cf8c
      write (8,*) i
Packit Service c5cf8c
      close(8)
Packit Service c5cf8c
      stop
Packit Service c5cf8c
      end
Packit Service c5cf8c
EOF
Packit Service c5cf8c
if test -z "$FC" ; then
Packit Service c5cf8c
   FC=f90
Packit Service c5cf8c
fi
Packit Service c5cf8c
KINDVAL=""
Packit Service c5cf8c
if $FC -o kind$EXEEXT kind.f $FCFLAGS >/dev/null 2>&1 ; then
Packit Service c5cf8c
    ./kind >/dev/null 2>&1
Packit Service c5cf8c
    if test -s k.out ; then 
Packit Service c5cf8c
        KINDVAL=`cat k.out`
Packit Service c5cf8c
    fi
Packit Service c5cf8c
fi
Packit Service c5cf8c
rm -f kind$EXEEXT k.out kind.f kind.$OBJEXT
Packit Service c5cf8c
if test -n "$KINDVAL" -a "$KINDVAL" != "-1" ; then
Packit Service c5cf8c
   AC_MSG_RESULT($KINDVAL)
Packit Service c5cf8c
   MPI_OFFSET_KIND1="      INTEGER MPI_OFFSET_KIND"
Packit Service c5cf8c
   MPI_OFFSET_KIND2="      PARAMETER (MPI_OFFSET_KIND=$KINDVAL)"
Packit Service c5cf8c
else
Packit Service c5cf8c
    AC_MSG_RESULT(unavailable)
Packit Service c5cf8c
fi
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_FUNC_STRERROR,[
Packit Service c5cf8c
  AC_MSG_CHECKING([for strerror()])
Packit Service c5cf8c
  rm -f conftest.c
Packit Service c5cf8c
  cat > conftest.c <
Packit Service c5cf8c
#include <string.h>
Packit Service c5cf8c
     main()
Packit Service c5cf8c
     {
Packit Service c5cf8c
        char *s = strerror(5);
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -o conftest$EXEXT conftest.c >> config.log 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
     AC_MSG_RESULT(yes)
Packit Service c5cf8c
     AC_DEFINE(HAVE_STRERROR,,[Define if strerror available])
Packit Service c5cf8c
  else
Packit Service c5cf8c
     AC_MSG_RESULT(no)
Packit Service c5cf8c
     AC_MSG_CHECKING([for sys_errlist])
Packit Service c5cf8c
     rm -f conftest.c
Packit Service c5cf8c
changequote(,)
Packit Service c5cf8c
     cat > conftest.c <
Packit Service c5cf8c
#include <stdio.h>
Packit Service c5cf8c
        main()
Packit Service c5cf8c
        {
Packit Service c5cf8c
           extern char *sys_errlist[];
Packit Service c5cf8c
	   printf("%s\n", sys_errlist[34]);
Packit Service c5cf8c
        }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
changequote([,])
Packit Service c5cf8c
     rm -f conftest$EXEEXT
Packit Service c5cf8c
     $CC $USER_CFLAGS -o conftest$EXEEXT conftest.c > config.log 2>&1
Packit Service c5cf8c
     if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
        AC_MSG_RESULT(yes)
Packit Service c5cf8c
        AC_DEFINE(HAVE_SYSERRLIST,,[Define if syserrlist available])
Packit Service c5cf8c
     else
Packit Service c5cf8c
        AC_MSG_RESULT(no)
Packit Service c5cf8c
     fi
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT conftest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
dnl
Packit Service c5cf8c
define(PAC_TEST_MPIR_STATUS_SET_BYTES,[
Packit Service c5cf8c
  AC_MSG_CHECKING(if MPIR_Status_set_bytes is defined)
Packit Service c5cf8c
  rm -f mpitest.c
Packit Service c5cf8c
  cat > mpitest.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
     main(int argc, char **argv)
Packit Service c5cf8c
     {
Packit Service c5cf8c
     	 MPI_Status status;
Packit Service c5cf8c
         MPI_Datatype type;
Packit Service c5cf8c
	 int err;
Packit Service c5cf8c
Packit Service c5cf8c
         MPI_Init(&argc,&argv);
Packit Service c5cf8c
         MPIR_Status_set_bytes(status,type,err);
Packit Service c5cf8c
         MPI_Finalize(); 
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
     AC_MSG_RESULT(yes)
Packit Service c5cf8c
     AC_DEFINE(HAVE_STATUS_SET_BYTES,,[Define if status set bytes available])
Packit Service c5cf8c
  else
Packit Service c5cf8c
     AC_MSG_RESULT(no)
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
define(PAC_TEST_MPI_GREQUEST,[
Packit Service c5cf8c
  AC_MSG_CHECKING(support for generalized requests)
Packit Service c5cf8c
  rm -f mpitest.c
Packit Service c5cf8c
  cat > mpitest.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
#include "stdio.h"
Packit Service c5cf8c
    main(int argc, char **argv)
Packit Service c5cf8c
    {
Packit Service c5cf8c
       MPI_Request request;
Packit Service c5cf8c
       MPI_Init(&argc, &argv);
Packit Service c5cf8c
       MPI_Grequest_start(NULL, NULL, NULL, NULL, &request);
Packit Service c5cf8c
       MPI_Finalize();
Packit Service c5cf8c
     }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
     AC_MSG_RESULT(yes)
Packit Service c5cf8c
     AC_DEFINE(HAVE_MPI_GREQUEST,1,[Define if generalized requests avaliable])
Packit Service c5cf8c
     DEFINE_HAVE_MPI_GREQUEST="#define HAVE_MPI_GREQUEST 1"
Packit Service c5cf8c
  else
Packit Service c5cf8c
     AC_MSG_RESULT(no)
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
Packit Service c5cf8c
define(PAC_TEST_MPI_GREQUEST_EXTENSIONS,[
Packit Service c5cf8c
  AC_MSG_CHECKING(support for non-standard extended generalized requests)
Packit Service c5cf8c
  rm -f mpitest.c
Packit Service c5cf8c
  cat > mpitest.c <
Packit Service c5cf8c
#include "mpi.h"
Packit Service c5cf8c
#include "stdio.h"
Packit Service c5cf8c
    main(int argc, char **argv)
Packit Service c5cf8c
    {
Packit Service c5cf8c
       MPIX_Grequest_class classtest
Packit Service c5cf8c
    }
Packit Service c5cf8c
EOF
Packit Service c5cf8c
  rm -f conftest$EXEEXT
Packit Service c5cf8c
  $CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
Packit Service c5cf8c
  if test -x conftest$EXEEXT ; then
Packit Service c5cf8c
     AC_MSG_RESULT(yes)
Packit Service c5cf8c
     AC_DEFINE(HAVE_MPI_GREQUEST_EXTENTIONS,1,[Define if non-standard generalized requests extensions avaliable])
Packit Service c5cf8c
     DEFINE_HAVE_MPI_GREQUEST_EXTENSIONS="#define HAVE_MPI_GREQUEST_EXTENSIONS 1"
Packit Service c5cf8c
  else
Packit Service c5cf8c
     AC_MSG_RESULT(no)
Packit Service c5cf8c
  fi
Packit Service c5cf8c
  rm -f conftest$EXEEXT mpitest.c
Packit Service c5cf8c
])dnl
Packit Service c5cf8c
Packit Service c5cf8c
define(PAC_TEST_NEEDS_CONST,[
Packit Service c5cf8c
   AC_MSG_CHECKING([const declarations needed in MPI routines])
Packit Service c5cf8c
   AC_COMPILE_IFELSE([AC_LANG_SOURCE(
Packit Service c5cf8c
   [ #include <mpi.h>
Packit Service c5cf8c
     int MPI_File_delete(char *filename, MPI_Info info) { return (0); }
Packit Service c5cf8c
   ] )],
Packit Service c5cf8c
   [
Packit Service c5cf8c
    AC_MSG_RESULT(no)
Packit Service c5cf8c
   ],[
Packit Service c5cf8c
    AC_MSG_RESULT(yes)
Packit Service c5cf8c
    AC_DEFINE(HAVE_MPIIO_CONST, const, [Define if MPI-IO routines need a const qualifier])
Packit Service c5cf8c
   ])
Packit Service c5cf8c
   ])