File: orte_check_lsf.m4

package info (click to toggle)
openmpi 3.1.3-11
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 118,572 kB
  • sloc: ansic: 628,972; f90: 17,993; makefile: 13,761; sh: 7,051; java: 6,360; perl: 3,215; cpp: 2,225; python: 1,350; lex: 988; fortran: 52; tcl: 12
file content (144 lines) | stat: -rw-r--r-- 7,015 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
dnl -*- shell-script -*-
dnl
dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
dnl                         University Research and Technology
dnl                         Corporation.  All rights reserved.
dnl Copyright (c) 2004-2005 The University of Tennessee and The University
dnl                         of Tennessee Research Foundation.  All rights
dnl                         reserved.
dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
dnl                         University of Stuttgart.  All rights reserved.
dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl                         All rights reserved.
dnl Copyright (c) 2007-2016 Cisco Systems, Inc.  All rights reserved.
dnl Copyright (c) 2015      Research Organization for Information Science
dnl                         and Technology (RIST). All rights reserved.
dnl Copyright (c) 2016      Los Alamos National Security, LLC. All rights
dnl                         reserved.
dnl Copyright (c) 2017      IBM Corporation.  All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
dnl
dnl $HEADER$
dnl

# check for lsf
# ORTE_CHECK_LSF(prefix, [action-if-found], [action-if-not-found])
# --------------------------------------------------------
AC_DEFUN([ORTE_CHECK_LSF],[
    AS_IF([test -z "$orte_check_lsf_happy"],[
       AC_ARG_WITH([lsf],
               [AC_HELP_STRING([--with-lsf(=DIR)],
                       [Build LSF support])])
       OPAL_CHECK_WITHDIR([lsf], [$with_lsf], [include/lsf/lsbatch.h])
       AC_ARG_WITH([lsf-libdir],
               [AC_HELP_STRING([--with-lsf-libdir=DIR],
                       [Search for LSF libraries in DIR])])
       OPAL_CHECK_WITHDIR([lsf-libdir], [$with_lsf_libdir], [libbat.*])

       AS_IF([test "$with_lsf" != "no"],[
          # Defaults
          orte_check_lsf_dir_msg="compiler default"
          orte_check_lsf_libdir_msg="linker default"

          # Save directory names if supplied
          AS_IF([test ! -z "$with_lsf" && test "$with_lsf" != "yes"],
                    [orte_check_lsf_dir="$with_lsf"
                     orte_check_lsf_dir_msg="$orte_check_lsf_dir (from --with-lsf)"])
          AS_IF([test ! -z "$with_lsf_libdir" && test "$with_lsf_libdir" != "yes"],
                    [orte_check_lsf_libdir="$with_lsf_libdir"
                     orte_check_lsf_libdir_msg="$orte_check_lsf_libdir (from --with-lsf-libdir)"])

          # If no directories were specified, look for LSF_LIBDIR,
          # LSF_INCLUDEDIR, and/or LSF_ENVDIR.
          AS_IF([test -z "$orte_check_lsf_dir" && test -z "$orte_check_lsf_libdir"],
                    [AS_IF([test ! -z "$LSF_ENVDIR" && test -z "$LSF_LIBDIR" && test -f "$LSF_ENVDIR/lsf.conf"],
                           [LSF_LIBDIR=`egrep ^LSF_LIBDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-`])
                     AS_IF([test ! -z "$LSF_ENVDIR" && test -z "$LSF_INCLUDEDIR" && test -f "$LSF_ENVDIR/lsf.conf"],
                           [LSF_INCLUDEDIR=`egrep ^LSF_INCLUDEDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-`])
                     AS_IF([test ! -z "$LSF_LIBDIR"],
                           [orte_check_lsf_libdir=$LSF_LIBDIR
                            orte_check_lsf_libdir_msg="$LSF_LIBDIR (from \$LSF_LIBDIR)"])
                     AS_IF([test ! -z "$LSF_INCLUDEDIR"],
                           [orte_check_lsf_dir=`dirname $LSF_INCLUDEDIR`
                            orte_check_lsf_dir_msg="$orte_check_lsf_dir (from \$LSF_INCLUDEDIR)"])])

          AS_IF([test "$with_lsf" = "no"],
                    [orte_check_lsf_happy="no"],
                    [orte_check_lsf_happy="yes"])

          orte_check_lsf_$1_save_CPPFLAGS="$CPPFLAGS"
          orte_check_lsf_$1_save_LDFLAGS="$LDFLAGS"
          orte_check_lsf_$1_save_LIBS="$LIBS"

          # liblsf requires yp_all, yp_get_default_domain, and ypprot_err
          # on Linux, Solaris, NEC, and Sony NEWSs these are found in libnsl
          # on AIX it should be in libbsd
          # on HP-UX it should be in libBSD
          # on IRIX < 6 it should be in libsun (IRIX 6 and later it is in libc)
          OPAL_SEARCH_LIBS_COMPONENT([yp_all_nsl], [yp_all], [nsl bsd BSD sun],
                         [yp_all_nsl_happy="yes"],
                         [yp_all_nsl_happy="no"])

          AS_IF([test "$yp_all_nsl_happy" = "no"],
                    [orte_check_lsf_happy="no"],
                    [orte_check_lsf_happy="yes"])

          # liblsb requires liblsf - using ls_info as a test for liblsf presence
          OPAL_CHECK_PACKAGE([ls_info_lsf],
                     [lsf/lsf.h],
                     [lsf],
                     [ls_info],
                     [$yp_all_nsl_LIBS],
                     [$orte_check_lsf_dir],
                     [$orte_check_lsf_libdir],
                     [ls_info_lsf_happy="yes"],
                     [ls_info_lsf_happy="no"])

          AS_IF([test "$ls_info_lsf_happy" = "no"],
                    [orte_check_lsf_happy="no"],
                    [orte_check_lsf_happy="yes"])

          # test function of liblsb LSF package
          AS_IF([test "$orte_check_lsf_happy" = "yes"],
                    [AC_MSG_CHECKING([for LSF dir])
                     AC_MSG_RESULT([$orte_check_lsf_dir_msg])
                     AC_MSG_CHECKING([for LSF library dir])
                     AC_MSG_RESULT([$orte_check_lsf_libdir_msg])
                     AC_MSG_CHECKING([for liblsf function])
                     AC_MSG_RESULT([$ls_info_lsf_happy])
                     AC_MSG_CHECKING([for liblsf yp requirements])
                     AC_MSG_RESULT([$yp_all_nsl_happy])
                     OPAL_CHECK_PACKAGE([orte_check_lsf],
                        [lsf/lsbatch.h],
                        [bat],
                        [lsb_launch],
                        [$ls_info_lsf_LIBS $yp_all_nsl_LIBS],
                        [$orte_check_lsf_dir],
                        [$orte_check_lsf_libdir],
                        [orte_check_lsf_happy="yes"],
                        [orte_check_lsf_happy="no"])])

          CPPFLAGS="$orte_check_lsf_$1_save_CPPFLAGS"
          LDFLAGS="$orte_check_lsf_$1_save_LDFLAGS"
          LIBS="$orte_check_lsf_$1_save_LIBS"

       ],[orte_check_lsf_happy=no])

       OPAL_SUMMARY_ADD([[Resource Managers]],[[LSF]],[$1],[$orte_check_lsf_happy])
    ])

    AS_IF([test "$orte_check_lsf_happy" = "yes"],
          [$1_LIBS="[$]$1_LIBS $orte_check_lsf_LIBS"
           $1_LDFLAGS="[$]$1_LDFLAGS $orte_check_lsf_LDFLAGS"
           $1_CPPFLAGS="[$]$1_CPPFLAGS $orte_check_lsf_CPPFLAGS"
           # add the LSF libraries to static builds as they are required
           $1_WRAPPER_EXTRA_LDFLAGS=[$]$1_LDFLAGS
           $1_WRAPPER_EXTRA_LIBS=[$]$1_LIBS
           $2],
          [AS_IF([test ! -z "$with_lsf" && test "$with_lsf" != "no"],
                 [AC_MSG_WARN([LSF support requested (via --with-lsf) but not found.])
                  AC_MSG_ERROR([Aborting.])])
           $3])
])