--- trunk/OOPSE/ac-tools/configure.in 2003/10/27 16:20:59 822 +++ trunk/OOPSE/ac-tools/configure.in 2004/06/04 02:38:23 1233 @@ -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") @@ -29,13 +28,78 @@ dnl Checks for programs. # who am i AC_CANONICAL_HOST -dnl Checks for programs. +dnl Checks for C compiler AC_PROG_CC([icc xlc gcc cc]) -AC_PROG_CXX([icpc icc xlC CC g++ c++]) -AC_PROG_F90([ifc f90 xlf90 pgf90 epcf90 f95 xlf95 lf95 fort g95]) + +dnl Checks for C++ compiler +AC_PROG_CXX([icpc icc xlc++ 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="" +if test $ac_cv_prog_gxx = no; then + AC_MSG_CHECKING([checking whether ${CXX} accepts -ptused -no_prelink]) + echo 'void f(){}' > conftest.cc + if test -z "`${CXX} -ptused -no_prelink -c conftest.cc 2>&1`"; then + AC_MSG_RESULT(yes) + OOPSE_TEMPLATE_FLAGS="-ptused -no_prelink" + else + AC_MSG_RESULT(no) + fi + rm -f conftest* + AC_MSG_CHECKING([checking whether ${CXX} accepts -instances=static]) + echo 'void f(){}' > conftest.cc + if test -z "`${CXX} -instances=static -c conftest.cc 2>&1`"; then + AC_MSG_RESULT(yes) + OOPSE_TEMPLATE_FLAGS="-instances=static" + else + AC_MSG_RESULT(no) + fi + rm -f conftest* + AC_MSG_CHECKING([checking whether ${CXX} accepts -pto]) + echo 'void f(){}' > conftest.cc + if test -z "`${CXX} -pto -c conftest.cc 2>&1`"; then + AC_MSG_RESULT(yes) + OOPSE_TEMPLATE_FLAGS="-pto" + else + AC_MSG_RESULT(no) + fi + rm -f conftest* + AC_MSG_CHECKING([checking whether ${CXX} accepts -LANG:std]) + 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) + fi +fi +AC_SUBST(OOPSE_TEMPLATE_FLAGS) +AC_SUBST(EXTRA_CC_FLAG) + +dnl Fortran 90 compilation checks are next + +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 ACX_PROG_F90_PREPDEFFLAG +AC_LANG_PUSH(Fortran 90) +AC_LANG_PREPROC(Fortran 90) +AC_F90_LIBRARY_LDFLAGS +dnl How does Fortran mangle function names +AC_F90_WRAPPERS +AC_SUBST(F90_FUNC) +AC_SUBST(F90_FUNC_) +dnl Fortran 90 module suffix +AC_CHECK_MODSUFFIX +dnl Fortran 90 module path specifier +AC_CHECK_MODDIRFLAG +dnl check for strong optimization options + case $debug in 1) ;; @@ -59,84 +123,32 @@ AC_LANG_PUSH(Fortran 90) exit 1 fi -AC_LANG_PUSH(Fortran 90) -AC_LANG_PREPROC(Fortran 90) -AC_F90_LIBRARY_LDFLAGS -dnl how Fortran mangles function names -AC_F90_WRAPPERS -AC_SUBST(F90_FUNC) -AC_SUBST(F90_FUNC_) -AC_MSG_CHECKING([for mpi-directory]) -AC_ARG_WITH(mpi_dir, - [ --with-mpi_dir=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_ARG_WITH(mpi, + [AC_HELP_STRING([--with-mpi=], + [compile with MPI libraries in [default=no]])], + with_mpi=$withval, + with_mpi="no") -AC_MSG_CHECKING([for mpi-lib-directory]) -AC_ARG_WITH(mpi_libdir, - [ --with-mpi-libdir=dir give the path for MPI-libraries [MPI_DIR/lib]], - MPI_LIBDIR="$withval", MPI_LIBDIR="$MPI_DIR/lib") -AC_MSG_RESULT([$MPI_LIBDIR]) -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]], - MPI_INC="$withval", MPI_INC="$MPI_DIR/include") -AC_MSG_RESULT([$MPI_INC]) -AC_SUBST([MPI_INC]) - - -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 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) - ;; +case "x$with_mpi" in + xyes | "x") USE_MPI=yes;; + xno) USE_MPI=no ;; + *) MPI="$with_mpi"; USE_MPI=yes ;; esac -AC_SUBST(MPI_LIB) +if test "$USE_MPI" = "yes" -a -z "$with_mpi"; then + MPI="/usr/local" +fi +if test "$USE_MPI" = "yes"; then + echo "MPI = $MPI" + ACX_MPI +fi +AC_SUBST(USE_MPI) -ACX_MPI AM_PATH_SPRNG CHECK_MKL -AC_CHECK_MPI_F90MOD + AC_EXEEXT AC_OBJEXT OBJEXT=".$OBJEXT" @@ -162,7 +174,7 @@ SUBDIRS="libBASS libmdtools src forceFields samples ut MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f" dnl **** Final list of subdirs -SUBDIRS="libBASS libmdtools src forceFields samples utils utils/sysbuilder staticProps" +SUBDIRS="libBASS libmdtools src forceFields samples utils utils/sysbuilder staticProps third-party " dnl **** Define CFLAGS etc empty to prevent configure from setting them CFLAGS=${CFLAGS-""} @@ -175,8 +187,6 @@ case $debug in case $debug in 1) - CFLAGS="$DEBUG $CFLAGS" - CXXFLAGS="$DEBUG $CXXFLAGS" FFLAGS="$DEBUG $FFLAGS" F90FLAGS="$DEBUG $F90FLAGS" ;; @@ -200,11 +210,12 @@ AC_CONFIG_HEADER([libmdtools/config.h]) AC_SUBST(LDFLAGS) AC_SUBST(PREPFLAG) AC_SUBST(PREPDEFFLAG) -AC_CONFIG_HEADER([libmdtools/config.h]) +AC_CONFIG_HEADER([libBASS/config.h libmdtools/config.h]) AC_CONFIG_FILES([Makefile libBASS/Makefile libmdtools/Makefile src/Makefile utils/Makefile utils/sysbuilder/Makefile forceFields/Makefile samples/Makefile staticProps/Makefile + third-party/Makefile samples/alkane/Makefile samples/argon/Makefile samples/beadLipid/Makefile samples/lipid/Makefile samples/metals/Makefile samples/water/Makefile