File: ompi_check_psm2.m4

package info (click to toggle)
openmpi 5.0.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 202,312 kB
  • sloc: ansic: 612,441; makefile: 42,495; sh: 11,230; javascript: 9,244; f90: 7,052; java: 6,404; perl: 5,154; python: 1,856; lex: 740; fortran: 61; cpp: 20; tcl: 12
file content (91 lines) | stat: -rw-r--r-- 4,316 bytes parent folder | download | duplicates (2)
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
# -*- 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-2006 The Regents of the University of California.
#                         All rights reserved.
# Copyright (c) 2006      QLogic Corp. All rights reserved.
# Copyright (c) 2009-2021 Cisco Systems, Inc.  All rights reserved.
# Copyright (c) 2016      Intel Corporation. All rights reserved.
# Copyright (c) 2015      Research Organization for Information Science
#                         and Technology (RIST). All rights reserved.
# Copyright (c) 2016      Los Alamos National Security, LLC. All rights
#                         reserved.
#  Copyright (c) 2021     Triad National Security, LLC. All rights
#                         reserved.
# Copyright (c) 2022      Amazon.com, Inc. or its affiliates.  All Rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#

# OMPI_CHECK_PSM2(prefix, [action-if-found], [action-if-not-found])
# --------------------------------------------------------
# check if PSM2 support can be found.  sets prefix_{CPPFLAGS,
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
# support, otherwise executes action-if-not-found
AC_DEFUN([OMPI_CHECK_PSM2],[
    OPAL_VAR_SCOPE_PUSH([opal_psm2_CPPFLAGS_save opal_psm2_LDFLAGS_save opal_psm2_LIBS_save])

    AC_ARG_WITH([psm2],
                [AS_HELP_STRING([--with-psm2(=DIR)],
                    [Build PSM2 (Intel PSM2) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
    AC_ARG_WITH([psm2-libdir],
                [AS_HELP_STRING([--with-psm2-libdir=DIR],
                    [Search for PSM (Intel PSM2) libraries in DIR])])

    AC_ARG_ENABLE([psm2-version-check],
                  [AS_HELP_STRING([--disable-psm2-version-check],
                      [Disable PSM2 version checking.  Not recommended to disable. (default: enabled)])])

    OAC_CHECK_PACKAGE([psm2],
                      [$1],
                      [psm2.h],
                      [psm2],
                      [psm2_mq_irecv2],
                      [ompi_check_psm2_happy="yes"],
                      [ompi_check_psm2_happy="no"])

    AS_IF([test "$ompi_check_psm2_happy" = "yes" && test "$enable_progress_threads" = "yes"],
          [AC_MSG_WARN([PSM2 driver does not currently support progress threads.  Disabling MTL.])
           $1_SUMMARY="no (progress threads not supported)"
           ompi_check_psm2_happy="no"])

    opal_psm2_CPPFLAGS_save="$CPPFLAGS"
    CPPFLAGS="${$1_CPPFLAGS} ${CPPFLAGS}"

    AS_IF([test "$ompi_check_psm2_happy" = "yes"],
          [AC_CHECK_HEADERS([glob.h], [],
               [AC_MSG_WARN([glob.h not found.  Can not build component.])
                $1_SUMMARY="no (glob.h not found))"
                ompi_check_psm2_happy="no"])])

    AS_IF([test "$ompi_check_psm2_happy" = "yes"],
          [AC_CHECK_DECL([PSM2_LIB_REFCOUNT_CAP],
                         [AC_DEFINE([HAVE_PSM2_LIB_REFCOUNT_CAP], [1],
                                    [have PSM2_LIB_REFCOUNT_CAP in psm2.h])],
                         [AS_IF([test "x$enable_psm2_version_check" != "xno"],
                                [ompi_check_psm2_happy="no"
                                 $1_SUMMARY="no (version too old)"
                                 AC_MSG_WARN([PSM2 needs to be version 11.2.173 or later. Disabling MTL.])]
                         )],
                          [#include <psm2.h>])])

    CPPFLAGS="${opal_psm2_CPPFLAGS_save}"

    OPAL_SUMMARY_ADD([Transports], [Intel Omnipath (PSM2)], [], [${$1_SUMMARY}])

    AS_IF([test "$ompi_check_psm2_happy" = "yes"],
          [$2],
          [AS_IF([test ! -z "$with_psm2" && test "$with_psm2" != "no"],
                 [AC_MSG_ERROR([PSM2 support requested but not found.  Aborting])])
           $3])
])