1
1
openmpi/orte/config/orte_check_slurm.m4

97 строки
3.9 KiB
Bash

# -*- 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.
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# ORTE_CHECK_SLURM(prefix, [action-if-found], [action-if-not-found])
# --------------------------------------------------------
AC_DEFUN([ORTE_CHECK_SLURM],[
AC_ARG_WITH([slurm],
[AC_HELP_STRING([--with-slurm],
[Build SLURM scheduler component (default: yes)])])
AC_ARG_WITH([slurm-pmi],
[AC_HELP_STRING([--with-slurm-pmi],
[Build SLURM PMI support (default: no)])])
if test "$with_slurm" = "no" ; then
orte_check_slurm_happy="no"
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*)
orte_check_slurm_happy="yes"
;;
*)
AC_MSG_CHECKING([for SLURM srun in PATH])
OPAL_WHICH([srun], [ORTE_CHECK_SLURM_SRUN])
if test "$ORTE_CHECK_SLURM_SRUN" = ""; then
orte_check_slurm_happy="no"
else
orte_check_slurm_happy="yes"
fi
AC_MSG_RESULT([$orte_check_slurm_happy])
;;
esac
else
orte_check_slurm_happy="yes"
fi
AS_IF([test "$orte_check_slurm_happy" = "yes"],
[AC_CHECK_FUNC([fork],
[orte_check_slurm_happy="yes"],
[orte_check_slurm_happy="no"])])
AS_IF([test "$orte_check_slurm_happy" = "yes"],
[AC_CHECK_FUNC([execve],
[orte_check_slurm_happy="yes"],
[orte_check_slurm_happy="no"])])
AS_IF([test "$orte_check_slurm_happy" = "yes"],
[AC_CHECK_FUNC([setpgid],
[orte_check_slurm_happy="yes"],
[orte_check_slurm_happy="no"])])
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])
AC_CHECK_HEADER([slurm/pmi.h], [orte_have_pmi_support=yes], [orte_have_pmi_support=no])]
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.])
AC_MSG_ERROR([Aborting.])]),
[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])
AS_IF([test "$orte_check_slurm_happy" = "yes"],
[$2],
[$3])
])