Blame confdb/aclocal_romio.m4

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