25
25
# $HEADER$
26
26
#
27
27
28
+ # Check for / configure PRRTE package. Unlike the other 3rd party
29
+ # packages, prrte is either internal or not used (since prrte is a
30
+ # pmix server, we don't need to link against it or such in the
31
+ # external case). So we don't have to do some of the complex steps we
32
+ # do for pmix or hwloc in terms of external hunting.
33
+ #
34
+ # This macro will not change the environment.
35
+ #
36
+ # A Makefile conditional OMPI_WANT_PRRTE will be defined based on the
37
+ # results of the build. Unless --disable-internal-rte is specified,
38
+ # the top-level configure will abort if the PRRTE configure fails.
28
39
AC_DEFUN([OMPI_SETUP_PRRTE],[
29
- OPAL_VAR_SCOPE_PUSH([opal_prrte_save_CPPFLAGS opal_prrte_save_CFLAGS opal_prrte_save_LDFLAGS opal_prrte_save_LIBS opal_prrte_args opal_prrte_save_enable_dlopen opal_prrte_save_enable_mca_dso opal_prrte_save_enable_mca_static opal_prrte_extra_libs opal_prrte_extra_ltlibs opal_prrte_extra_ldflags])
40
+ OPAL_VAR_SCOPE_PUSH([internal_prrte_build])
41
+
42
+ internal_prrte_build= 0
43
+ m4_ifdef([package_prrte],
44
+ [OMPI_SETUP_PRRTE_INTERNAL([internal_prrte_build= 1], [internal_prrte_build= 0])])
45
+
46
+ AM_CONDITIONAL([OMPI_WANT_PRRTE], [test " $internal_prrte_build " = " 1" ])
47
+
48
+ OPAL_VAR_SCOPE_POP
49
+ ])
50
+
51
+ AC_DEFUN([OMPI_SETUP_PRRTE_INTERNAL], [
52
+ OPAL_VAR_SCOPE_PUSH([internal_prrte_args internal_prrte_extra_libs internal_prrte_happy deprecated_prefix_by_default print_prrte_warning])
30
53
31
- opal_prrte_save_CFLAGS= $CFLAGS
32
- opal_prrte_save_CPPFLAGS= $CPPFLAGS
33
- opal_prrte_save_LDFLAGS= $LDFLAGS
34
- opal_prrte_save_LIBS= $LIBS
35
- opal_prrte_save_enable_dlopen= enable_dlopen
36
- opal_prrte_save_enable_mca_dso= enable_mca_dso
37
- opal_prrte_save_enable_mca_static= enable_mca_static
54
+ opal_show_subtitle " Configuring PRRTE"
38
55
39
56
AC_ARG_ENABLE([internal-rte],
40
57
[AC_HELP_STRING([--enable-internal-rte],
41
58
[Enable internal runtime support and provide mpiexec/mpirun (default: enabled)])])
42
59
43
- AC_ARG_WITH([prrte-platform],
44
- [AC_HELP_STRING([--with-prrte-platform],
45
- [Platform file to use when building the internal PRRTE runtime support])])
46
-
60
+ # This is really a PRTE option that should not be in Open MPI, but
61
+ # there is not a great way to support the orterun/mpirun checks
62
+ # without this argument.
47
63
AC_ARG_ENABLE([prte-prefix-by-default],
48
64
[AC_HELP_STRING([--enable-prte-prefix-by-default],
49
- [Make " mpirun ..." behave exactly the same as " mpirun --prefix \$ prefix" (where \$ prefix is the value given to --prefix in configure) (default:enabled)])])
50
-
51
- AC_MSG_CHECKING([if RTE support is enabled])
52
- AS_IF([test " $enable_internal_rte " != " no" ],
53
- [AC_MSG_RESULT([yes])
54
- ompi_want_prrte= yes
55
- opal_prrte_extra_libs=
56
- opal_prrte_extra_ltlibs=
57
-
58
- AS_IF([test " $opal_libevent_mode " = " internal" ],
59
- [opal_prrte_extra_libs= " $opal_prrte_extra_libs $opal_libevent_LIBS "
60
- opal_prrte_extra_ltlibs= " $opal_prrte_extra_ltlibs $opal_libevent_LIBS "
61
-
62
- AS_IF([test ! -z " $opal_libevent_header " ]
63
- [opal_prrte_libevent_arg= " --with-libevent-header=$opal_libevent_header " ])],
64
- [opal_prrte_libevent_arg= " --with-libevent=$with_libevent "
65
- AS_IF([test ! -z " $with_libevent_libdir " ],
66
- [opal_prrte_libevent_arg= " $opal_prrte_libevent_arg --with-libevent-libdir=$with_libevent_libdir " ])])
67
-
68
- AS_IF([test " $opal_hwloc_mode " = " internal" ],
69
- [opal_prrte_extra_libs= " $opal_prrte_extra_libs $opal_hwloc_LIBS "
70
- opal_prrte_extra_ltlibs= " $opal_prrte_extra_ltlibs $opal_hwloc_LIBS "
71
-
72
- AS_IF([test ! -z " $opal_hwloc_header " ],
73
- [opal_prrte_hwloc_arg= " --with-hwloc-header=$opal_hwloc_header " ])],
74
- [opal_prrte_hwloc_arg= " --with-hwloc=$with_hwloc "
75
- AS_IF([test ! -z " $with_hwloc_libdir " ],
76
- [opal_prrte_hwloc_arg= " $opal_prrte_hwloc_arg --with-hwloc-libdir=$with_hwloc_libdir " ])])
77
-
78
- AS_IF([test " $opal_pmix_mode " = " internal" ],
79
- [opal_prrte_extra_libs= " $opal_prrte_extra_libs $opal_pmix_LIBS "
80
- opal_prrte_extra_ltlibs= " $opal_prrte_extra_ltlibs $opal_pmix_LIBS "
81
-
82
- AS_IF([test ! -z " $opal_pmix_header " ],
83
- [opal_prrte_pmix_arg= " --with-pmix-header=$opal_pmix_header " ])],
84
- [OPAL_VAR_SCOPE_PUSH([opal_prrte_CPPFLAGS_save])
85
- opal_prrte_CPPFLAGS_save= $CPPFLAGS
86
-
87
- AC_MSG_CHECKING([if external PMIx version is 3.0.0 or greater])
88
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[# include <pmix_version.h>]],
65
+ [Make " mpirun ..." behave exactly the same as " mpirun --prefix \$ prefix" , where \$ prefix is the value given to --prefix in configure (default:enabled)])])
66
+
67
+ AC_ARG_ENABLE([orterun-prefix-by-default],
68
+ [AC_HELP_STRING([--enable-orterun-prefix-by-default],
69
+ [* DEPRECATED* Please use --enable-prte-prefix-by-default in the future.])],
70
+ [print_prrte_warning= " yes"
71
+ deprecated_prefix_by_default= $orterun_prefix_by_default ])
72
+
73
+ AC_ARG_ENABLE([mpirun-prefix-by-default],
74
+ [AC_HELP_STRING([--enable-mpirun-prefix-by-default],
75
+ [* DEPRECATED* Please use --enable-prte-prefix-by-default in the future.])],
76
+ [print_prrte_warning= " yes"
77
+ deprecated_prefix_by_default= $mpirun_prefix_by_default ])
78
+
79
+ AS_IF([test " $print_prrte_warning " = " yes" ], [
80
+ AC_MSG_WARN([Open MPI no longer uses the ORTE environment - it has been])
81
+ AC_MSG_WARN([replaced by PRRTE. Accordingly, the " --enable-orterun-prefix-by-default" ])
82
+ AC_MSG_WARN([and " --enable-mpirun-prefix-by-default" options have been replaced])
83
+ AC_MSG_WARN([by " --enable-prte-prefix-by-default" . We will do the translation for])
84
+ AC_MSG_WARN([you now, but these older options are deprecated and will be removed])
85
+ AC_MSG_WARN([in a later release, so please update your build scripts.])])
86
+
87
+ AS_IF([test -n " $prte_prefix_by_default " -a -n " $deprecated_prefix_by_default " ],
88
+ [AC_MSG_ERROR([--enable-prte-prefix-by-default cannot be used with --enable-mpirun-prefix-by-default or --enable-orterun-prefix-by-default. Please only specify --enable-prte-prefix-by-default.])])
89
+
90
+ internal_prrte_happy= " yes"
91
+ AS_IF([test " $enable_internal_rte " = " no" ],
92
+ [internal_prrte_happy= " no" ])
93
+
94
+ internal_prrte_args= " --with-proxy-version-string=$OPAL_VERSION --with-proxy-package-name=\" Open MPI\" --with-proxy-bugreport=\" https://www.open-mpi.org/community/help/\" "
95
+ internal_prrte_libs=
96
+
97
+ # Set --enable-prte-prefix-by-default to the deprecated options,
98
+ # if they were specified. Otherwise, set it to enabled if the
99
+ # user did not specify an option. PRTE defaults to not enabling
100
+ # prefix-by-default, but open mpi wants that behavior.
101
+ AS_IF([test -n " $deprecated_prefix_by_default " ],
102
+ [internal_prrte_args= " internal_prrte_args --enable-prte-prefix-by-default=$deprecated_prefix_by_default " ],
103
+ [test -z " $enable_prte_prefix_by_default " ],
104
+ [internal_prrte_args= " $internal_prrte_args --enable-prte-prefix-by-default" ])
105
+
106
+ AS_IF([test " $opal_libevent_mode " = " internal" ],
107
+ [internal_prrte_args= " $internal_prrte_args --with-libevent-header=$opal_libevent_header "
108
+ internal_prrte_libs= " $internal_prrte_libs $opal_libevent_LIBS " ])
109
+
110
+ AS_IF([test " $opal_hwloc_mode " = " internal" ],
111
+ [internal_prrte_args= " $internal_prrte_args --with-hwloc-header=$opal_hwloc_header "
112
+ internal_prrte_libs= " $internal_prrte_libs $opal_hwloc_LIBS " ])
113
+
114
+ AS_IF([test " $opal_pmix_mode " = " internal" ],
115
+ [internal_prrte_args= " $internal_prrte_args --with-pmix-header=$opal_pmix_header "
116
+ internal_prrte_libs= " $internal_prrte_libs $opal_pmix_LIBS " ])
117
+
118
+ AS_IF([test " $internal_prrte_happy " = " yes" ],
119
+ [AC_MSG_CHECKING([if PMIx version is 4.0.0 or greater])
120
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[# include <pmix_version.h>]],
89
121
[[
90
122
# if PMIX_VERSION_MAJOR < 4L
91
123
# error "pmix API version is less than 4.0.0"
@@ -99,58 +131,36 @@ AC_DEFUN([OMPI_SETUP_PRRTE],[
99
131
AC_MSG_WARN([version of PMIx for strictly direct-launch purposes - e.g., using)])
100
132
AC_MSG_WARN([Slurm' s srun to launch the job - by configuring with the])
101
133
AC_MSG_WARN([--disable-internal-rte option.])
102
- AC_MSG_ERROR([Cannot continue])])
103
-
104
- CPPFLAGS= $opal_prrte_CPPFLAGS_save
105
-
106
- OPAL_VAR_SCOPE_POP
107
-
108
- opal_prrte_pmix_arg= " --with-pmix=$with_pmix "
109
- AS_IF([test ! -z " $with_pmix_libdir " ],
110
- [opal_prrte_pmix_arg= " $opal_prrte_pmix_arg --with-pmix-libdir=$with_pmix_libdir " ])])
111
-
112
- if test -z $enable_prte_prefix_by_default || test " $enable_prte_prefix_by_default " = " yes" ||
113
- test " $enable_orterun_prefix_given " = " yes" ; then
114
- opal_prrte_prefix_arg=" --enable-prte-prefix-by-default"
115
- else
116
- opal_prrte_prefix_arg=
117
- fi
118
-
119
- opal_prrte_args= " --prefix=$prefix --with-proxy-version-string=$OPAL_VERSION --with-proxy-package-name=\" Open MPI\" --with-proxy-bugreport=\" https://www.open-mpi.org/community/help/\" $opal_prrte_prefix_arg $opal_prrte_libevent_arg $opal_prrte_hwloc_arg $opal_prrte_pmix_arg "
120
- AS_IF([test " $enable_debug " = " yes" ],
121
- [opal_prrte_args= " --enable-debug $opal_prrte_args "
122
- CFLAGS= " $OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS -g" ],
123
- [opal_prrte_args= " --disable-debug $opal_prrte_args "
124
- CFLAGS= " $OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS " ])
125
- AS_IF([test " $with_devel_headers " = " yes" ],
126
- [opal_prrte_args= " --with-devel-headers $opal_prrte_args " ])
127
- if test ! -z $with_prrte_platform && test " $with_prrte_platform " ! = " yes" ; then
128
- opal_prrte_args=" $opal_prrte_args --with-platform=$with_prrte_platform "
129
- fi
130
- # add the extra libs
131
- opal_prrte_args= " $opal_prrte_args --with-prte-extra-lib=\" $opal_prrte_extra_libs \" --with-prte-extra-ltlib=\" $opal_prrte_extra_ltlibs \" "
132
-
133
- AC_MSG_CHECKING([final prrte configure args])
134
- AC_MSG_RESULT([$opal_prrte_args ])
135
-
136
- CPPFLAGS= " -I$OPAL_TOP_SRCDIR -I$OPAL_TOP_BUILDDIR -I$OPAL_TOP_SRCDIR /opal/include -I$OPAL_TOP_BUILDDIR /opal/include $CPPFLAGS "
137
- OPAL_CONFIG_SUBDIR([prrte],
138
- [$opal_prrte_args $opal_subdir_args ' CFLAGS=$CFLAGS' ' CPPFLAGS=$CPPFLAGS' ],
139
- [opal_prrte_happy= 1], [opal_prrte_happy= 0])
140
-
141
- OPAL_SUMMARY_ADD([[Miscellaneous]],[[PRRTE]],[prrte],[yes])],
142
- [OPAL_SUMMARY_ADD([[Miscellaneous]],[[PRRTE]],[prrte],[no (disabled)])
143
- AC_MSG_RESULT([no (disabled)])
144
- ompi_want_prrte= no])
145
-
146
- CFLAGS= $opal_prrte_save_CFLAGS
147
- CPPFLAGS= $opal_prrte_save_CPPFLAGS
148
- LDFLAGS= $opal_prrte_save_LDFLAGS
149
- LIBS= $opal_prrte_save_LIBS
150
- enable_dlopen= $opal_prrte_save_enable_dlopen
151
- enable_mca_dso= $opal_prrte_save_enable_mca_dso
152
- enable_mca_static= $opal_prrte_save_enable_mca_static
134
+ AC_MSG_ERROR([Cannot continue])])])
153
135
154
- OPAL_VAR_SCOPE_POP
136
+ dnl AS_IF([test ! -z $with_prrte_platform && test " $with_prrte_platform " != " yes" ],
137
+ dnl [internal_prrte_args= " $internal_prrte_args --with-platform=$with_prrte_platform " ])
138
+
139
+ # add the extra libs
140
+ internal_prrte_args= " $internal_prrte_args --with-prte-extra-lib=\" $internal_prrte_libs \" --with-prte-extra-ltlib=\" $internal_prrte_libs \" "
141
+
142
+ # Pass all our compiler/linker flags to PRRTE, so that it
143
+ # picks up how to build an internal HWLOC, libevent, and PMIx, plus
144
+ # picks up any user-specified compiler flags from the master
145
+ # configure run.
146
+ export CFLAGS CPPFLAGS LDFLAGS
147
+ PAC_CONFIG_SUBDIR_ARGS([3rd-party/prrte], [$internal_prrte_args ],
148
+ [[--with-libevent= internal], [--with-hwloc= internal],
149
+ [--with-libevent= external], [--with-hwloc= external],
150
+ [--with-pmix= internal], [--with-pmix= external],
151
+ [--with-platform= .* ]],
152
+ [], [internal_prrte_happy= " no" ])
153
+ OPAL_3RDPARTY_DIST_SUBDIRS= " $OPAL_3RDPARTY_DIST_SUBDIRS prrte"
155
154
155
+ AS_IF([test " $internal_prrte_happy " = " no" -a " $enable_internal_rte " != " no" ],
156
+ [AC_MSG_ERROR([PRRTE configuration failed. Cannot continue.])])
157
+
158
+ AS_IF([test " $internal_prrte_happy " = " yes" ],
159
+ [OPAL_3RDPARTY_SUBDIRS= " $OPAL_3RDPARTY_SUBDIRS prrte"
160
+ $1 ],
161
+ [$2 ])
162
+
163
+ OPAL_SUMMARY_ADD([[Miscellaneous]], [[PRRTE]], [prrte], [$internal_prrte_happy ])
164
+
165
+ OPAL_VAR_SCOPE_POP
156
166
])
0 commit comments