--- trunk/OOPSE/ac-tools/configure.in 2004/01/05 21:00:05 894 +++ trunk/OOPSE/ac-tools/configure.in 2004/01/14 22:41:34 944 @@ -6,7 +6,6 @@ builtin(include, ac-tools/aclocal.m4) builtin(include, ac-tools/fortran90.m4) builtin(include, ac-tools/aclocal.m4) - AC_CONFIG_SRCDIR([src/oopse.cpp]) AC_PREFIX_DEFAULT("/usr/local") @@ -34,6 +33,7 @@ dnl If we are not running g++ then we might need some dnl Checks for C++ compiler AC_PROG_CXX([icpc icc xlC CC g++ c++]) + dnl If we are not running g++ then we might need some other flags dnl to get the templates compiled correctly OOPSE_TEMPLATE_FLAGS="" @@ -69,6 +69,8 @@ if test $ac_cv_prog_gxx = no; then echo 'void f(){}' > conftest.cc if test -z "`${CXX} -LANG:std -c conftest.cc 2>&1`"; then AC_MSG_RESULT(yes) + + EXTRA_CC_FLAG=${EXTRA_CC_FLAG}" -LANG:std" else AC_MSG_RESULT(no) @@ -79,7 +81,7 @@ AC_PROG_F90([ifc f90 xlf90 pgf90 epcf90 f95 xlf95 lf95 dnl Fortran 90 compilation checks are next -AC_PROG_F90([ifc f90 xlf90 pgf90 epcf90 f95 xlf95 lf95 fort g95]) +AC_PROG_F90([ifort ifc f90 xlf90 pgf90 epcf90 f95 xlf95 lf95 fort g95]) dnl Check the flag for Fortran90 preprocessing ACX_PROG_F90_PREPFLAG dnl Check to see if a flag is required for preprocessing defines @@ -122,11 +124,11 @@ AC_ARG_WITH(mpi_dir, fi AC_MSG_CHECKING([for mpi-directory]) -AC_ARG_WITH(mpi_dir, - [ --with-mpi_dir=MPIDIR give the path for MPI [/usr/local]], +AC_ARG_WITH(mpi, + [ --with-mpi=MPIDIR give the path for MPI [/usr/local]], MPI_DIR="$withval", MPI_DIR="/usr/local") AC_MSG_RESULT([$MPI_DIR]) -AC_SUBST([mpi_dir]) +AC_SUBST([mpi]) AC_MSG_CHECKING([for mpi-lib-directory]) AC_ARG_WITH(mpi_libdir, @@ -136,68 +138,86 @@ AC_ARG_WITH(mpi_inc, AC_SUBST([MPI_LIBDIR]) AC_MSG_CHECKING([for mpi-inc-directory]) -AC_ARG_WITH(mpi_inc, - [ --with-mpi_inc=dir give the path for MPI-include-files [MPI_DIR/include]], +AC_ARG_WITH(mpi-inc, + [ --with-mpi-inc=dir give the path for MPI-include-files [MPI_DIR/include]], MPI_INC="$withval", MPI_INC="$MPI_DIR/include") AC_MSG_RESULT([$MPI_INC]) AC_SUBST([MPI_INC]) +AC_MSG_CHECKING([for mpi.h]) +HAVE_MPIDOTH_C="no" +echo '#include ' > conftest.cc +if test -z "`${CXX} -I${MPI_INC} -c conftest.cc 2>&1`"; then + AC_MSG_RESULT(yes) + HAVE_MPIDOTH_C="yes" +else + AC_MSG_RESULT(no! Check MPI include paths) +fi +rm -f conftest* -AC_MSG_CHECKING([for MPI library]) -MPI_LIB="" -case "$host" in - *-ibm-aix*) dnl IBM/SP2 machines - dnl checking whether to use signal-based MPI +AC_MSG_CHECKING([whether mpif.h is usable]) +HAVE_MPIFDOTH_F90="no" +rm -f conftest* +cat >conftest.f90 < conftest.out 2>&1 ; then + AC_MSG_RESULT(yes) + MPI_F90INC="$MPI_INC" + HAVE_MPIFDOTH_F90="yes" +else + if test -s conftest.out ; then cat conftest.out >> config.log ; fi + AC_MSG_RESULT([no! Check MPI include paths]) +fi +rm -f conftest* +AC_SUBST([MPI_F90INC]) - AC_MSG_CHECKING([whether to use signal-based MPI library]) - AC_MSG_RESULT([$PACX_SIGNAL]) - if test "x$PACX_SIGNAL" = "xyes" ; then - if test -f "$MPI_LIBDIR/libmpi.a" ; then - MPI_LIB="-lmpi" - elif test -f "$MPI_LIBDIR/libmpi.so" ; then - MPI_LIB="-lmpi" - elif test -f "$MPI_LIBDIR/libmpich.a" ; then - MPI_LIB="-lmpich" - else - AC_MSG_ERROR([neither libmpi nor libmpich found; check path for MPI package first...]) - fi - else - if test -f "$MPI_LIBDIR/libmpi_r.a" ; then - MPI_LIB="-lmpi_r" - else - AC_MSG_ERROR([libmpi_r not found; check path for MPI package...]) - fi - fi - AC_MSG_RESULT(found $MPI_LIB) - ;; - *) dnl All other machines - if test -f "$MPI_LIBDIR/libmpi.a" ; then - MPI_LIB="-lmpi" - elif test -f "$MPI_LIBDIR/libmpi.so" ; then - MPI_LIB="-lmpi" - elif test -f "$MPI_LIBDIR/libmpich.a" ; then - MPI_LIB="-lmpich" - else - AC_MSG_ERROR([neither libmpi nor libmpich found; check path for MPI package first...]) - fi - AC_MSG_RESULT(found $MPI_LIB) - ;; -esac -AC_SUBST(MPI_LIB) +AC_LANG_PUSH(C) +ac_save_LDFLAGS=$LDFLAGS +LDFLAGS="${LDFLAGS} -L${MPI_LIBDIR} " -ACX_MPI +if test x = x"$MPI_LIB"; then + AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi"]) +fi +if test x = x"$MPI_LIB"; then + AC_CHECK_LIB(mpich, MPI_Init, [MPI_LIB="-lmpich"]) +fi +$as_unset ac_cv_lib_mpi_MPI_Init +if test x = x"$MPI_LIB"; then + AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam"], [], + "-llam") +fi -AC_CHECK_MPI_F90MOD +$as_unset ac_cv_lib_mpi_MPI_Init +if test x = x"$MPI_LIB"; then + AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam -lpthread"], + [AC_MSG_ERROR([Didn't find liblam, libmpi, or libmpich; check path for MPI package first...])], + [-llam -lpthread]) +fi -if test "$HAVE_MPI_MOD" = 1; then - AC_DEFINE(MPI_MOD, 1, [have mpi module]) +AC_MSG_RESULT(found $MPI_LIB) +AC_SUBST(MPI_LIB) + +AC_MSG_CHECKING([for MPI Fortran library]) +MPI_F90LIB="" +if test -f "$MPI_LIBDIR/libfmpich.a" ; then + MPI_F90LIB="-lfmpich" +elif test -f "$MPI_LIBDIR/liblamf77mpi.a" ; then + MPI_F90LIB="-llamf77mpi" else - AC_LANG([Fortran 90]) - AC_CHECK_HEADERS(mpif.h) - AC_LANG_RESTORE() - AC_DEFINE(MPI_H, 1, [have mpi Fortran header file]) + # nothing special found, we'll assume that the C library is all we need + MPI_F90LIB=" " fi +AC_MSG_RESULT([found $MPI_F90LIB]) +AC_SUBST(MPI_F90LIB) +dnl CHECK_MPI + +dnl I don't think this works right now: +dnl ACX_MPI + AM_PATH_SPRNG CHECK_MKL