File: installation.html

package info (click to toggle)
openmpi 5.0.7-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 202,312 kB
  • sloc: ansic: 612,441; makefile: 42,495; sh: 11,230; javascript: 9,244; f90: 7,052; java: 6,404; perl: 5,154; python: 1,856; lex: 740; fortran: 61; cpp: 20; tcl: 12
file content (480 lines) | stat: -rw-r--r-- 31,649 bytes parent folder | download
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 &mdash; 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">&lt;framework-component&gt;</span></code> option is more specific than the
<code class="docutils literal notranslate"><span class="pre">&lt;framework&gt;</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">&lt;framework&gt;-&lt;component&gt;</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>&#169; 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>