Skip to content

Commit db2f364

Browse files
committed
configury: enhance external PMIx detection - add the --with-pmix-libdir=DIR option look for libpmix.* libs in DIR, DIR/lib64 and DIR - if --with-pmix=DIR is given, look for libpmix.* in DIR/lib64 and DIR/lib
Fixes #4347 Signed-off-by: Gilles Gouaillardet <[email protected]>
1 parent 27eb401 commit db2f364

File tree

1 file changed

+38
-6
lines changed

1 file changed

+38
-6
lines changed

config/opal_check_pmi.m4

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# Copyright (c) 2011-2014 Los Alamos National Security, LLC. All rights
1515
# reserved.
1616
# Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
17-
# Copyright (c) 2014-2016 Research Organization for Information Science
17+
# Copyright (c) 2014-2017 Research Organization for Information Science
1818
# and Technology (RIST). All rights reserved.
1919
# Copyright (c) 2016 IBM Corporation. All rights reserved.
2020
# $COPYRIGHT$
@@ -132,8 +132,8 @@ AC_DEFUN([OPAL_CHECK_PMI],[
132132
[], with_pmi=no)
133133
134134
AC_ARG_WITH([pmi-libdir],
135-
[AC_HELP_STRING([--with-pmi-libdir(=DIR)],
136-
[Look for libpmi or libpmi2 in the given directory, DIR/lib or DIR/lib64])])
135+
[AC_HELP_STRING([--with-pmi-libdir=DIR],
136+
[Look for libpmi or libpmi2 in the given directory DIR, DIR/lib or DIR/lib64])])
137137
138138
check_pmi_install_dir=
139139
check_pmi_lib_dir=
@@ -233,6 +233,10 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
233233
[AC_HELP_STRING([--with-pmix(=DIR)],
234234
[Build PMIx support. DIR can take one of three values: "internal", "external", or a valid directory name. "internal" (or no DIR value) forces Open MPI to use its internal copy of PMIx. "external" forces Open MPI to use an external installation of PMIx. Supplying a valid directory name also forces Open MPI to use an external installation of PMIx, and adds DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries. Note that Open MPI does not support --without-pmix.])])
235235
236+
AC_ARG_WITH([pmix-libdir],
237+
[AC_HELP_STRING([--with-pmix-libdir=DIR],
238+
[Look for libpmix the given directory DIR, DIR/lib or DIR/lib64])])
239+
236240
AS_IF([test "$with_pmix" = "no"],
237241
[AC_MSG_WARN([Open MPI requires PMIx support. It can be built])
238242
AC_MSG_WARN([with either its own internal copy of PMIx, or with])
@@ -254,7 +258,34 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
254258
255259
# Make sure we have the headers and libs in the correct location
256260
OPAL_CHECK_WITHDIR([external-pmix], [$pmix_ext_install_dir/include], [pmix.h])
257-
OPAL_CHECK_WITHDIR([external-libpmix], [$pmix_ext_install_dir/lib], [libpmix.*])
261+
262+
AS_IF([test -n "$with_pmix_libdir"],
263+
[AC_MSG_CHECKING([libpmix.* in $with_pmix_libdir])
264+
files=`ls $with_pmix_libdir/libpmix.* 2> /dev/null | wc -l`
265+
AS_IF([test "$files" -gt 0],
266+
[pmix_ext_install_libdir=$with_pmix_libdir],
267+
[AC_MSG_CHECKING([libpmix.* in $with_pmix_libdir/lib64])
268+
files=`ls $with_pmix_libdir/lib64/libpmix.* 2> /dev/null | wc -l`
269+
AS_IF([test "$files" -gt 0],
270+
[pmix_ext_install_libdir=$with_pmix_libdir/lib64],
271+
[AC_MSG_CHECKING([libpmix.* in $with_pmix_libdir/lib])
272+
files=`ls $with_pmix_libdir/lib/libpmix.* 2> /dev/null | wc -l`
273+
AS_IF([test "$files" -gt 0],
274+
[pmix_ext_install_libdir=$with_pmix_libdir/lib],
275+
[AC_MSG_RESULT([not found])
276+
AC_MSG_ERROR([Cannot continue])])])])],
277+
[# check for presence of lib64 directory - if found, see if the
278+
# desired library is present and matches our build requirements
279+
AC_MSG_CHECKING([libpmix.* in $pmix_ext_install_dir/lib64])
280+
files=`ls $pmix_ext_install_dir/lib64/libpmix.* 2> /dev/null | wc -l`
281+
AS_IF([test "$files" -gt 0],
282+
[pmix_ext_install_libdir=$pmix_ext_install_dir/lib64],
283+
[AC_MSG_CHECKING([libpmix.* in $pmix_ext_install_dir/lib])
284+
files=`ls $pmix_ext_install_dir/lib/libpmix.* 2> /dev/null | wc -l`
285+
AS_IF([test "$files" -gt 0],
286+
[pmix_ext_install_libdir=$pmix_ext_install_dir/lib],
287+
[AC_MSG_RESULT([not found])
288+
AC_MSG_ERROR([Cannot continue])])])])
258289
259290
# check the version
260291
opal_external_pmix_save_CPPFLAGS=$CPPFLAGS
@@ -324,8 +355,9 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
324355
LDFLAGS=$opal_external_pmix_save_LDFLAGS
325356
LIBS=$opal_external_pmix_save_LIBS
326357
327-
opal_external_pmix_CPPFLAGS="-I$pmix_ext_install_dir/include"
328-
opal_external_pmix_LDFLAGS=-L$pmix_ext_install_dir/lib
358+
AS_IF([test "$pmix_ext_install_dir" != "/usr"],
359+
[opal_external_pmix_CPPFLAGS="-I$pmix_ext_install_dir/include"
360+
opal_external_pmix_LDFLAGS=-L$pmix_ext_install_libdir])
329361
opal_external_pmix_LIBS=-lpmix
330362
opal_external_pmix_happy=yes])
331363

0 commit comments

Comments
 (0)