Skip to content

Commit

Permalink
For maintainability, fold the external PMIx 2.x integration into the …
Browse files Browse the repository at this point in the history
…internal PMIx 2.x library component. This ensures that we always stay in sync with the two as that is becoming a problem.
  • Loading branch information
Ralph Castain committed Aug 22, 2016
1 parent 871bedb commit 639dbdb
Show file tree
Hide file tree
Showing 14 changed files with 324 additions and 5,065 deletions.
26 changes: 26 additions & 0 deletions config/opal_check_pmi.m4
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,8 @@ AC_DEFUN([OPAL_CHECK_PMI],[

AC_DEFUN([OPAL_CHECK_PMIX],[
OPAL_VAR_SCOPE_PUSH([opal_external_pmix_save_CPPFLAGS opal_external_pmix_save_LDFLAGS opal_external_pmix_save_LIBS])
AC_ARG_WITH([pmix],
[AC_HELP_STRING([--with-pmix(=DIR)],
[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.])])
Expand All @@ -241,14 +243,38 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
AS_IF([test -z "$with_pmix" || test "$with_pmix" = "yes" || test "$with_pmix" = "internal"],
[AC_MSG_RESULT([no])
opal_external_pmix_happy=no],
[AC_MSG_RESULT([yes])
# check for external pmix lib */
AS_IF([test "$with_pmix" = "external"],
[pmix_ext_install_dir=/usr],
[pmix_ext_install_dir=$with_pmix])
# Make sure we have the headers and libs in the correct location
OPAL_CHECK_WITHDIR([external-pmix], [$pmix_ext_install_dir/include], [pmix.h])
OPAL_CHECK_WITHDIR([external-libpmix], [$pmix_ext_install_dir/lib], [libpmix.*])
# check the version
opal_external_pmix_save_CPPFLAGS=$CPPFLAGS
opal_external_pmix_save_LDFLAGS=$LDFLAGS
opal_external_pmix_save_LIBS=$LIBS
LDFLAGS="-L$pmix_ext_install_dir/lib $LDFLAGS"
AC_SEARCH_LIBS([PMIx_Register_event_handler], [pmix],
[opal_external_pmix_version=2],
[opal_external_pmix_version=1])
AC_MSG_CHECKING([PMIx version])
AC_MSG_RESULT([$opal_external_pmix_version])
CPPFLAGS=$opal_external_pmix_save_CPPFLAGS
LDFLAGS=$opal_external_pmix_save_LDFLAGS
LIBS=$opal_external_pmix_save_LIBS
opal_external_pmix_CPPFLAGS="-I$pmix_ext_install_dir/include"
opal_external_pmix_LDFLAGS=-L$pmix_ext_install_dir/lib
opal_external_pmix_LIBS=-lpmix
opal_external_pmix_happy=yes])
OPAL_VAR_SCOPE_POP
])
40 changes: 19 additions & 21 deletions opal/mca/pmix/ext114/configure.m4
Original file line number Diff line number Diff line change
Expand Up @@ -43,31 +43,29 @@ AC_DEFUN([MCA_opal_pmix_ext114_CONFIG],[
AC_MSG_WARN([LIBRARY THIS LIBRARY MUST POINT TO THE SAME ONE USED ])
AC_MSG_WARN([TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT])
AC_MSG_ERROR([PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD])])
external_WRAPPER_EXTRA_CPPFLAGS='-I${includedir}/openmpi/$opal_pmix_external_basedir/pmix -I${includedir}/openmpi/$opal_pmix_external_basedir/pmix/include'
# check for the 1.1.4 version by looking for a function
# which was later removed
AC_MSG_CHECKING([if external component is version 1.1.4])
OPAL_CHECK_PACKAGE([opal_pmix_ext114],
[pmix.h],
[pmix],
[PMIx_Register_errhandler],
[-lpmix],
[$pmix_ext_install_dir],
[$pmix_ext_install_dir/lib],
[AC_MSG_RESULT([yes])
opal_pmix_external_114_happy=yes],
[AC_MSG_RESULT([no])
opal_pmix_external_114_happy=no])

AC_SUBST(opal_pmix_ext114_CPPFLAGS)
AC_SUBST(opal_pmix_ext114_LDFLAGS)
AC_SUBST(opal_pmix_ext114_LIBS)
# check for the 1.1.4 version
AC_MSG_CHECKING([if external component is version 1.x])
AS_IF([test "$opal_external_pmix_version" = "1"],
[AC_MSG_RESULT([yes])
opal_pmix_external_114_happy=yes],
[AC_MSG_RESULT([no])
opal_pmix_external_114_happy=no])

AS_IF([test "$opal_pmix_external_114_happy" = "yes"],
[$1
# need to set the wrapper flags for static builds
pmix_ext114_WRAPPER_EXTRA_LDFLAGS="$opal_pmix_ext114_LDFLAGS"
pmix_ext114_WRAPPER_EXTRA_LIBS="$opal_pmix_ext114_LIBS"],
# need to set the wrapper flags for static builds
pmix_ext114_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS
pmix_ext114_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS],
[$2])],
[$2])

opal_pmix_ext114_CPPFLAGS=$opal_external_pmix_CPPFLAGS
opal_pmix_ext114_LDFLAGS=$opal_external_pmix_LDFLAGS
opal_pmix_ext114_LIBS=$opal_external_pmix_LIBS

AC_SUBST([opal_pmix_ext114_CPPFLAGS])
AC_SUBST([opal_pmix_ext114_LDFLAGS])
AC_SUBST([opal_pmix_ext114_LIBS])

])dnl
Loading

0 comments on commit 639dbdb

Please sign in to comment.