diff --git a/orte/config/orte_check_alps.m4 b/orte/config/orte_check_alps.m4 index cf165d772b..6b0ea79a03 100644 --- a/orte/config/orte_check_alps.m4 +++ b/orte/config/orte_check_alps.m4 @@ -27,27 +27,59 @@ AC_DEFUN([ORTE_CHECK_ALPS],[ AC_REQUIRE([ORTE_CHECK_PMI]) AC_ARG_WITH([alps], - [AC_HELP_STRING([--with-alps], - [Build ALPS scheduler component (default: no)])]) - if test "$with_alps" = "yes" ; then - orte_check_alps_happy="yes" + [AC_HELP_STRING([--with-alps(=DIR|yes|no)], + [Build with ALPS scheduler component, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries (default: no)])]) + OMPI_CHECK_WITHDIR([alps], [$with_alps], [.]) + + AC_ARG_WITH([alps-libdir], + [AC_HELP_STRING([--with-alps-libdir=DIR], + [Location of alps libraries (alpslli, alpsutil) (default: /usr/lib/alps)])]) + + # save the CPPFLAGS so we can check for alps/apInfo.h without adding $with_alps/include to the global path + orte_check_alps_$1_save_CPPFLAGS="$CPPFLAGS" + + if test "$with_alps" != "no" ; then # Only need to do these tests once (this macro is invoked # from multiple different components' configure.m4 scripts + + orte_check_alps_happy="yes" + orte_check_alps_libdir="$with_alps_libdir" + + if -z "$orte_check_alps_libdir" ; then + if test "$with_alps" != "yes" ; then + AS_IF([test -d "$with_alps/lib64"], + [orte_check_alps_libdir="$with_alps/lib64"], + [orte_check_alps_libdir="$with_alps/lib64"]) + else + orte_check_alps_libdir="/usr/lib/alps" + fi + fi + + AS_IF([test "$with_alps" = "yes"], + [orte_check_alps_dir="/usr"], + [orte_check_alps_dir="$with_alps"]) + + $1_CPPFLAGS="-I$orte_check_alps_dir/include" + $1_LDFLAGS="-L$orte_check_alps_libdir" + if test -z "$orte_check_alps_pmi_happy"; then # if pmi support is requested, then ORTE_CHECK_PMI # will have added the -lpmi flag to LIBS. We then need # to add a couple of alps libs to support static # builds orte_check_alps_pmi_happy=no + if test "$orte_enable_pmi" = 1 ; then - AC_MSG_CHECKING([for /usr/lib/alps]) - AS_IF([test -d /usr/lib/alps], + AC_MSG_CHECKING([for alps libraries in "$orte_check_alps_libdir"]) + + # libalpslli and libalpsutil are needed by libpmi to compile statically + AS_IF([test -f "$orte_check_alps_libdir/libalpslli.a" -a -f "$orte_check_alps_libdir/libalpsutil.a"], [AC_MSG_RESULT([found]) orte_check_alps_pmi_happy=yes], [AC_MSG_RESULT([not found])]) AS_IF([test "$orte_check_alps_pmi_happy" = "yes" -a "$orte_without_full_support" = 0], - [WRAPPER_EXTRA_LDFLAGS="$WRAPPER_EXTRA_LDFLAGS -L/usr/lib/alps" + [WRAPPER_EXTRA_LDFLAGS="$WRAPPER_EXTRA_LDFLAGS -L$orte_check_alps_libdir" WRAPPER_EXTRA_LIBS="$WRAPPER_EXTRA_LIBS -lalpslli -lalpsutil"], [AC_MSG_WARN([PMI support for Alps requested but not found]) AC_MSG_ERROR([Cannot continue])]) diff --git a/orte/mca/ras/alps/configure.m4 b/orte/mca/ras/alps/configure.m4 index dfa9a97848..3c4348ab35 100644 --- a/orte/mca/ras/alps/configure.m4 +++ b/orte/mca/ras/alps/configure.m4 @@ -26,7 +26,21 @@ AC_DEFUN([MCA_orte_ras_alps_CONFIG],[ AC_CONFIG_FILES([orte/mca/ras/alps/Makefile]) - ORTE_CHECK_ALPS([ras_alps], [ras_alps_happy="yes"], [ras_alps_happy="no"]) + ORTE_CHECK_ALPS([ras_alps], [ras_alps_happy="yes"], [ras_alps_happy="no"]) + + # check for alps/apInfo.h + # save current CPPFLAGS + MCA_orte_ras_save_CPPFLAGS="$CPPFLAGS" + + # add flags obtained from ORTE_CHECK_ALPS + CPPFLAGS="$CPPFLAGS $ras_alps_CPPFLAGS" + + AC_CHECK_HEADERS([alps/apInfo.h], [], [ras_alps_happy="no"]) + + # restore CPPFLAGS + CPPFLAGS="$MCA_orte_ras_save_CPPFLAGS" + + AC_SUBST([ras_alps_CPPFLAGS]) AS_IF([test "$ras_alps_happy" = "yes" -a "$orte_without_full_support" = 0], [$1], [$2]) ])dnl