diff --git a/config/ompi_check_ucx.m4 b/config/ompi_check_ucx.m4 index 55aede6c042..efb90d3cf21 100644 --- a/config/ompi_check_ucx.m4 +++ b/config/ompi_check_ucx.m4 @@ -1,6 +1,7 @@ # -*- shell-script -*- # -# Copyright (C) 2015 Mellanox Technologies Ltd. ALL RIGHTS RESERVED. +# Copyright (C) 2015-2017 Mellanox Technologies, Inc. +# 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 @@ -29,58 +30,69 @@ AC_DEFUN([OMPI_CHECK_UCX],[ [Search for Unified Communication X libraries in DIR])]) OPAL_CHECK_WITHDIR([ucx-libdir], [$with_ucx_libdir], [libucp.*]) - ompi_check_ucx_$1_save_CPPFLAGS="$CPPFLAGS" - ompi_check_ucx_$1_save_LDFLAGS="$LDFLAGS" - ompi_check_ucx_$1_save_LIBS="$LIBS" - AS_IF([test "$with_ucx" != "no"], [AS_IF([test ! -z "$with_ucx" && test "$with_ucx" != "yes"], + [_x_ac_ucx_dirs="$with_ucx"], [ - ompi_check_ucx_dir="$with_ucx" - ompi_check_ucx_libdir="$with_ucx/lib" + PKG_CHECK_MODULES_STATIC([ucx],[ucx], + [_x_ac_ucx_dirs=`$PKG_CONFIG --variable=prefix ucx`], + [_x_ac_ucx_dirs="/usr /usr/local /opt/ucx"]) ]) - AS_IF([test ! -z "$with_ucx_libdir" && test "$with_ucx_libdir" != "yes"], - [ompi_check_ucx_libdir="$with_ucx_libdir"]) - - ompi_check_ucx_extra_libs="-L$ompi_check_ucx_libdir" + for ompi_check_ucx_dir in $_x_ac_ucx_dirs; do + AS_IF([test ! -z "$with_ucx_libdir" && test "$with_ucx_libdir" != "yes"], + [ + ompi_check_ucx_libdir="$with_ucx_libdir" + ompi_check_ucx_extra_libs="-L$ompi_check_ucx_libdir" + ], + [AS_IF([test ! -z "$ompi_check_ucx_dir"], + [ + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib + ompi_check_ucx_extra_libs="-L$ompi_check_ucx_libdir" + ])]) - OPAL_CHECK_PACKAGE([ompi_check_ucx], - [ucp/api/ucp.h], - [ucp], - [ucp_cleanup], - [$ompi_check_ucx_extra_libs], - [$ompi_check_ucx_dir], - [$ompi_check_ucx_libdir], - [ompi_check_ucx_happy="yes"], - [ompi_check_ucx_happy="no"])], - [ompi_check_ucx_happy="no"]) + ompi_check_ucx_$1_save_CPPFLAGS="$CPPFLAGS" + ompi_check_ucx_$1_save_LDFLAGS="$LDFLAGS" + ompi_check_ucx_$1_save_LIBS="$LIBS" + OPAL_CHECK_PACKAGE([ompi_check_ucx], + [ucp/api/ucp.h], + [ucp], + [ucp_cleanup], + [$ompi_check_ucx_extra_libs], + [$ompi_check_ucx_dir], + [$ompi_check_ucx_libdir], + [ompi_check_ucx_happy="yes"], + [ompi_check_ucx_happy="no"]) + CPPFLAGS="$ompi_check_ucx_$1_save_CPPFLAGS" + LDFLAGS="$ompi_check_ucx_$1_save_LDFLAGS" + LIBS="$ompi_check_ucx_$1_save_LIBS" + if test "$ompi_check_ucx_happy" = no; then + continue + fi - CPPFLAGS="$ompi_check_ucx_$1_save_CPPFLAGS" - LDFLAGS="$ompi_check_ucx_$1_save_LDFLAGS" - LIBS="$ompi_check_ucx_$1_save_LIBS" + AC_MSG_CHECKING(for UCX version compatibility) + AC_REQUIRE_CPP + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include ]],[[]])], + [ompi_ucx_version_ok="yes"], + [ompi_ucx_version_ok="no"]) - AC_MSG_CHECKING(for UCX version compatibility) - AC_REQUIRE_CPP - old_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#include ]], - [[ - ]])], - [ompi_ucx_version_ok="yes"], - [ompi_ucx_version_ok="no"]) + AC_MSG_RESULT([$ompi_ucx_version_ok]) + CPPFLAGS=$old_CPPFLAGS - AC_MSG_RESULT([$ompi_ucx_version_ok]) - CPPFLAGS=$old_CPPFLAGS + AS_IF([test "$ompi_ucx_version_ok" = "no"], [ompi_check_ucx_happy="no"]) - AS_IF([test "$ompi_ucx_version_ok" = "no"], [ompi_check_ucx_happy="no"]) - - OPAL_SUMMARY_ADD([[Transports]],[[Open UCX]],[$1],[$ompi_check_ucx_happy]) + if test "$ompi_check_ucx_happy" = yes; then + break + fi + done], + [ompi_check_ucx_happy="no"]) + OPAL_SUMMARY_ADD([[Transports]],[[Open UCX]],[$1],[$ompi_check_ucx_happy]) fi - AS_IF([test "$ompi_check_ucx_happy" = "yes"], [$1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_ucx_CPPFLAGS" $1_LDFLAGS="[$]$1_LDFLAGS $ompi_check_ucx_LDFLAGS" diff --git a/ompi/mca/pml/ucx/Makefile.am b/ompi/mca/pml/ucx/Makefile.am index 0fdd85e2723..b8e6f78e31f 100644 --- a/ompi/mca/pml/ucx/Makefile.am +++ b/ompi/mca/pml/ucx/Makefile.am @@ -1,5 +1,6 @@ # -# Copyright (C) Mellanox Technologies Ltd. 2001-2015. ALL RIGHTS RESERVED. +# Copyright (C) 2001-2017 Mellanox Technologies, Inc. +# All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -36,10 +37,10 @@ mcacomponentdir = $(ompilibdir) mcacomponent_LTLIBRARIES = $(component_install) mca_pml_ucx_la_SOURCES = $(local_sources) mca_pml_ucx_la_LIBADD = $(pml_ucx_LIBS) -mca_pml_ucx_la_LDFLAGS = -module -avoid-version +mca_pml_ucx_la_LDFLAGS = -module -avoid-version $(pml_ucx_LDFLAGS) noinst_LTLIBRARIES = $(component_noinst) libmca_pml_ucx_la_SOURCES = $(local_sources) libmca_pml_ucx_la_LIBADD = $(pml_ucx_LIBS) -libmca_pml_ucx_la_LDFLAGS = -module -avoid-version +libmca_pml_ucx_la_LDFLAGS = -module -avoid-version $(pml_ucx_LDFLAGS)