Skip to content

Commit 49328eb

Browse files
author
rhc54
authored
Merge pull request #2597 from rhc54/topic/flux
Add a flux component for LLNL
2 parents ced245d + 215d629 commit 49328eb

File tree

11 files changed

+1248
-0
lines changed

11 files changed

+1248
-0
lines changed

opal/mca/pmix/flux/Makefile.am

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#
2+
# Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
3+
# $COPYRIGHT$
4+
#
5+
# Additional copyrights may follow
6+
#
7+
# $HEADER$
8+
#
9+
10+
sources = \
11+
pmix_flux.h \
12+
pmix_flux_component.c \
13+
pmix_flux.c
14+
15+
# Make the output library in this directory, and name it either
16+
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
17+
# (for static builds).
18+
19+
if MCA_BUILD_opal_pmix_flux_DSO
20+
component_noinst =
21+
component_install = mca_pmix_flux.la
22+
else
23+
component_noinst = libmca_pmix_flux.la
24+
component_install =
25+
endif
26+
27+
mcacomponentdir = $(opallibdir)
28+
mcacomponent_LTLIBRARIES = $(component_install)
29+
mca_pmix_flux_la_SOURCES = $(sources)
30+
mca_pmix_flux_la_CPPFLAGS = $(FLUX_PMI_CFLAGS)
31+
mca_pmix_flux_la_LDFLAGS = -module -avoid-version
32+
mca_pmix_flux_la_LIBADD = $(FLUX_PMI_LIBS)
33+
34+
noinst_LTLIBRARIES = $(component_noinst)
35+
libmca_pmix_flux_la_SOURCES =$(sources)
36+
libmca_pmix_flux_la_CPPFLAGS = $(FLUX_PMI_CFLAGS)
37+
libmca_pmix_flux_la_LDFLAGS = -module -avoid-version
38+
libmca_pmix_flux_la_LIBADD = $(FLUX_PMI_LIBS)

opal/mca/pmix/flux/configure.m4

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# -*- shell-script -*-
2+
#
3+
# Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
4+
# $COPYRIGHT$
5+
#
6+
# Additional copyrights may follow
7+
#
8+
# $HEADER$
9+
#
10+
11+
# MCA_pmix_flux_CONFIG([action-if-found], [action-if-not-found])
12+
# -----------------------------------------------------------
13+
AC_DEFUN([MCA_opal_pmix_flux_CONFIG], [
14+
15+
AC_CONFIG_FILES([opal/mca/pmix/flux/Makefile])
16+
17+
AC_ARG_WITH([flux-pmi],
18+
[AC_HELP_STRING([--with-flux-pmi],
19+
[Build Flux PMI support (default: yes)])])
20+
21+
AC_ARG_WITH([flux-pmi-library],
22+
[AC_HELP_STRING([--with-flux-pmi-library],
23+
[Link Flux PMI support with PMI library at build time. Otherwise the library is opened at runtime at location specified by FLUX_PMI_LIBRARY_PATH environment variable. Use this option to enable Flux support when building statically or without dlopen support (default: no)])])
24+
25+
26+
# pkg-config check aborts configure on failure
27+
AC_MSG_CHECKING([if user wants Flux support to link against PMI library])
28+
AS_IF([test "x$with_flux_pmi_library" != "xyes"],
29+
[AC_MSG_RESULT([no])
30+
$3],
31+
[AC_MSG_RESULT([yes])
32+
PKG_CHECK_MODULES([FLUX_PMI], [flux-pmi], [], [])
33+
have_flux_pmi_library=yes
34+
AC_DEFINE([HAVE_FLUX_PMI_LIBRARY], [1],
35+
[Flux support builds against external PMI library])
36+
])
37+
38+
AC_MSG_CHECKING([if Flux support allowed to use dlopen])
39+
AS_IF([test $OPAL_ENABLE_DLOPEN_SUPPORT -eq 1 && test "x$compile_mode" = "xdso"],
40+
[AC_MSG_RESULT([yes])
41+
flux_can_dlopen=yes
42+
],
43+
[AC_MSG_RESULT([no])
44+
])
45+
46+
AC_MSG_CHECKING([Checking if Flux PMI support can be built])
47+
AS_IF([test "x$with_flux_pmi" != "xno" && ( test "x$have_flux_pmi_library" = "xyes" || test "x$flux_can_dlopen" = "xyes" ) ],
48+
[AC_MSG_RESULT([yes])
49+
opal_enable_flux=yes
50+
],
51+
[AC_MSG_RESULT([no])
52+
AS_IF([test "x$with_flux_pmi" = "xyes"],
53+
[AC_MSG_ERROR([Aborting since Flux PMI support was requested])
54+
])
55+
])
56+
57+
# Evaluate succeed / fail
58+
AS_IF([test "x$opal_enable_flux" = "xyes"],
59+
[$1
60+
# need to set the wrapper flags for static builds
61+
pmix_flux_WRAPPER_EXTRA_LIBS="$FLUX_PMI_LIBS"],
62+
[$2])
63+
])

opal/mca/pmix/flux/owner.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#
2+
# owner/status file
3+
# owner: institution that is responsible for this package
4+
# status: e.g. active, maintenance, unmaintained
5+
#
6+
owner: INTEL
7+
status: active

0 commit comments

Comments
 (0)