2008-10-28 17:22:29 +00:00
|
|
|
# -*- shell-script -*-
|
|
|
|
#
|
|
|
|
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
|
|
# University Research and Technology
|
|
|
|
# Corporation. All rights reserved.
|
|
|
|
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
|
|
# of Tennessee Research Foundation. All rights
|
|
|
|
# reserved.
|
|
|
|
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
|
|
# University of Stuttgart. All rights reserved.
|
|
|
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
|
|
|
# All rights reserved.
|
2009-10-24 01:04:35 +00:00
|
|
|
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
2008-10-28 17:22:29 +00:00
|
|
|
# $COPYRIGHT$
|
|
|
|
#
|
|
|
|
# Additional copyrights may follow
|
|
|
|
#
|
|
|
|
# $HEADER$
|
|
|
|
#
|
|
|
|
|
2009-10-24 01:04:35 +00:00
|
|
|
# ORTE_CHECK_SLURM(prefix, [action-if-found], [action-if-not-found])
|
2008-10-28 17:22:29 +00:00
|
|
|
# --------------------------------------------------------
|
2009-10-24 01:04:35 +00:00
|
|
|
AC_DEFUN([ORTE_CHECK_SLURM],[
|
2008-10-28 17:22:29 +00:00
|
|
|
AC_ARG_WITH([slurm],
|
|
|
|
[AC_HELP_STRING([--with-slurm],
|
|
|
|
[Build SLURM scheduler component (default: yes)])])
|
2011-06-20 21:04:46 +00:00
|
|
|
AC_ARG_WITH([slurm-pmi],
|
|
|
|
[AC_HELP_STRING([--with-slurm-pmi],
|
|
|
|
[Build SLURM PMI support (default: no)])])
|
2011-10-10 21:39:10 +00:00
|
|
|
AC_ARG_WITH([slurm-pmi-libdir],
|
|
|
|
[AC_HELP_STRING([--with-slurm-pmi-libdir=DIR],
|
|
|
|
[Search for SLURM PMI libraries in DIR ])])
|
|
|
|
|
|
|
|
# Defaults
|
|
|
|
orte_check_slurm_dir=
|
|
|
|
orte_check_slurm_libdir=
|
|
|
|
orte_check_slurm_dir_msg="compiler default"
|
|
|
|
orte_check_slurm_libdir_msg="linker default"
|
|
|
|
# Save directory names if supplied
|
|
|
|
AS_IF([test ! -z "$with_slurm" -a "$with_slurm" != "yes"],
|
|
|
|
[orte_check_slurm_dir="$with_slurm"
|
|
|
|
orte_check_slurm_dir_msg="$orte_check_slurm_dir (from --with-slurm)"])
|
|
|
|
AS_IF([test ! -z "$with_slurm_pmi_libdir" -a "$with_slurm_pmi_libdir" != "yes"],
|
|
|
|
[orte_check_slurm_libdir="$with_slurm_pmi_libdir"
|
|
|
|
orte_check_slurm_libdir_msg="$orte_check_slurm_pmi_libdir (from --with-slurm-pmi-libdir)"])
|
2008-10-28 17:22:29 +00:00
|
|
|
|
|
|
|
if test "$with_slurm" = "no" ; then
|
2009-10-24 01:04:35 +00:00
|
|
|
orte_check_slurm_happy="no"
|
2008-10-28 17:22:29 +00:00
|
|
|
elif test "$with_slurm" = "" ; then
|
|
|
|
# unless user asked, only build slurm component on linux, AIX,
|
|
|
|
# and OS X systems (these are the platforms that SLURM
|
|
|
|
# supports)
|
|
|
|
case $host in
|
|
|
|
*-linux*|*-aix*|*-apple-darwin*)
|
2009-10-24 01:04:35 +00:00
|
|
|
orte_check_slurm_happy="yes"
|
2008-10-28 17:22:29 +00:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_CHECKING([for SLURM srun in PATH])
|
2010-11-12 23:22:11 +00:00
|
|
|
OPAL_WHICH([srun], [ORTE_CHECK_SLURM_SRUN])
|
2009-10-24 01:04:35 +00:00
|
|
|
if test "$ORTE_CHECK_SLURM_SRUN" = ""; then
|
|
|
|
orte_check_slurm_happy="no"
|
2008-10-28 17:22:29 +00:00
|
|
|
else
|
2009-10-24 01:04:35 +00:00
|
|
|
orte_check_slurm_happy="yes"
|
2008-10-28 17:22:29 +00:00
|
|
|
fi
|
2009-10-24 01:04:35 +00:00
|
|
|
AC_MSG_RESULT([$orte_check_slurm_happy])
|
2008-10-28 17:22:29 +00:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
else
|
2009-10-24 01:04:35 +00:00
|
|
|
orte_check_slurm_happy="yes"
|
2008-10-28 17:22:29 +00:00
|
|
|
fi
|
|
|
|
|
2009-10-24 01:04:35 +00:00
|
|
|
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
2008-10-28 17:22:29 +00:00
|
|
|
[AC_CHECK_FUNC([fork],
|
2009-10-24 01:04:35 +00:00
|
|
|
[orte_check_slurm_happy="yes"],
|
|
|
|
[orte_check_slurm_happy="no"])])
|
2008-10-28 17:22:29 +00:00
|
|
|
|
2009-10-24 01:04:35 +00:00
|
|
|
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
2008-10-28 17:22:29 +00:00
|
|
|
[AC_CHECK_FUNC([execve],
|
2009-10-24 01:04:35 +00:00
|
|
|
[orte_check_slurm_happy="yes"],
|
|
|
|
[orte_check_slurm_happy="no"])])
|
2008-10-28 17:22:29 +00:00
|
|
|
|
2009-10-24 01:04:35 +00:00
|
|
|
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
2008-10-28 17:22:29 +00:00
|
|
|
[AC_CHECK_FUNC([setpgid],
|
2009-10-24 01:04:35 +00:00
|
|
|
[orte_check_slurm_happy="yes"],
|
|
|
|
[orte_check_slurm_happy="no"])])
|
2008-10-28 17:22:29 +00:00
|
|
|
|
2011-10-10 21:39:10 +00:00
|
|
|
orte_check_slurm_$1_save_CPPFLAGS="$CPPFLAGS"
|
|
|
|
orte_check_slurm_$1_save_LDFLAGS="$LDFLAGS"
|
|
|
|
orte_check_slurm_$1_save_LIBS="$LIBS"
|
|
|
|
|
2011-06-20 21:04:46 +00:00
|
|
|
AC_MSG_CHECKING([if user requested PMI support])
|
|
|
|
orte_enable_slurm_pmi=0
|
|
|
|
AS_IF([test "$with_slurm_pmi" = "yes"],
|
|
|
|
[AC_MSG_RESULT([yes])
|
|
|
|
orte_want_pmi_support=yes
|
|
|
|
AC_MSG_CHECKING([if SLURM PMI support installed])
|
2011-10-10 21:39:10 +00:00
|
|
|
OMPI_CHECK_PACKAGE([$1],
|
|
|
|
[slurm/pmi.h],
|
|
|
|
[pmi],
|
|
|
|
[PMI_Init],
|
|
|
|
[-lpmi],
|
|
|
|
[$orte_check_slurm_dir],
|
|
|
|
[$orte_check_slurm_libdir],
|
|
|
|
[orte_have_pmi_support="yes"],
|
|
|
|
[orte_have_pmi_support="no"])
|
2011-06-20 21:04:46 +00:00
|
|
|
AS_IF([test "$orte_have_pmi_support" = "yes"],
|
|
|
|
[AC_MSG_RESULT([yes])
|
|
|
|
AC_MSG_WARN([SLURM PMI SUPPORT HAS BEEN INCLUDED - RESULTING])
|
|
|
|
AC_MSG_WARN([BINARIES ARE SUBJECT TO ADDITIONAL LICENSING])
|
|
|
|
AC_MSG_WARN([RESTRICTIONS - SEE THE SLURM LICENSE FOR INFO])
|
|
|
|
orte_enable_slurm_pmi=1],
|
|
|
|
[AC_MSG_RESULT([no])
|
|
|
|
AC_MSG_WARN([SLURM PMI support requested (via --with-slurm-pmi) but not found.])
|
2011-10-10 21:39:10 +00:00
|
|
|
AC_MSG_ERROR([Aborting.])])],
|
2011-06-20 21:04:46 +00:00
|
|
|
[AC_MSG_RESULT([no])
|
|
|
|
orte_want_pmi_support=no])
|
|
|
|
AC_DEFINE_UNQUOTED([WANT_SLURM_PMI_SUPPORT],
|
|
|
|
[$orte_enable_slurm_pmi],
|
|
|
|
[Whether we want SLURM PMI support])
|
|
|
|
|
2011-10-10 21:39:10 +00:00
|
|
|
CPPFLAGS="$orte_check_slurm_$1_save_CPPFLAGS"
|
|
|
|
LDFLAGS="$orte_check_slurm_$1_save_LDFLAGS"
|
|
|
|
LIBS="$orte_check_slurm_$1_save_LIBS"
|
|
|
|
|
|
|
|
# Reset for the next time we're called
|
|
|
|
orte_check_slurm_dir=
|
|
|
|
|
2009-10-24 01:04:35 +00:00
|
|
|
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
2008-10-28 17:22:29 +00:00
|
|
|
[$2],
|
|
|
|
[$3])
|
|
|
|
])
|