1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480
|
<!DOCTYPE html>
<html class="writer-html5" lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.7.2. Installation options — OpenPMIx 5.0.5 documentation</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css" />
<!--[if lt IE 9]>
<script src="../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/sphinx_highlight.js"></script>
<script src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="5.7.3. Run-time system support" href="runtime.html" />
<link rel="prev" title="5.7.1. configure CLI option conventions" href="conventions.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home">
OpenPMIx
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../quickstart.html">1. Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../getting-help.html">2. Getting help</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../release-notes/index.html">3. Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../exceptions.html">4. Exceptions to the PMIx Standard</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">5. Building and installing PMIx</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../quickstart.html">5.1. Installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../definitions.html">5.2. Definitions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../filesystem-requirements.html">5.3. Filesystem requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="../vpath-builds.html">5.4. VPATH builds</a></li>
<li class="toctree-l2"><a class="reference internal" href="../compilers-and-flags.html">5.5. Specifying compilers and flags</a></li>
<li class="toctree-l2"><a class="reference internal" href="../required-support-libraries.html">5.6. Required support libraries</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="index.html">5.7. <code class="docutils literal notranslate"><span class="pre">configure</span></code> command line options</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="conventions.html">5.7.1. <code class="docutils literal notranslate"><span class="pre">configure</span></code> CLI option conventions</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">5.7.2. Installation options</a></li>
<li class="toctree-l3"><a class="reference internal" href="runtime.html">5.7.3. Run-time system support</a></li>
<li class="toctree-l3"><a class="reference internal" href="required-support-libraries.html">5.7.4. CLI Options for required support libraries</a></li>
<li class="toctree-l3"><a class="reference internal" href="rpath-and-runpath.html">5.7.5. Linker “rpath” and “runpath” functionality</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../configure-output-summary.html">5.8. <code class="docutils literal notranslate"><span class="pre">configure</span></code> output summary</a></li>
<li class="toctree-l2"><a class="reference internal" href="../make-targets.html">5.9. <code class="docutils literal notranslate"><span class="pre">make</span></code> targets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../installation-location.html">5.10. Installation location</a></li>
<li class="toctree-l2"><a class="reference internal" href="../packagers.html">5.11. Advice for packagers</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../how-things-work/index.html">6. How Things Work</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../release-notes.html">7. Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../history.html">8. History</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../versions.html">9. Version Numbers and Binary Compatibility</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../mca.html">10. The Modular Component Architecture (MCA)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../building-apps/index.html">11. Building PMIx applications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../developers/index.html">12. Developer’s guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../contributing.html">13. Contributing to OpenPMIx</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../license.html">14. License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../security.html">15. OpenPMIx Security Policy</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../news/index.html">16. News</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../man/index.html">17. OpenPMIx manual pages</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">OpenPMIx</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../index.html"><span class="section-number">5. </span>Building and installing PMIx</a></li>
<li class="breadcrumb-item"><a href="index.html"><span class="section-number">5.7. </span><code class="docutils literal notranslate"><span class="pre">configure</span></code> command line options</a></li>
<li class="breadcrumb-item active"><span class="section-number">5.7.2. </span>Installation options</li>
<li class="wy-breadcrumbs-aside">
<a href="../../_sources/installing-pmix/configure-cli-options/installation.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<style>
.wy-table-responsive table td,.wy-table-responsive table th{white-space:normal}
</style><div class="section" id="installation-options">
<span id="label-building-installation-cli-options"></span><h1><span class="section-number">5.7.2. </span>Installation options<a class="headerlink" href="#installation-options" title="Permalink to this heading"></a></h1>
<p>The following are general installation command line options that can
be used with <code class="docutils literal notranslate"><span class="pre">configure</span></code>:</p>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">--prefix=DIR</span></code>:
Install PMIx into the base directory named <code class="docutils literal notranslate"><span class="pre">DIR</span></code>. Hence, PMIx
will place its executables in <code class="docutils literal notranslate"><span class="pre">DIR/bin</span></code>, its header files in
<code class="docutils literal notranslate"><span class="pre">DIR/include</span></code>, its libraries in <code class="docutils literal notranslate"><span class="pre">DIR/lib</span></code>, etc.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Also see the section on <a class="reference internal" href="../installation-location.html#building-pmix-installation-location-label"><span class="std std-ref">installation location</span></a> for more
information on the installation prefix.</p>
</div>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">--disable-shared</span></code>: By default, PMIx builds a
shared library, and all components are included as part of those
shared library. This switch disables this default; it is really
only useful when used with <code class="docutils literal notranslate"><span class="pre">--enable-static</span></code>. Specifically, this
option does <em>not</em> imply <code class="docutils literal notranslate"><span class="pre">--enable-static</span></code>; enabling static
libraries and disabling shared libraries are two independent
options.</p>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p><a class="reference internal" href="../packagers.html#label-install-packagers-dso-or-not"><span class="std std-ref">See this section</span></a> for
advice to packagers about this CLI option.</p>
</div>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">--enable-static</span></code>:
Build PMIx as a static library, and statically link in
all components. Note that this option does <em>not</em> imply
<code class="docutils literal notranslate"><span class="pre">--disable-shared</span></code>; enabling static libraries and disabling shared
libraries are two independent options.</p>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p><a class="reference internal" href="../packagers.html#label-install-packagers-dso-or-not"><span class="std std-ref">See this section</span></a> for
advice to packagers about this CLI option.</p>
</div>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">--disable-wrapper-runpath</span></code> / <code class="docutils literal notranslate"><span class="pre">--disable-wrapper-rpath</span></code>: By
default, the wrapper compiler (<code class="docutils literal notranslate"><span class="pre">pmixcc</span></code>) will explicitly add
“runpath” and “rpath” linker flags when linking user executables on
systems that support them. That is, the created executables will
include a filesystem path reference to the location of PMIx’s
libraries in the application executable itself. This means that the
user does not have to set <code class="docutils literal notranslate"><span class="pre">LD_LIBRARY_PATH</span></code> to find PMIx’s
libraries, which can be helpful if they are installed in a location
that the run-time linker does not search by default.</p>
<p>Using the <code class="docutils literal notranslate"><span class="pre">--disable-wrapper-r*path</span></code> options will prevent the
wrappers from explicitly adding one or both of these linker flags.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>By default, the wrapper compiler prefers “runpath”
behavior over “rpath” behavior.</p>
<ul class="simple">
<li><p>Using <code class="docutils literal notranslate"><span class="pre">--disable-wrapper-runpath</span></code> alters this
preference: explicit “runpath” linker flags will not be
added by the wrapper. However, “rpath” flags may still
be added, if the platform supports them.</p></li>
<li><p>Using both <code class="docutils literal notranslate"><span class="pre">--disable-wrapper-runpath</span></code> <em>and</em>
<code class="docutils literal notranslate"><span class="pre">--disable-wrapper-rpath</span></code> will prevent the wrapper
from explicitly adding “runpath” <em>and</em> “rpath” linker
flags.</p></li>
</ul>
</div>
<div class="admonition caution">
<p class="admonition-title">Caution</p>
<p>Even if the wrapper compiler does not explicitly add
“runpath” or “rpath” linker flags, the local compiler,
linker, and/or operating system may implicitly enable
either “runpath” or “rpath” behavior when linking.</p>
</div>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>The <code class="docutils literal notranslate"><span class="pre">--disable-wrapper-runpath</span></code> and
<code class="docutils literal notranslate"><span class="pre">--disable-wrapper-rpath</span></code> CLI options <em>only</em> affect
the flags that the wrapper compiler uses when
building PMIx-based applications. These options do
not affect how PMIx is built (to
include the wrapper compiler itself).</p>
<p>See the <a class="reference internal" href="rpath-and-runpath.html#building-pmix-cli-options-rpath-and-runpath-label"><span class="std std-ref">Linker “rpath” and “runpath”
functionality</span></a>
section for details on how “rpath” and “runpath”
affect the building and linking of PMIx itself.</p>
</div>
<p>When either of “runpath” or “rpath” behaviors are enabled, the
applications will have the filesystem path location of the PMIx
library hard-coded into a PMIx-based application. The
most notable differences between “runpath” and “rpath” behavior are:</p>
<ul>
<li><p>runpath</p>
<blockquote>
<div><ol class="arabic simple">
<li><p>The run-time linker first searches the paths in the
<code class="docutils literal notranslate"><span class="pre">LD_LIBRARY_PATH</span></code> environment variable for the relevant PMIx
library.</p></li>
<li><p>If not found there, the run-time linker falls back to checking
the hard-coded location for the relevant PMIx
library.</p></li>
</ol>
</div></blockquote>
</li>
<li><p>rpath</p>
<blockquote>
<div><ol class="arabic simple">
<li><p>The run-time linker first checks the hard-coded location for
the relevant PMIx library.</p></li>
<li><p>If not found there, the run-time linker falls back to
searching the paths in the <code class="docutils literal notranslate"><span class="pre">LD_LIBRARY_PATH</span></code> environment
variable for the relevant PMIx library.</p></li>
</ol>
</div></blockquote>
</li>
</ul>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>There are other, subtle differences between “runpath”
and “rpath” which are out of scope for this
documentation. You may wish to consult other sources
for more information.</p>
<p>For example, a decent set of explanations can be found
in the slides for a Linux course entitled “Building and
Using Shared Libraries on Linux // <a class="reference external" href="https://man7.org/training/download/shlib_dynlinker_slides.pdf">Shared Libraries:
The Dynamic Linker</a>”.</p>
</div>
<p>For example, consider that you install PMIx vA.B.0 and
compile/link your PMIx-based application against it. Later, you
install PMIx vA.B.1 to a different installation prefix (e.g.,
<code class="docutils literal notranslate"><span class="pre">/opt/pmix/A.B.1</span></code> vs. <code class="docutils literal notranslate"><span class="pre">/opt/pmix/A.B.0</span></code>), and you leave
the old installation intact.</p>
<p>In the runpath case, you can set the <code class="docutils literal notranslate"><span class="pre">LD_LIBRARY_PATH</span></code> environment
variable to point to the A.B.1 installation, and then your
application will use those libraries, since the runtime will search
the paths in <code class="docutils literal notranslate"><span class="pre">LD_LIBRARY_PATH</span></code> first.</p>
<p>In the rpath case, since the run-time linker searches the
<code class="docutils literal notranslate"><span class="pre">/opt/pmix/A.B.0</span></code> location that is hard-coded in your
application first, your application will use the libraries from your
A.B.0 installation (regardless of the value of the
<code class="docutils literal notranslate"><span class="pre">LD_LIBRARY_PATH</span></code> environment variable).</p>
<p>Note that in both cases, however, if you remove the original A.B.0
installation and set <code class="docutils literal notranslate"><span class="pre">LD_LIBRARY_PATH</span></code> to point to the A.B.1
installation, your application will use the A.B.1 libraries.</p>
<p>As noted above, both runpath/rpath behaviors can be disabled via
<code class="docutils literal notranslate"><span class="pre">--disable-wrapper-rpath</span></code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You can also <a class="reference internal" href="../../building-apps/customizing-wrappers.html#label-customizing-wrapper-compiler"><span class="std std-ref">customize the compiler/linker flags
that are used by the wrapper compilers</span></a> to build PMIx-based
applications.</p>
</div>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">--enable-dlopen</span></code>: Enable PMIx to load components as
standalone Dynamic Shared Objects (DSOs) at run-time. This option
is enabled by default.</p>
<p>The opposite of this option, <code class="docutils literal notranslate"><span class="pre">--disable-dlopen</span></code>, causes the following:</p>
<ol class="arabic simple">
<li><p>PMIx will not attempt to open any DSOs at run-time.</p></li>
<li><p>configure behaves as if the <code class="docutils literal notranslate"><span class="pre">--enable-mca-static</span></code> argument was set.</p></li>
<li><p>configure will ignore the <code class="docutils literal notranslate"><span class="pre">--enable-mca-dso</span></code> argument.</p></li>
</ol>
<p>See the description of <code class="docutils literal notranslate"><span class="pre">--enable-mca-static</span></code> / <code class="docutils literal notranslate"><span class="pre">--enable-mca-dso</span></code> for
more information.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This option does <em>not</em> change how PMIx’s libraries
(<code class="docutils literal notranslate"><span class="pre">libpmix</span></code>, for example) will be built. You can change
whether PMIx builds static or dynamic libraries via
the <code class="docutils literal notranslate"><span class="pre">--enable|disable-static</span></code> and
<code class="docutils literal notranslate"><span class="pre">--enable|disable-shared</span></code> arguments.</p>
</div>
</li>
</ul>
<ul id="building-pmix-cli-options-mca-dso-label">
<li><p><code class="docutils literal notranslate"><span class="pre">--enable-mca-dso[=LIST]</span></code> and <code class="docutils literal notranslate"><span class="pre">--enable-mca-static[=LIST]</span></code>
These two options, along with <code class="docutils literal notranslate"><span class="pre">--enable-mca-no-build</span></code>, govern the
behavior of how PMIx’s frameworks and components are built.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">--enable-mca-dso</span></code> option specifies which frameworks and/or
components are built as Dynamic Shared Objects (DSOs).
Specifically, DSOs are built as “plugins” outside of the core PMIx
library, and are loaded by PMIx at run time.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">--enable-mca-static</span></code> option specifies which frameworks and/or
components are built as part of the core PMIx library (i.e.,
they are not built as DSOs, and therefore do not need to be
separately discovered and opened at run time).</p>
<p>Both options can be used one of two ways:</p>
<ol class="arabic simple">
<li><p><code class="docutils literal notranslate"><span class="pre">--enable-mca-OPTION</span></code> (with no value)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">--enable-mca-OPTION=LIST</span></code></p></li>
</ol>
<p><code class="docutils literal notranslate"><span class="pre">--enable-mca-OPTION=no</span></code> or <code class="docutils literal notranslate"><span class="pre">--disable-mca-OPTION</span></code> are both legal
options, but have no impact on the selection logic described below.
Only affirmative options change the selection process.</p>
<p><code class="docutils literal notranslate"><span class="pre">LIST</span></code> is a comma-delimited list of PMIx frameworks and/or
framework+component tuples. Examples:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ptl</span></code> specifies the entire PTL framework</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ptl-client</span></code> specifies just the CLIENT component in the PTL framework</p></li>
<li><dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">plog,ptl-client</span></code> specifies the entire PLOG framework and the CLIENT</dt><dd><p>component in the PTL framework</p>
</dd>
</dl>
</li>
</ul>
<p>PMIx’s <code class="docutils literal notranslate"><span class="pre">configure</span></code> script uses the values of these two options
when evaluating each component to determine how it should be built
by evaluating these conditions in order:</p>
<ol class="arabic simple">
<li><p>If an individual component’s build behavior has been specified
via these two options, <code class="docutils literal notranslate"><span class="pre">configure</span></code> uses that behavior.</p></li>
<li><p>Otherwise, if the component is in a framework whose build
behavior has been specified via these two options, <code class="docutils literal notranslate"><span class="pre">configure</span></code>
uses that behavior.</p></li>
<li><p>Otherwise, <code class="docutils literal notranslate"><span class="pre">configure</span></code> uses the global default build behavior.</p></li>
</ol>
<p>At each level of the selection process, if the component is
specified to be built as both a static and dso component, the static
option will win.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>As of PMIx v4.2.3, <code class="docutils literal notranslate"><span class="pre">configure</span></code>’s global default
is to build all components as static (i.e., part of the
PMIx core library, not as DSOs). Prior to PMIx
4.2.3, the global default behavior was to build
most components as DSOs.</p>
</div>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>If the <code class="docutils literal notranslate"><span class="pre">--disable-dlopen</span></code> option is specified, then
PMIx will not be able to search for DSOs at run
time, and the value of the <code class="docutils literal notranslate"><span class="pre">--enable-mca-dso</span></code>
option will be silently ignored.</p>
</div>
<p>Some examples:</p>
<ol class="arabic">
<li><p>Default to building all components as static (i.e., as part of
the PMIx core libraries – no DSOs):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>shell$ ./configure
</pre></div>
</div>
</li>
<li><p>Build all components as static, except the CLIENT PTL, which will be
built as a DSO:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>shell$ ./configure --enable-mca-dso=ptl-client
</pre></div>
</div>
</li>
<li><p>Build all components as static, except all PTL components, which
will be built as DSOs:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>shell$ ./configure --enable-mca-dso=ptl
</pre></div>
</div>
</li>
<li><p>Build all components as static, except all PLOG components and the
CLIENT PTL component, which will be built as DSOs:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>shell$ ./configure --enable-mca-dso=plog,ptl-client
</pre></div>
</div>
</li>
<li><p>Build all PTLs as static, except the CLIENT PTL, as the
<code class="docutils literal notranslate"><span class="pre"><framework-component></span></code> option is more specific than the
<code class="docutils literal notranslate"><span class="pre"><framework></span></code> option:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>shell$ ./configure --enable-mca-dso=ptl --enable-mca-static=ptl-client
</pre></div>
</div>
</li>
<li><p>Build the CLIENT PTL as static, because the static option at the
same level always wins:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>shell$ ./configure --enable-mca-dso=ptl-client --enable-mca-static=ptl-client
</pre></div>
</div>
</li>
</ol>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p><a class="reference internal" href="../packagers.html#label-install-packagers-dso-or-not"><span class="std std-ref">See this section</span></a> for
advice to packagers about this CLI option.</p>
</div>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">--enable-mca-no-build=LIST</span></code>: Comma-separated list of
<code class="docutils literal notranslate"><span class="pre"><framework>-<component></span></code> pairs that will not be built. For
example, <code class="docutils literal notranslate"><span class="pre">--enable-mca-no-build=plog-syslog,psensor-file</span></code> will
disable building both the <code class="docutils literal notranslate"><span class="pre">syslog</span></code> PLOG component and the
<code class="docutils literal notranslate"><span class="pre">file</span></code> PSENSOR component.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This option is typically only useful for components that
would otherwise be built. For example, if you are on a
machine without OmniPath support, it is not necessary to
specify:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>shell$ ./configure --enable-mca-no-build=pnet-opa
</pre></div>
</div>
<p>because the <code class="docutils literal notranslate"><span class="pre">configure</span></code> script will naturally see that
you do not have support for OmniPath and will
automatically skip the <code class="docutils literal notranslate"><span class="pre">opa</span></code> PNET component.</p>
</div>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">--disable-show-load-errors-by-default</span></code>:
Set the default value of the <code class="docutils literal notranslate"><span class="pre">mca_base_component_show_load_errors</span></code>
MCA variable: the <code class="docutils literal notranslate"><span class="pre">--enable</span></code> form of this option sets the MCA
variable to true, the <code class="docutils literal notranslate"><span class="pre">--disable</span></code> form sets the MCA variable to
false. The MCA <code class="docutils literal notranslate"><span class="pre">mca_base_component_show_load_errors</span></code> variable can
still be overridden at run time via the usual MCA-variable-setting
mechanisms; this configure option simply sets the default value.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">--disable</span></code> form of this option is intended for PMIx
packagers who tend to enable support for many different types of
networks and systems in their packages. For example, consider a
packager who includes support for both the FOO and BAR networks in
their PMIx package, both of which require support libraries
(<code class="docutils literal notranslate"><span class="pre">libFOO.so</span></code> and <code class="docutils literal notranslate"><span class="pre">libBAR.so</span></code>). If an end user only has BAR
hardware, they likely only have <code class="docutils literal notranslate"><span class="pre">libBAR.so</span></code> available on their
systems – not <code class="docutils literal notranslate"><span class="pre">libFOO.so</span></code>. Disabling load errors by default will
prevent the user from seeing potentially confusing warnings about
the FOO components failing to load because <code class="docutils literal notranslate"><span class="pre">libFOO.so</span></code> is not
available on their systems.</p>
<p>Conversely, system administrators tend to build an PMIx that is
targeted at their specific environment, and contains few (if any)
components that are not needed. In such cases, they might want
their users to be warned that the FOO network components failed to
load (e.g., if <code class="docutils literal notranslate"><span class="pre">libFOO.so</span></code> was mistakenly unavailable), because PMIx
may otherwise silently fail to provide support for that network.</p>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">--with-platform=FILE</span></code>:
Load configure options for the build from <code class="docutils literal notranslate"><span class="pre">FILE</span></code>. Options on the
command line that are not in <code class="docutils literal notranslate"><span class="pre">FILE</span></code> are also used. Options on the
command line and in <code class="docutils literal notranslate"><span class="pre">FILE</span></code> are replaced by what is in <code class="docutils literal notranslate"><span class="pre">FILE</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">--with-libpmix-name=STRING</span></code>:
Replace <code class="docutils literal notranslate"><span class="pre">libpmix.*</span></code> with <code class="docutils literal notranslate"><span class="pre">libSTRING.*</span></code>. This is provided as a convenience mechanism
for third-party packagers of PMIx that might want to rename
these libraries for their own purposes. This option is <em>not</em>
intended for typical users of PMIx.</p></li>
</ul>
</div>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="conventions.html" class="btn btn-neutral float-left" title="5.7.1. configure CLI option conventions" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="runtime.html" class="btn btn-neutral float-right" title="5.7.3. Run-time system support" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>© Copyright 2014-2025, The OpenPMIx Community.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
|