1
1
openmpi/config/ompi_check_mxm.m4
Mike Dubman d78a9cdd77 add rpath on mca_mtl_mxm.so to point to /path/to/mxm/lib/libmxm.so which was detected at configure time
This *should* fix following situation:

1 mxm.rpm puts /etc/ld.so.conf.d/mxm.conf file during rpm install with libpath to /opt/mellanox/mxm/lib
2 some1 can extract mxm.rpm into $HOME/mxm and compile OMPI with new mxm location
3 during runtime, OMPI from prev step will pick MXM from step (1) instead of from step (2)

cmr=v1.7.4:reviewer=ompi-rm1.7

This commit was SVN r30005.
2013-12-20 11:15:41 +00:00

84 строки
2.9 KiB
Bash

# -*- shell-script -*-
#
# Copyright (C) Mellanox Technologies Ltd. 2001-2011. ALL RIGHTS RESERVED.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# OMPI_CHECK_MXM(prefix, [action-if-found], [action-if-not-found])
# --------------------------------------------------------
# check if MXM 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_MXM],[
AC_ARG_WITH([mxm],
[AC_HELP_STRING([--with-mxm(=DIR)],
[Build Mellanox Messaging support])])
OMPI_CHECK_WITHDIR([mxm], [$with_mxm], [include/mxm/api/mxm_api.h])
AC_ARG_WITH([mxm-libdir],
[AC_HELP_STRING([--with-mxm-libdir=DIR],
[Search for Mellanox Messaging libraries in DIR])])
OMPI_CHECK_WITHDIR([mxm-libdir], [$with_mxm_libdir], [libmxm.*])
ompi_check_mxm_$1_save_CPPFLAGS="$CPPFLAGS"
ompi_check_mxm_$1_save_LDFLAGS="$LDFLAGS"
ompi_check_mxm_$1_save_LIBS="$LIBS"
AS_IF([test "$with_mxm" != "no"],
[AS_IF([test ! -z "$with_mxm" -a "$with_mxm" != "yes"],
[
ompi_check_mxm_dir="$with_mxm"
ompi_check_mxm_libdir="$with_mxm/lib"
])
AS_IF([test ! -z "$with_mxm_libdir" -a "$with_mxm_libdir" != "yes"],
[ompi_check_mxm_libdir="$with_mxm_libdir"])
ompi_check_mxm_rpath="-Wl,-rpath=$ompi_check_mxm_libdir"
OMPI_CHECK_PACKAGE([$1],
[mxm/api/mxm_api.h],
[mxm],
[mxm_cleanup],
[$ompi_check_mxm_rpath],
[$ompi_check_mxm_dir],
[$ompi_check_mxm_libdir],
[ompi_check_mxm_happy="yes"],
[ompi_check_mxm_happy="no"])],
[ompi_check_mxm_happy="no"])
CPPFLAGS="$ompi_check_mxm_$1_save_CPPFLAGS"
LDFLAGS="$ompi_check_mxm_$1_save_LDFLAGS"
LIBS="$ompi_check_mxm_$1_save_LIBS"
AC_MSG_CHECKING(for MXM version compatibility)
AC_REQUIRE_CPP
old_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -I$ompi_check_mxm_dir/include"
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <mxm/api/mxm_version.h>]],
[[
#if MXM_API < 15
#error "MXM Version less than 1.5, please upgrade"
#endif
]])],
[ompi_mxm_version_ok="yes"],
[ompi_mxm_version_ok="no"])
AC_MSG_RESULT([$ompi_mxm_version_ok])
CFLAGS=$old_CFLAGS
AS_IF([test "$ompi_mxm_version_ok" = "no"], [ompi_check_mxm_happy="no"])
AS_IF([test "$ompi_check_mxm_happy" = "yes"],
[$2],
[AS_IF([test ! -z "$with_mxm" -a "$with_mxm" != "no"],
[AC_MSG_ERROR([MXM support requested but not found. Aborting])])
$3])
])