Upgrade MPIs on linux

This commit is contained in:
Bassem Girgis
2025-03-19 12:53:34 -05:00
parent d29ef955f5
commit a6198ecc7b
5503 changed files with 962014 additions and 56494 deletions

View File

@@ -0,0 +1,197 @@
<!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>11.2. GitHub, Git, and related topics &mdash; PMIx Reference Run Time Environment 3.0.8 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="11.3. Manually installing the GNU Autootools" href="gnu-autotools.html" />
<link rel="prev" title="11.1. Prerequisites" href="prerequisites.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">
PMIx Reference Run Time Environment
</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="../release-notes.html">2. Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../getting-help.html">3. Getting help</a></li>
<li class="toctree-l1"><a class="reference internal" href="../install.html">4. Installing PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration.html">5. PRRTE DVM Configuration</a></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="../hosts/index.html">7. Host specification</a></li>
<li class="toctree-l1"><a class="reference internal" href="../placement/index.html">8. Process placement</a></li>
<li class="toctree-l1"><a class="reference internal" href="../notifications.html">9. Notifications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../session-directory.html">10. Session directory</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">11. Developers guide</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="prerequisites.html">11.1. Prerequisites</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">11.2. GitHub, Git, and related topics</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#github">11.2.1. GitHub</a></li>
<li class="toctree-l3"><a class="reference internal" href="#git-commits-open-source-contributor-s-declaration">11.2.2. Git commits: open source / contributors declaration</a></li>
<li class="toctree-l3"><a class="reference internal" href="#git-branch-scheme">11.2.3. Git branch scheme</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gnu-autotools.html">11.3. Manually installing the GNU Autootools</a></li>
<li class="toctree-l2"><a class="reference internal" href="sphinx.html">11.4. Installing and running Sphinx (building the PRRTE docs)</a></li>
<li class="toctree-l2"><a class="reference internal" href="rst-for-markdown-expats.html">11.5. ReStructured Text for those who know Markdown</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing.html">12. Contributing to PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../license.html">13. License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../man/index.html">14. PRRTE manual pages</a></li>
<li class="toctree-l1"><a class="reference internal" href="../versions.html">15. Software Version Numbers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../news/index.html">16. News</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">PMIx Reference Run Time Environment</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">11. </span>Developers guide</a></li>
<li class="breadcrumb-item active"><span class="section-number">11.2. </span>GitHub, Git, and related topics</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/developers/git-github.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="github-git-and-related-topics">
<h1><span class="section-number">11.2. </span>GitHub, Git, and related topics<a class="headerlink" href="#github-git-and-related-topics" title="Permalink to this heading"></a></h1>
<div class="section" id="github">
<h2><span class="section-number">11.2.1. </span>GitHub<a class="headerlink" href="#github" title="Permalink to this heading"></a></h2>
<p>PRRTEs Git repositories are <a class="reference external" href="https://github.com/openpmix/prrte">hosted at GitHub</a>.</p>
<ol class="arabic">
<li><p>First, you will need a Git client. We recommend getting the latest
version available. If you do not have the command <code class="docutils literal notranslate"><span class="pre">git</span></code> in your
path, you will likely need to download and install Git.</p></li>
<li><p><a class="reference external" href="https://github.com/openpmix/prrte/">prrte</a> is the main PRRTE
repository where most active development is done. Git clone this
repository. Note that the use of the <code class="docutils literal notranslate"><span class="pre">--recursive</span></code> CLI option is
necessary because PRRTE uses Git submodules:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>shell$ git clone --recursive https://github.com/openpmix/prrte.git
</pre></div>
</div>
</li>
</ol>
<p>Note that Git is natively capable of using many forms of web
proxies. If your network setup requires the user of a web proxy,
<a class="reference external" href="https://git-scm.com/">consult the Git documentation for more details</a>.</p>
</div>
<div class="section" id="git-commits-open-source-contributor-s-declaration">
<h2><span class="section-number">11.2.2. </span>Git commits: open source / contributors declaration<a class="headerlink" href="#git-commits-open-source-contributor-s-declaration" title="Permalink to this heading"></a></h2>
<p>In order to remain open source, all new commits to the PRRTE
repository must include a <code class="docutils literal notranslate"><span class="pre">Signed-off-by:</span></code> line, indicating the
submitters agreement to the <a class="reference internal" href="../contributing.html#contributing-contributors-declaration-label"><span class="std std-ref">PRRTE Contributors Declaration</span></a>.</p>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>You can use the <code class="docutils literal notranslate"><span class="pre">-s</span></code> option to <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">commit</span></code> to
automatically add the <code class="docutils literal notranslate"><span class="pre">Signed-off-by:</span></code> line to your commit
message.</p>
</div>
</div>
<div class="section" id="git-branch-scheme">
<span id="git-github-branch-scheme-label"></span><h2><span class="section-number">11.2.3. </span>Git branch scheme<a class="headerlink" href="#git-branch-scheme" title="Permalink to this heading"></a></h2>
<p>Generally, PRRTE has two types of branches in its Git repository:</p>
<ol class="arabic simple">
<li><p><code class="docutils literal notranslate"><span class="pre">main</span></code>:</p>
<ul class="simple">
<li><p>All active development occurs on the <code class="docutils literal notranslate"><span class="pre">main</span></code> branch (new features,
bug fixes, etc.).</p></li>
</ul>
</li>
<li><p>Release branches of the form <code class="docutils literal notranslate"><span class="pre">vMAJOR.MINOR.x</span></code> (e.g., <code class="docutils literal notranslate"><span class="pre">v4.0.x</span></code>,
<code class="docutils literal notranslate"><span class="pre">v4.1.x</span></code>, <code class="docutils literal notranslate"><span class="pre">v5.0.x</span></code>).</p>
<ul class="simple">
<li><p>The <code class="docutils literal notranslate"><span class="pre">.x</span></code> suffix indicates that this branch is used to create
all releases in the PRRTE vMAJOR.MINOR series.</p></li>
<li><p>Periodically, the PRRTE community will make a new release
branch, typically from <code class="docutils literal notranslate"><span class="pre">main</span></code>.</p></li>
<li><p>A Git tag of the form <code class="docutils literal notranslate"><span class="pre">vMAJOR.MINOR.RELEASE</span></code> is used to
indicate the specific commit on a release branch from where
official PRRTE release tarball was created (e.g., <code class="docutils literal notranslate"><span class="pre">v4.1.0</span></code>,
<code class="docutils literal notranslate"><span class="pre">v4.1.1</span></code>, <code class="docutils literal notranslate"><span class="pre">v4.1.2</span></code>, etc.).</p></li>
</ul>
</li>
</ol>
</div>
</div>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="prerequisites.html" class="btn btn-neutral float-left" title="11.1. Prerequisites" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="gnu-autotools.html" class="btn btn-neutral float-right" title="11.3. Manually installing the GNU Autootools" 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 2003-2025, The PRRTE 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>

View File

@@ -0,0 +1,484 @@
<!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>11.3. Manually installing the GNU Autootools &mdash; PMIx Reference Run Time Environment 3.0.8 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="11.4. Installing and running Sphinx (building the PRRTE docs)" href="sphinx.html" />
<link rel="prev" title="11.2. GitHub, Git, and related topics" href="git-github.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">
PMIx Reference Run Time Environment
</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="../release-notes.html">2. Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../getting-help.html">3. Getting help</a></li>
<li class="toctree-l1"><a class="reference internal" href="../install.html">4. Installing PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration.html">5. PRRTE DVM Configuration</a></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="../hosts/index.html">7. Host specification</a></li>
<li class="toctree-l1"><a class="reference internal" href="../placement/index.html">8. Process placement</a></li>
<li class="toctree-l1"><a class="reference internal" href="../notifications.html">9. Notifications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../session-directory.html">10. Session directory</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">11. Developers guide</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="prerequisites.html">11.1. Prerequisites</a></li>
<li class="toctree-l2"><a class="reference internal" href="git-github.html">11.2. GitHub, Git, and related topics</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">11.3. Manually installing the GNU Autootools</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#use-a-package-manager">11.3.1. Use a package manager</a></li>
<li class="toctree-l3"><a class="reference internal" href="#autotools-versions">11.3.2. Autotools versions</a></li>
<li class="toctree-l3"><a class="reference internal" href="#checking-your-versions">11.3.3. Checking your versions</a></li>
<li class="toctree-l3"><a class="reference internal" href="#installing-the-gnu-autotools-from-source">11.3.4. Installing the GNU Autotools from source</a></li>
<li class="toctree-l3"><a class="reference internal" href="#build-and-install-ordering">11.3.5. Build and install ordering</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="sphinx.html">11.4. Installing and running Sphinx (building the PRRTE docs)</a></li>
<li class="toctree-l2"><a class="reference internal" href="rst-for-markdown-expats.html">11.5. ReStructured Text for those who know Markdown</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing.html">12. Contributing to PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../license.html">13. License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../man/index.html">14. PRRTE manual pages</a></li>
<li class="toctree-l1"><a class="reference internal" href="../versions.html">15. Software Version Numbers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../news/index.html">16. News</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">PMIx Reference Run Time Environment</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">11. </span>Developers guide</a></li>
<li class="breadcrumb-item active"><span class="section-number">11.3. </span>Manually installing the GNU Autootools</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/developers/gnu-autotools.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="manually-installing-the-gnu-autootools">
<span id="developers-installing-autotools-label"></span><h1><span class="section-number">11.3. </span>Manually installing the GNU Autootools<a class="headerlink" href="#manually-installing-the-gnu-autootools" title="Permalink to this heading"></a></h1>
<p>There is enough detail in building the GNU Autotools that it warrants
its own section.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>As noted above, you only need to read/care about this
section if you are building PRRTE from a Git clone. End
users installing an PRRTE distribution tarball do <em>not</em>
need to have the GNU Autotools installed.</p>
</div>
<div class="section" id="use-a-package-manager">
<h2><span class="section-number">11.3.1. </span>Use a package manager<a class="headerlink" href="#use-a-package-manager" title="Permalink to this heading"></a></h2>
<p>It is recommended that you use your Linux distributions package
manager, or Homebrew or MacPorts on macOS to install recent versions
of GNU Autoconf, Automake, and Libtool.</p>
<p>If you cannot, keep reading in this section to see how to build and
install these applications manually (i.e., download the source from
the internet and build/install it yourself).</p>
</div>
<div class="section" id="autotools-versions">
<h2><span class="section-number">11.3.2. </span>Autotools versions<a class="headerlink" href="#autotools-versions" title="Permalink to this heading"></a></h2>
<p>The following tools are required for developers to compile PRRTE
from its repository sources (users who download PRRTE tarballs do
not need these tools - they are only required for developers working
on the internals of PRRTE itself):</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Software package</p></th>
<th class="head"><p>Notes</p></th>
<th class="head"><p>URL</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>GNU m4</p></td>
<td><p>See version chart below</p></td>
<td><p><a class="reference external" href="https://ftp.gnu.org/gnu/m4/">https://ftp.gnu.org/gnu/m4/</a></p></td>
</tr>
<tr class="row-odd"><td><p>GNU Autoconf</p></td>
<td><p>See version chart below</p></td>
<td><p><a class="reference external" href="https://ftp.gnu.org/gnu/autoconf/">https://ftp.gnu.org/gnu/autoconf/</a></p></td>
</tr>
<tr class="row-even"><td><p>GNU Automake</p></td>
<td><p>See version chart below</p></td>
<td><p><a class="reference external" href="https://ftp.gnu.org/gnu/automake/">https://ftp.gnu.org/gnu/automake/</a></p></td>
</tr>
<tr class="row-odd"><td><p>GNU Libtool</p></td>
<td><p>See version chart below</p></td>
<td><p><a class="reference external" href="https://ftp.gnu.org/gnu/libtool/">https://ftp.gnu.org/gnu/libtool/</a></p></td>
</tr>
</tbody>
</table>
<p>The table below lists the versions that are used to make nightly
snapshot and official release PRRTE tarballs. Other versions of the
tools <em>may</em> work for some (but almost certainly not all) platforms;
the ones listed below are the versions that we know work across an
extremely wide variety of platforms and environments.</p>
<p>To strengthen the above point: the core PRRTE developers typically
use very, very recent versions of the GNU tools. There are known bugs
in older versions of the GNU tools that PRRTE no longer compensates
for (it seemed senseless to indefinitely support patches for ancient
versions of Autoconf, for example).</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>You <strong>will</strong> have problems if you do not use recent
versions of the GNU Autotools.</p>
</div>
<p>That being said, <code class="docutils literal notranslate"><span class="pre">autogen.pl</span></code> and <code class="docutils literal notranslate"><span class="pre">configure.ac</span></code> scripts tend to
be a bit lenient and enforce slightly older minimum versions than the
ones listed below. This is because such older versions still make
usable PRRTE builds on many platforms - especially Linux on x86_64
with GNU compilers - and are convenient for developers whose Linux
distribution may not have as recent as the versions listed below (but are
recent enough to produce a working version for their platform).</p>
<p>To be clear: the versions listed below are required to support a wide
variety of platforms and environments, and are used to make nightly
and official release tarballs. When building PRRTE, YMMV when using
versions older than those listed below — especially if you are
not building on Linux x86_64 with the GNU compilers.</p>
<p>Using older versions is unsupported. If you run into problems, upgrade
to at least the versions listed below.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You may need to scroll right in the following table.</p>
</div>
<div class="error admonition">
<p class="admonition-title">PRRTE Docs TODO</p>
<p>The table below is almost certainly wrong; it has all the values
from Open MPI. Need to update the table below with the appropriate
values for PRRTE.</p>
</div>
<table class="docutils align-default">
<colgroup>
<col style="width: 14%" />
<col style="width: 14%" />
<col style="width: 14%" />
<col style="width: 14%" />
<col style="width: 14%" />
<col style="width: 14%" />
<col style="width: 14%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>PRRTE</p></th>
<th class="head"><p>M4</p></th>
<th class="head"><p>Autoconf</p></th>
<th class="head"><p>Automake</p></th>
<th class="head"><p>Libtool</p></th>
<th class="head"><p>Flex</p></th>
<th class="head"><p>Sphinx</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>v1.0.x</p></td>
<td><p>NA</p></td>
<td><p>2.58 - 2.59</p></td>
<td><p>1.7 - 1.9.6</p></td>
<td><p>1.5.16 - 1.5.22</p></td>
<td><p>2.5.4</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-odd"><td><p>v1.1.x</p></td>
<td><p>NA</p></td>
<td><p>2.59</p></td>
<td><p>1.9.6</p></td>
<td><p>1.5.16 - 1.5.22</p></td>
<td><p>2.5.4</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-even"><td><p>v1.2.x</p></td>
<td><p>NA</p></td>
<td><p>2.59</p></td>
<td><p>1.9.6</p></td>
<td><p>1.5.22 - 2.1a</p></td>
<td><p>2.5.4</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-odd"><td><p>v1.3.x</p></td>
<td><p>1.4.11</p></td>
<td><p>2.63</p></td>
<td><p>1.10.1</p></td>
<td><p>2.2.6b</p></td>
<td><p>2.5.4</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-even"><td><p>v1.4.x</p></td>
<td><p>1.4.11</p></td>
<td><p>2.63</p></td>
<td><p>1.10.3</p></td>
<td><p>2.2.6b</p></td>
<td><p>2.5.4</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-odd"><td><p>v1.5.x for x=0-4</p></td>
<td><p>1.4.13</p></td>
<td><p>2.65</p></td>
<td><p>1.11.1</p></td>
<td><p>2.2.6b</p></td>
<td><p>2.5.4</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-even"><td><p>v1.5.x for x&gt;=5</p></td>
<td><p>1.4.16</p></td>
<td><p>2.68</p></td>
<td><p>1.11.3</p></td>
<td><p>2.4.2</p></td>
<td><p>2.5.35</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-odd"><td><p>v1.6.x</p></td>
<td><p>1.4.16</p></td>
<td><p>2.68</p></td>
<td><p>1.11.3</p></td>
<td><p>2.4.2</p></td>
<td><p>2.5.35</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-even"><td><p>v1.7.x</p></td>
<td><p>1.4.16</p></td>
<td><p>2.69</p></td>
<td><p>1.12.2</p></td>
<td><p>2.4.2</p></td>
<td><p>2.5.35</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-odd"><td><p>v1.8.x</p></td>
<td><p>1.4.16</p></td>
<td><p>2.69</p></td>
<td><p>1.12.2</p></td>
<td><p>2.4.2</p></td>
<td><p>2.5.35</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-even"><td><p>v1.10.x</p></td>
<td><p>1.4.16</p></td>
<td><p>2.69</p></td>
<td><p>1.12.2</p></td>
<td><p>2.4.2</p></td>
<td><p>2.5.35</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-odd"><td><p>v2.0.x through v4.y</p></td>
<td><p>1.4.17</p></td>
<td><p>2.69</p></td>
<td><p>1.15</p></td>
<td><p>2.4.6</p></td>
<td><p>2.5.35</p></td>
<td><p>NA</p></td>
</tr>
<tr class="row-even"><td><p>v5.0.x</p></td>
<td><p>1.4.17</p></td>
<td><p>2.69</p></td>
<td><p>1.15</p></td>
<td><p>2.4.6</p></td>
<td><p>2.5.35</p></td>
<td><p>4.2.0</p></td>
</tr>
<tr class="row-odd"><td><p>Git main</p></td>
<td><p>1.4.17</p></td>
<td><p>2.69</p></td>
<td><p>1.15</p></td>
<td><p>2.4.6</p></td>
<td><p>2.5.35</p></td>
<td><p>4.2.0</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="checking-your-versions">
<h2><span class="section-number">11.3.3. </span>Checking your versions<a class="headerlink" href="#checking-your-versions" title="Permalink to this heading"></a></h2>
<p>You can check what versions of the Autotools you have installed with
the following:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span>m4<span class="w"> </span>--version
shell$<span class="w"> </span>autoconf<span class="w"> </span>--version
shell$<span class="w"> </span>automake<span class="w"> </span>--version
shell$<span class="w"> </span>libtoolize<span class="w"> </span>--version
</pre></div>
</div>
</div>
<div class="section" id="installing-the-gnu-autotools-from-source">
<h2><span class="section-number">11.3.4. </span>Installing the GNU Autotools from source<a class="headerlink" href="#installing-the-gnu-autotools-from-source" title="Permalink to this heading"></a></h2>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Most operating system packaging systems (to include Homebrew
and MacPorts on MacOS) install recent-enough versions of the
GNU Autotools. You should generally only install the GNU
Autotools manually if you cant use your operating system
packaging system to install them for you.</p>
</div>
<p>The GNU Autotools sources can be can be downloaded from:</p>
<ul class="simple">
<li><p><a class="reference external" href="https://ftp.gnu.org/gnu/autoconf/">https://ftp.gnu.org/gnu/autoconf/</a></p></li>
<li><p><a class="reference external" href="https://ftp.gnu.org/gnu/automake/">https://ftp.gnu.org/gnu/automake/</a></p></li>
<li><p><a class="reference external" href="https://ftp.gnu.org/gnu/libtool/">https://ftp.gnu.org/gnu/libtool/</a></p></li>
<li><p>And if you need it: <a class="reference external" href="https://ftp.gnu.org/gnu/m4/">https://ftp.gnu.org/gnu/m4/</a></p></li>
</ul>
<p>It is certainly easiest to download/build/install all four of these
tools together. But note that PRRTE has no specific m4
requirements; it is only listed here because Autoconf requires minimum
versions of GNU m4. Hence, you may or may not <em>need</em> to actually
install a new version of GNU m4. That being said, if you are confused
or dont know, just install the latest GNU m4 with the rest of the GNU
Autotools and everything will work out fine.</p>
</div>
<div class="section" id="build-and-install-ordering">
<h2><span class="section-number">11.3.5. </span>Build and install ordering<a class="headerlink" href="#build-and-install-ordering" title="Permalink to this heading"></a></h2>
<p>You must build and install the GNU Autotools in the following order:</p>
<ol class="arabic simple">
<li><p>m4</p></li>
<li><p>Autoconf</p></li>
<li><p>Automake</p></li>
<li><p>Libtool</p></li>
</ol>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>You <em>must</em> install the last three tools (Autoconf,
Automake, Libtool) into the same prefix directory.
These three tools are somewhat inter-related, and if
theyre going to be used together, they <em>must</em> share a
common installation prefix.</p>
</div>
<p>You can install m4 anywhere as long as it can be found in the path;
it may be convenient to install it in the same prefix as the other
three. Or you can use any recent-enough m4 that is in your path.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>It is <em>strongly</em> encouraged that you do <strong>not</strong> install
your new versions over the OS-installed versions. This could cause
other things on your system to break. Instead, install into
<code class="docutils literal notranslate"><span class="pre">$HOME/local</span></code>, or <code class="docutils literal notranslate"><span class="pre">/usr/local</span></code>, or wherever else you tend to
install “local” kinds of software.</p>
<p>In doing so, be sure to prefix your <code class="docutils literal notranslate"><span class="pre">$PATH</span></code> with the directory
where they are installed. For example, if you install into
<code class="docutils literal notranslate"><span class="pre">$HOME/local</span></code>, you may want to edit your shell startup file
(<code class="docutils literal notranslate"><span class="pre">.bashrc</span></code>, <code class="docutils literal notranslate"><span class="pre">.cshrc</span></code>, <code class="docutils literal notranslate"><span class="pre">.tcshrc</span></code>, etc.) to have something
like</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># For bash/sh:</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="nv">$HOME</span>/local/bin:<span class="nv">$PATH</span>
<span class="c1"># For csh/tcsh:</span>
<span class="nb">set</span><span class="w"> </span><span class="nv">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">(</span><span class="nv">$HOME</span>/local/bin<span class="w"> </span><span class="nv">$path</span><span class="o">)</span>
</pre></div>
</div>
<p>Ensure to set your <code class="docutils literal notranslate"><span class="pre">$PATH</span></code> <em>before</em> you configure/build/install
the four packages.</p>
</div>
<p>All four packages require two simple commands to build and
install:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>M4_DIRECTORY
shell$<span class="w"> </span>./configure<span class="w"> </span>--prefix<span class="o">=</span>PREFIX
shell$<span class="w"> </span>make<span class="w"> </span>all<span class="w"> </span>install
</pre></div>
</div>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>If you are using a shell that does not automatically
re-index the <code class="docutils literal notranslate"><span class="pre">$PATH</span></code> (e.g., the <code class="docutils literal notranslate"><span class="pre">csh</span></code> or <code class="docutils literal notranslate"><span class="pre">tcsh</span></code>
shells), be sure to run the <code class="docutils literal notranslate"><span class="pre">rehash</span></code> command before
you install the next package so that the executables
that were just installed can be found by the next
package.</p>
</div>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># Make $PATH be re-indexed if necessary, e.g., via &quot;rehash&quot;</span>
shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>AUTOCONF_DIRECTORY
shell$<span class="w"> </span>./configure<span class="w"> </span>--prefix<span class="o">=</span>PREFIX
shell$<span class="w"> </span>make<span class="w"> </span>all<span class="w"> </span>install
</pre></div>
</div>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># Make $PATH be re-indexed if necessary, e.g., via &quot;rehash&quot;</span>
shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>AUTOMAKE_DIRECTORY
shell$<span class="w"> </span>./configure<span class="w"> </span>--prefix<span class="o">=</span>PREFIX
shell$<span class="w"> </span>make<span class="w"> </span>all<span class="w"> </span>install
</pre></div>
</div>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># Make $PATH be re-indexed if necessary, e.g., via &quot;rehash&quot;</span>
shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>LIBTOOL_DIRECTORY
shell$<span class="w"> </span>./configure<span class="w"> </span>--prefix<span class="o">=</span>PREFIX
shell$<span class="w"> </span>make<span class="w"> </span>all<span class="w"> </span>install
</pre></div>
</div>
</div>
</div>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="git-github.html" class="btn btn-neutral float-left" title="11.2. GitHub, Git, and related topics" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="sphinx.html" class="btn btn-neutral float-right" title="11.4. Installing and running Sphinx (building the PRRTE docs)" 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 2003-2025, The PRRTE 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>

View File

@@ -0,0 +1,148 @@
<!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>11. Developers guide &mdash; PMIx Reference Run Time Environment 3.0.8 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="11.1. Prerequisites" href="prerequisites.html" />
<link rel="prev" title="10. Session directory" href="../session-directory.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">
PMIx Reference Run Time Environment
</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="../release-notes.html">2. Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../getting-help.html">3. Getting help</a></li>
<li class="toctree-l1"><a class="reference internal" href="../install.html">4. Installing PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration.html">5. PRRTE DVM Configuration</a></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="../hosts/index.html">7. Host specification</a></li>
<li class="toctree-l1"><a class="reference internal" href="../placement/index.html">8. Process placement</a></li>
<li class="toctree-l1"><a class="reference internal" href="../notifications.html">9. Notifications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../session-directory.html">10. Session directory</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">11. Developers guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="prerequisites.html">11.1. Prerequisites</a></li>
<li class="toctree-l2"><a class="reference internal" href="git-github.html">11.2. GitHub, Git, and related topics</a></li>
<li class="toctree-l2"><a class="reference internal" href="gnu-autotools.html">11.3. Manually installing the GNU Autootools</a></li>
<li class="toctree-l2"><a class="reference internal" href="sphinx.html">11.4. Installing and running Sphinx (building the PRRTE docs)</a></li>
<li class="toctree-l2"><a class="reference internal" href="rst-for-markdown-expats.html">11.5. ReStructured Text for those who know Markdown</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing.html">12. Contributing to PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../license.html">13. License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../man/index.html">14. PRRTE manual pages</a></li>
<li class="toctree-l1"><a class="reference internal" href="../versions.html">15. Software Version Numbers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../news/index.html">16. News</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">PMIx Reference Run Time Environment</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 active"><span class="section-number">11. </span>Developers guide</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/developers/index.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="developer-s-guide">
<h1><span class="section-number">11. </span>Developers guide<a class="headerlink" href="#developer-s-guide" title="Permalink to this heading"></a></h1>
<p>This section is here for those who are building/exploring the
internals of PRRTE in its source code form, most likely through a
developers tree (i.e., a Git clone).</p>
<p>If you are simply <em>using</em> PRRTE, you probably dont need to read this
section.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="prerequisites.html">11.1. Prerequisites</a></li>
<li class="toctree-l1"><a class="reference internal" href="git-github.html">11.2. GitHub, Git, and related topics</a></li>
<li class="toctree-l1"><a class="reference internal" href="gnu-autotools.html">11.3. Manually installing the GNU Autootools</a></li>
<li class="toctree-l1"><a class="reference internal" href="sphinx.html">11.4. Installing and running Sphinx (building the PRRTE docs)</a></li>
<li class="toctree-l1"><a class="reference internal" href="rst-for-markdown-expats.html">11.5. ReStructured Text for those who know Markdown</a></li>
</ul>
</div>
</div>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../session-directory.html" class="btn btn-neutral float-left" title="10. Session directory" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="prerequisites.html" class="btn btn-neutral float-right" title="11.1. Prerequisites" 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 2003-2025, The PRRTE 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>

View File

@@ -0,0 +1,265 @@
<!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>11.1. Prerequisites &mdash; PMIx Reference Run Time Environment 3.0.8 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="11.2. GitHub, Git, and related topics" href="git-github.html" />
<link rel="prev" title="11. Developers guide" href="index.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">
PMIx Reference Run Time Environment
</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="../release-notes.html">2. Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../getting-help.html">3. Getting help</a></li>
<li class="toctree-l1"><a class="reference internal" href="../install.html">4. Installing PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration.html">5. PRRTE DVM Configuration</a></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="../hosts/index.html">7. Host specification</a></li>
<li class="toctree-l1"><a class="reference internal" href="../placement/index.html">8. Process placement</a></li>
<li class="toctree-l1"><a class="reference internal" href="../notifications.html">9. Notifications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../session-directory.html">10. Session directory</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">11. Developers guide</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">11.1. Prerequisites</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#compilers">11.1.1. Compilers</a></li>
<li class="toctree-l3"><a class="reference internal" href="#gnu-autotools">11.1.2. GNU Autotools</a></li>
<li class="toctree-l3"><a class="reference internal" href="#perl">11.1.3. Perl</a></li>
<li class="toctree-l3"><a class="reference internal" href="#flex">11.1.4. Flex</a></li>
<li class="toctree-l3"><a class="reference internal" href="#sphinx-and-therefore-python">11.1.5. Sphinx (and therefore Python)</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="git-github.html">11.2. GitHub, Git, and related topics</a></li>
<li class="toctree-l2"><a class="reference internal" href="gnu-autotools.html">11.3. Manually installing the GNU Autootools</a></li>
<li class="toctree-l2"><a class="reference internal" href="sphinx.html">11.4. Installing and running Sphinx (building the PRRTE docs)</a></li>
<li class="toctree-l2"><a class="reference internal" href="rst-for-markdown-expats.html">11.5. ReStructured Text for those who know Markdown</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing.html">12. Contributing to PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../license.html">13. License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../man/index.html">14. PRRTE manual pages</a></li>
<li class="toctree-l1"><a class="reference internal" href="../versions.html">15. Software Version Numbers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../news/index.html">16. News</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">PMIx Reference Run Time Environment</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">11. </span>Developers guide</a></li>
<li class="breadcrumb-item active"><span class="section-number">11.1. </span>Prerequisites</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/developers/prerequisites.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="prerequisites">
<h1><span class="section-number">11.1. </span>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this heading"></a></h1>
<div class="section" id="compilers">
<h2><span class="section-number">11.1.1. </span>Compilers<a class="headerlink" href="#compilers" title="Permalink to this heading"></a></h2>
<p>Although it should probably be assumed, youll need a C compiler that
supports C99.</p>
</div>
<div class="section" id="gnu-autotools">
<h2><span class="section-number">11.1.2. </span>GNU Autotools<a class="headerlink" href="#gnu-autotools" title="Permalink to this heading"></a></h2>
<p>When building PRRTE from its repository sources, the GNU Autotools
must be installed (i.e., <a class="reference external" href="https://www.gnu.org/software/autoconf/">GNU Autoconf</a>, <a class="reference external" href="https://www.gnu.org/software/automake/">GNU Automake</a>, and <a class="reference external" href="https://www.gnu.org/software/libtool/">GNU Libtool</a>).</p>
<table class="colwidths-given docutils align-default">
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Tool</p></th>
<th class="head"><p>Minimum version</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Autoconf</p></td>
<td><p>2.69.0</p></td>
</tr>
<tr class="row-odd"><td><p>Automake</p></td>
<td><p>1.13.4</p></td>
</tr>
<tr class="row-even"><td><p>Libtool</p></td>
<td><p>2.4.2</p></td>
</tr>
</tbody>
</table>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The GNU Autotools are <em>not</em> required when building PRRTE
from distribution tarballs. PRRTE distribution tarballs
are bootstrapped such that end-users do not need to have the
GNU Autotools installed.</p>
</div>
<p>You can generally install GNU Autoconf, Automake, and Libtool via your
Linux distribution native package system, or via Homebrew or MacPorts
on MacOS. This usually “just works.”</p>
<p>If you run into problems with the GNU Autotools, or need to download /
build them manually, see the <a class="reference internal" href="gnu-autotools.html#developers-installing-autotools-label"><span class="std std-ref">how to build and install GNU
Autotools section</span></a> for much
more detail.</p>
</div>
<div class="section" id="perl">
<h2><span class="section-number">11.1.3. </span>Perl<a class="headerlink" href="#perl" title="Permalink to this heading"></a></h2>
<p>PRRTE still uses Perl for a few of its build scripts (most notably,
<code class="docutils literal notranslate"><span class="pre">autogen.pl</span></code>).</p>
<p>Generally speaking, any recent-ish release of Perl 5 should be
sufficient to correctly execute PRRTEs Perl scripts.</p>
</div>
<div class="section" id="flex">
<h2><span class="section-number">11.1.4. </span>Flex<a class="headerlink" href="#flex" title="Permalink to this heading"></a></h2>
<p>Minimum supported version: 2.5.4.</p>
<p><a class="reference external" href="https://github.com/westes/flex">Flex</a> is used during the
compilation of a developers checkout (it is not used to build
official distribution tarballs). Other flavors of lex are <em>not</em>
supported: given the choice of making parsing code portable between
all flavors of lex and doing more interesting work on PRRTE, we
greatly prefer the latter.</p>
<p>Note that no testing has been performed to see what the minimum
version of Flex is required by PRRTE. We suggest that you use
v2.5.35 at the earliest.</p>
<p>For now, PRRTE will allow developer builds with Flex 2.5.4. This
is primarily motivated by the fact that RedHat/CentOS 5 ships with
Flex 2.5.4. It is likely that someday PRRTE developer builds will
require Flex version &gt;=2.5.35.</p>
<p>Note that the <code class="docutils literal notranslate"><span class="pre">flex</span></code>-generated code generates some compiler warnings
on some platforms, but the warnings do not seem to be consistent or
uniform on all platforms, compilers, and flex versions. As such, we
have done little to try to remove those warnings.</p>
<p>If you do not have Flex installed and cannot easily install it via
your operating systems packaging system (to include Homebrew or
MacPorts on MacOS), see <a class="reference external" href="https://github.com/westes/flex">the Flex Github repository</a>.</p>
</div>
<div class="section" id="sphinx-and-therefore-python">
<h2><span class="section-number">11.1.5. </span>Sphinx (and therefore Python)<a class="headerlink" href="#sphinx-and-therefore-python" title="Permalink to this heading"></a></h2>
<p><a class="reference external" href="https://www.sphinx-doc.org/">Sphinx</a> is a Python-based tool used to
generate both the HTML version of the documentation (that you are
reading right now) and the nroff man pages.</p>
<p>Official PRRTE distribution tarballs contain pre-built HTML
documentation and man pages. This means that similar to the GNU
Autotools end users do not need to have Sphinx installed, but will
still have both the HTML documentation and man pages installed as part
of the normal configure / build / install process.</p>
<p>However, the HTML documentation and man pages are <em>not</em> stored in PRRTEs
Git repository; only the ReStructred Text source code of the
documentation is in the Git repository. Hence, if you are building
PRRTE from a Git clone, you will need Sphinx (and some Python
modules) in order to build the HTML documentation and man pages.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>Most systems do not have Sphinx and/or the required
Python modules installed by default. <a class="reference internal" href="sphinx.html#developers-installing-sphinx-label"><span class="std std-ref">See the
Installing Sphinx section</span></a> for details on
how to install Sphinx and the required Python modules.</p>
</div>
<p>If <code class="docutils literal notranslate"><span class="pre">configure</span></code> is able to find Sphinx and the required Python
modules, it will automatically generate the HTML documentation and man
pages during the normal build procedure (i.e., during <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">all</span></code>).
If <code class="docutils literal notranslate"><span class="pre">configure</span></code> is <em>not</em> able to find Sphinx and/or the required
Python modules, it will simply skip building the documentation.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you have built/installed PRRTE from a Git clone and
unexpectedly did not have the man pages installed, it is
likely that you do not have Sphinx and/or the required
Python modules available.</p>
<p><a class="reference internal" href="sphinx.html#developers-installing-sphinx-label"><span class="std std-ref">See the Installing Sphinx section</span></a> for details on how
to install Sphinx and the required Python modules.</p>
</div>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">dist</span></code> will fail if <code class="docutils literal notranslate"><span class="pre">configure</span></code> did not find
Sphinx and/or the required Python modules.
Specifically: if <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">dist</span></code> is not able to generate
the most up-to-date HTML documentation and man pages,
you cannot build a distribution tarball. <strong>This is an
intentional design decision.</strong></p>
</div>
</div>
</div>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="index.html" class="btn btn-neutral float-left" title="11. Developers guide" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="git-github.html" class="btn btn-neutral float-right" title="11.2. GitHub, Git, and related topics" 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 2003-2025, The PRRTE 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>

View File

@@ -0,0 +1,557 @@
<!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>11.5. ReStructured Text for those who know Markdown &mdash; PMIx Reference Run Time Environment 3.0.8 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="12. Contributing to PRRTE" href="../contributing.html" />
<link rel="prev" title="11.4. Installing and running Sphinx (building the PRRTE docs)" href="sphinx.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">
PMIx Reference Run Time Environment
</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="../release-notes.html">2. Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../getting-help.html">3. Getting help</a></li>
<li class="toctree-l1"><a class="reference internal" href="../install.html">4. Installing PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration.html">5. PRRTE DVM Configuration</a></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="../hosts/index.html">7. Host specification</a></li>
<li class="toctree-l1"><a class="reference internal" href="../placement/index.html">8. Process placement</a></li>
<li class="toctree-l1"><a class="reference internal" href="../notifications.html">9. Notifications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../session-directory.html">10. Session directory</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">11. Developers guide</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="prerequisites.html">11.1. Prerequisites</a></li>
<li class="toctree-l2"><a class="reference internal" href="git-github.html">11.2. GitHub, Git, and related topics</a></li>
<li class="toctree-l2"><a class="reference internal" href="gnu-autotools.html">11.3. Manually installing the GNU Autootools</a></li>
<li class="toctree-l2"><a class="reference internal" href="sphinx.html">11.4. Installing and running Sphinx (building the PRRTE docs)</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">11.5. ReStructured Text for those who know Markdown</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#whitespace-and-indenting">11.5.1. Whitespace and indenting</a></li>
<li class="toctree-l3"><a class="reference internal" href="#fixed-width-font">11.5.2. Fixed width font</a></li>
<li class="toctree-l3"><a class="reference internal" href="#italics">11.5.3. Italics</a></li>
<li class="toctree-l3"><a class="reference internal" href="#boldface">11.5.4. Boldface</a></li>
<li class="toctree-l3"><a class="reference internal" href="#chapter-and-section-delimiters">11.5.5. Chapter and section delimiters</a></li>
<li class="toctree-l3"><a class="reference internal" href="#multi-line-code-fixed-width-font">11.5.6. Multi-line code/fixed-width font</a></li>
<li class="toctree-l3"><a class="reference internal" href="#un-numbered-bullets">11.5.7. Un-numbered bullets</a></li>
<li class="toctree-l3"><a class="reference internal" href="#numbered-bullets">11.5.8. Numbered bullets:</a></li>
<li class="toctree-l3"><a class="reference internal" href="#comments">11.5.9. Comments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#including-files">11.5.10. Including files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#hyperlinks-to-urls">11.5.11. Hyperlinks to URLs</a></li>
<li class="toctree-l3"><a class="reference internal" href="#hyperlinks-to-anchors">11.5.12. Hyperlinks to anchors</a></li>
<li class="toctree-l3"><a class="reference internal" href="#hyperlinks-to-other-rst-pages">11.5.13. Hyperlinks to other (RST) pages</a></li>
<li class="toctree-l3"><a class="reference internal" href="#macros">11.5.14. Macros</a></li>
<li class="toctree-l3"><a class="reference internal" href="#brightly-colored-boxes">11.5.15. Brightly-colored boxes</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing.html">12. Contributing to PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../license.html">13. License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../man/index.html">14. PRRTE manual pages</a></li>
<li class="toctree-l1"><a class="reference internal" href="../versions.html">15. Software Version Numbers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../news/index.html">16. News</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">PMIx Reference Run Time Environment</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">11. </span>Developers guide</a></li>
<li class="breadcrumb-item active"><span class="section-number">11.5. </span>ReStructured Text for those who know Markdown</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/developers/rst-for-markdown-expats.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="restructured-text-for-those-who-know-markdown">
<span id="developers-rst-for-markdown-expats"></span><h1><span class="section-number">11.5. </span>ReStructured Text for those who know Markdown<a class="headerlink" href="#restructured-text-for-those-who-know-markdown" title="Permalink to this heading"></a></h1>
<p>You can think of RST as “Markdown, but much better”. Meaning:</p>
<ol class="arabic simple">
<li><p>RST is basically just as simple as Markdown</p></li>
<li><p>But RST is both more precise, and has more available formatting
constructs (without getting crazy complicated)</p></li>
</ol>
<p>The full Sphinx / RST documentation is available here:
<a class="reference external" href="https://www.sphinx-doc.org/en/master/index.html">https://www.sphinx-doc.org/en/master/index.html</a></p>
<p>If youre familiar with Markdown, the following sections contain some
tips to get you started in RST.</p>
<div class="section" id="whitespace-and-indenting">
<h2><span class="section-number">11.5.1. </span>Whitespace and indenting<a class="headerlink" href="#whitespace-and-indenting" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: Whitespace and indenting generally doesnt matter in most
cases. It does matter with bullets and sub bullets, but the rules
get pretty weird, and vary between different Markdown renderers.</p></li>
<li><p>RST: <strong>Indenting matters</strong>. A lot. Just like Python. In
general, you indent all RST text to keep it within the same level.
For example, all this text would be a single paragraph</p>
<p><strong>Blank lines also matter</strong>. A lot. You use blank lines to
delimit sections within an indenting level. For example, the
blank line before this paragraph denotes a paragraph break.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>RST was created by the Python community. Hence,
whitespace is quite important.</p>
<ul class="simple">
<li><p>Indenting matters</p></li>
<li><p>Blank lines between content matter</p></li>
</ul>
</div>
</li>
</ul>
<p>Using a blank line and outdenting indicates the end of the previous
item. For example, this paragraph is not part of the MD/RST
bulleted list.</p>
</div>
<div class="section" id="fixed-width-font">
<h2><span class="section-number">11.5.2. </span>Fixed width font<a class="headerlink" href="#fixed-width-font" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: Use single quotes:</p>
<div class="highlight-md notranslate"><div class="highlight"><pre><span></span><span class="sb">`hello world`</span>
</pre></div>
</div>
</li>
<li><p>RST: Use a pair of single quotes:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="s">``hello world``</span>
</pre></div>
</div>
</li>
</ul>
</div>
<div class="section" id="italics">
<h2><span class="section-number">11.5.3. </span>Italics<a class="headerlink" href="#italics" title="Permalink to this heading"></a></h2>
<ul class="simple">
<li><p>MD: <code class="docutils literal notranslate"><span class="pre">*hello</span> <span class="pre">world*</span></code> or <code class="docutils literal notranslate"><span class="pre">_hello</span> <span class="pre">world_</span></code></p></li>
<li><p>RST: <code class="docutils literal notranslate"><span class="pre">*hello</span> <span class="pre">world*</span></code></p></li>
</ul>
</div>
<div class="section" id="boldface">
<h2><span class="section-number">11.5.4. </span>Boldface<a class="headerlink" href="#boldface" title="Permalink to this heading"></a></h2>
<ul class="simple">
<li><p>MD: <code class="docutils literal notranslate"><span class="pre">**hello</span> <span class="pre">world**</span></code></p></li>
<li><p>RST: Same as MD</p></li>
</ul>
</div>
<div class="section" id="chapter-and-section-delimiters">
<h2><span class="section-number">11.5.5. </span>Chapter and section delimiters<a class="headerlink" href="#chapter-and-section-delimiters" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: Either use one or more pound signs (#, ##, ###) to the left of
the line of text, or underline the line of text with pound signs</p></li>
<li><p>RST: Have a single line of text, underlined by non-ASCII
characters.</p>
<ul>
<li><p>The length of the underlying <em>must</em> be at least as long as the
line of text</p></li>
<li><p>Which non-ASCII character is used for the underlying does not
matter, but the order in which they are used denotes chapters
/ sections / subsections / etc.</p>
<p>In these PRRTE docs, the sequence of underline characters we use
are:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="gh">Chapter 1: hello world</span>
<span class="gh">======================</span>
</pre></div>
</div>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="gh">Section 1: hello world</span>
<span class="gh">----------------------</span>
</pre></div>
</div>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="gh">Subsection 1: hello world</span>
<span class="gh">^^^^^^^^^^^^^^^^^^^^^^^^^</span>
</pre></div>
</div>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="gh">Subsubsection 1: hello world</span>
<span class="gh">++++++++++++++++++++++++++++</span>
</pre></div>
</div>
<p>Meaning: underlines made of <code class="docutils literal notranslate"><span class="pre">=</span></code> denotes chapters, underlines
made of <code class="docutils literal notranslate"><span class="pre">-</span></code> denotes sections, underlines made of <code class="docutils literal notranslate"><span class="pre">^</span></code> denotes
subsections, and underlines made of <code class="docutils literal notranslate"><span class="pre">+</span></code> denote subsubsections.</p>
</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="multi-line-code-fixed-width-font">
<h2><span class="section-number">11.5.6. </span>Multi-line code/fixed-width font<a class="headerlink" href="#multi-line-code-fixed-width-font" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: Use three single quotes to delimit blocks of text. Optionally
include a token keyword to denote the syntax highlighting to use
inside that block.</p>
<div class="highlight-md notranslate"><div class="highlight"><pre><span></span><span class="sb">```c</span>
<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;Hello world</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">}</span>
<span class="sb">```</span>
</pre></div>
</div>
</li>
<li><p>RST: Use <code class="docutils literal notranslate"><span class="pre">..</span> <span class="pre">code-block::</span> <span class="pre">KEYWORD</span></code> to start a section of code.</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="ow">code-block</span><span class="p">::</span> c
int main() { printf(&quot;Hello world\n&quot;); return 0 }
</pre></div>
</div>
<ul>
<li><p>KEYWORD indicates which syntax highlighting to use (e.g., <code class="docutils literal notranslate"><span class="pre">c</span></code>,
<code class="docutils literal notranslate"><span class="pre">c++</span></code> <code class="docutils literal notranslate"><span class="pre">make</span></code>, <code class="docutils literal notranslate"><span class="pre">sh</span></code>, <code class="docutils literal notranslate"><span class="pre">ini</span></code>, <code class="docutils literal notranslate"><span class="pre">Fortran</span></code>, <code class="docutils literal notranslate"><span class="pre">diff</span></code>,
<code class="docutils literal notranslate"><span class="pre">python</span></code>, <code class="docutils literal notranslate"><span class="pre">java</span></code>, <code class="docutils literal notranslate"><span class="pre">rst</span></code>, … etc.).</p></li>
<li><p>KEYWORD can be omitted if no specific highlighting is to be
used.</p></li>
<li><p>There <em>MUST</em> be a blank line after the <code class="docutils literal notranslate"><span class="pre">code-block</span></code> line.</p></li>
<li><p>The lines in the block must be indented to the same column as the
first <code class="docutils literal notranslate"><span class="pre">c</span></code> in <code class="docutils literal notranslate"><span class="pre">code-block</span></code>. For example:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="ow">code-block</span><span class="p">::</span> <span class="k">sh</span>
shell$<span class="w"> </span>tar<span class="w"> </span>xf<span class="w"> </span>prte-&lt;version&gt;.tar.bz2
shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>prte-&lt;version&gt;
shell$<span class="w"> </span>./configure<span class="w"> </span>--prefix<span class="o">=</span>&lt;path&gt;<span class="w"> </span><span class="p">|&amp;</span><span class="w"> </span>tee<span class="w"> </span>config.out
</pre></div>
</div>
<p>Note that the code block will be rendered at the same level as
where the first <code class="docutils literal notranslate"><span class="pre">.</span></code> of <code class="docutils literal notranslate"><span class="pre">..</span> <span class="pre">code-block::</span></code> starts. In this
case, the example code block will be rendered in the bulleted
item.</p>
</li>
</ul>
</li>
</ul>
<p>Whereas this parargraph and code block will be outside of the
above bulleted list:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span>tar<span class="w"> </span>xf<span class="w"> </span>prte-&lt;version&gt;.tar.bz2
shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>prte-&lt;version&gt;
shell$<span class="w"> </span>./configure<span class="w"> </span>--prefix<span class="o">=</span>&lt;path&gt;<span class="w"> </span><span class="p">|&amp;</span><span class="w"> </span>tee<span class="w"> </span>config.out
<span class="c1"># Fun note: the code-block can contain blank lines.</span>
</pre></div>
</div>
<p>The code-block is terminated by a blank line and then outdent back
to the same level as the first <code class="docutils literal notranslate"><span class="pre">.</span></code> in <code class="docutils literal notranslate"><span class="pre">..</span> <span class="pre">code-block::</span></code>.</p>
</div>
<div class="section" id="un-numbered-bullets">
<h2><span class="section-number">11.5.7. </span>Un-numbered bullets<a class="headerlink" href="#un-numbered-bullets" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: Start lines with <code class="docutils literal notranslate"><span class="pre">*</span></code> or <code class="docutils literal notranslate"><span class="pre">-</span></code></p></li>
<li><p>RST: Start lines with <code class="docutils literal notranslate"><span class="pre">*</span></code>. You can wrap lines at the same
indenting level to make paragraphs in the same bullet.</p>
<p>Having a blank line and then more text at the same indenting level
makes another paragraph in the same bullet. You even put other
directives in this same indenting level.</p>
<ul>
<li><p>For example, you can start a sub bullet.</p>
<p>This text is the next paragraph in the same sub bullet.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>This is a verbatim code block within this same sub bullet.
More about code-blocks below.
</pre></div>
</div>
<p>This is the next paragraph (after the code block) in the same
sub bullet.</p>
</li>
<li><p>If you start a new bullet, that terminates the previous bullet.</p></li>
<li><p>You <strong>MUST</strong> put blank lines between bullets!</p></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="numbered-bullets">
<h2><span class="section-number">11.5.8. </span>Numbered bullets:<a class="headerlink" href="#numbered-bullets" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: Start lines with <code class="docutils literal notranslate"><span class="pre">#</span></code></p></li>
<li><p>RST: Start lines with <code class="docutils literal notranslate"><span class="pre">#.</span></code></p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>Yes, the trailing <code class="docutils literal notranslate"><span class="pre">.</span></code> is important</p>
</div>
<p>For example:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="m">#.</span> Item number 1
<span class="m">#.</span> The second item
<span class="m">#.</span> A third item
</pre></div>
</div>
<p>All the same rules for indentation apply as described above.</p>
</li>
</ul>
</div>
<div class="section" id="comments">
<h2><span class="section-number">11.5.9. </span>Comments<a class="headerlink" href="#comments" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: Enclose content in <code class="docutils literal notranslate"><span class="pre">&lt;!--</span></code> and <code class="docutils literal notranslate"><span class="pre">--&gt;</span></code> (i.e., HTML comments,
but they are included in the output)</p></li>
<li><p>RST: Start a line with two periods and a space.</p>
<p>For example, the following block is a comment, and will not be
included in the output:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="cp">.. Hello world. This is a comment. This whole block is a</span>
<span class="cp"> comment. You can leave it here in the final document, and it</span>
<span class="cp"> will not be included in the rendered output.</span>
<span class="cp"> Your comment can even include blank lines. You terminate a</span>
<span class="cp"> comment -- just like most other things in RST -- by a blank</span>
<span class="cp"> line and then outdenting back out to the same column as the</span>
<span class="cp"> first &quot;.&quot;.</span>
This line is no longer part of the comment.
</pre></div>
</div>
</li>
</ul>
</div>
<div class="section" id="including-files">
<h2><span class="section-number">11.5.10. </span>Including files<a class="headerlink" href="#including-files" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: You cannot include files in Markdown.</p></li>
<li><p>RST: Use the <code class="docutils literal notranslate"><span class="pre">..</span> <span class="pre">include::</span> <span class="pre">FILENAME</span></code> directive. For example:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="ow">include</span><span class="p">::</span> features-extensions.rst
<span class="p">..</span> <span class="ow">include</span><span class="p">::</span> features-java.rst
</pre></div>
</div>
<p>Those directives include those 2 files right here in this RST file.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>Chapter/section/subsection delimiters will be
continued in those files as part of rendering this
file.</p>
</div>
</li>
</ul>
</div>
<div class="section" id="hyperlinks-to-urls">
<h2><span class="section-number">11.5.11. </span>Hyperlinks to URLs<a class="headerlink" href="#hyperlinks-to-urls" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD:</p>
<div class="highlight-md notranslate"><div class="highlight"><pre><span></span>[<span class="nt">this is the link text</span>](<span class="na">https://example.com/</span>)
</pre></div>
</div>
</li>
<li><p>RST:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="s">`this is the link text </span><span class="si">&lt;https://example.com/&gt;</span><span class="s">`_</span>
</pre></div>
</div>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>Yes, the trailing underscore in RST is important.
Its a little weird, but youll cope.</p>
</div>
</li>
</ul>
</div>
<div class="section" id="hyperlinks-to-anchors">
<h2><span class="section-number">11.5.12. </span>Hyperlinks to anchors<a class="headerlink" href="#hyperlinks-to-anchors" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: I forget offhand how to make anchors and links to them in MD.</p></li>
<li><p>RST: Use the <code class="docutils literal notranslate"><span class="pre">:ref:</span></code> directive.</p>
<p>Make an anchor like this:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="nt">_ANCHOR_NAME:</span>
</pre></div>
</div>
<p>It <em>must</em> start with and underscore and end with a colon.</p>
<p>Ive typically used anchor names that either begin with <code class="docutils literal notranslate"><span class="pre">label-</span></code>
or end in <code class="docutils literal notranslate"><span class="pre">-label</span></code> to make it blatantly obvious that its a
label. For example:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="nt">_building-and-installing-section-label:</span>
</pre></div>
</div>
<p>Then you can use the <code class="docutils literal notranslate"><span class="pre">:ref:</span></code> directive:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span>be sure to see :ref:`the VPATH build section
<span class="nt">&lt;building-and-installing-section-label&gt;</span>`.
</pre></div>
</div>
</li>
</ul>
</div>
<div class="section" id="hyperlinks-to-other-rst-pages">
<h2><span class="section-number">11.5.13. </span>Hyperlinks to other (RST) pages<a class="headerlink" href="#hyperlinks-to-other-rst-pages" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD:</p>
<div class="highlight-md notranslate"><div class="highlight"><pre><span></span>[<span class="nt">link text</span>](<span class="na">page_name</span>)
</pre></div>
</div>
</li>
<li><p>RST: Use the <code class="docutils literal notranslate"><span class="pre">:doc:</span></code> directive.</p>
<p>General format:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="na">:doc:</span><span class="nv">`link text &lt;PAGE_PATH&gt;`</span>
</pre></div>
</div>
<p>For example:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span>You should read <span class="na">:doc:</span><span class="nv">`the Developer&#39;s Guide &lt;/developers&gt;`</span>.
</pre></div>
</div>
<p>The page path is relative to the <code class="docutils literal notranslate"><span class="pre">docs</span></code> dir in the PRRTE git tree.</p>
</li>
</ul>
</div>
<div class="section" id="macros">
<h2><span class="section-number">11.5.14. </span>Macros<a class="headerlink" href="#macros" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: There are no macros in Markdown.</p></li>
<li><p>RST: We have defined a few PRRTE-specific macros in RST. You can
insert these macros anywhere in RST content text.</p>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">|ompi_ver|</span></code> is the full PRRTE version number, including
alpha/beta/rc/greek denotation. For example <code class="docutils literal notranslate"><span class="pre">5.0.0rc1</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">|ompi_series|</span></code> is the major/minor PRRTE version, e.g.,
<code class="docutils literal notranslate"><span class="pre">5.0.x</span></code>.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>Think twice about hard-coding the PRRTE version
number or series when referring to the current
version or series. It can be appropriate to
hard-code an “x.y.0” version to denote a
generational epoch, but in most other cases, you
probably want to use one of the macros.</p>
</div>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">|mdash|</span></code> is a unicode long dash, an “em” dash. Use it instead
of <code class="docutils literal notranslate"><span class="pre">--</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">|rarrow|</span></code> is a unicode right arrow. Use it instead of <code class="docutils literal notranslate"><span class="pre">-&gt;</span></code>
or <code class="docutils literal notranslate"><span class="pre">--&gt;</span></code>.</p></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="brightly-colored-boxes">
<h2><span class="section-number">11.5.15. </span>Brightly-colored boxes<a class="headerlink" href="#brightly-colored-boxes" title="Permalink to this heading"></a></h2>
<ul>
<li><p>MD: There are no brightly-colored boxes in MD.</p></li>
<li><p>RST: You can use various directives to make brightly-colored
“note” boxes (Called admonitions) in RST. For example:</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>a green box with a “!” icon</p>
<p>Standard indenting rules apply for the content in the box. You
can have multiple lines and multiple paragraphs, for example.</p>
<p>Yippee.</p>
<ul>
<li><p>You can even have bullets.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>You can even have code blocks inside the bullet inside the
caution box.
</pre></div>
</div>
</li>
<li><p>All the standard indenting rules apply.</p></li>
</ul>
</div>
<div class="admonition hint">
<p class="admonition-title">Hint</p>
<p>a green box with a “!” icon</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>a blue box with a “!” icon</p>
</div>
<div class="admonition caution">
<p class="admonition-title">Caution</p>
<p>an orange box with a “!” icon</p>
</div>
<div class="admonition attention">
<p class="admonition-title">Attention</p>
<p>an orange box with a “!” icon</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>an orange box with a “!” icon</p>
</div>
<div class="admonition error">
<p class="admonition-title">Error</p>
<p>a red box with a “!” icon</p>
</div>
<div class="admonition danger">
<p class="admonition-title">Danger</p>
<p>a red box with a “!” icon</p>
</div>
<div class="tip admonition">
<p class="admonition-title">Custom title</p>
<p>You can name this box whatever you want:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="ow">admonition</span><span class="p">::</span> Custom title
<span class="nc">:class:</span> tip
Content of your box here.
</pre></div>
</div>
<p>Custom text for this custom admonition. Note that the <code class="docutils literal notranslate"><span class="pre">:class:</span> <span class="pre">&lt;type&gt;</span></code>
will change the coloring to the color for the basic admonition of that
type. E.g., <code class="docutils literal notranslate"><span class="pre">:class:</span> <span class="pre">tip</span></code> makes the box be green.</p>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="sphinx.html" class="btn btn-neutral float-left" title="11.4. Installing and running Sphinx (building the PRRTE docs)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../contributing.html" class="btn btn-neutral float-right" title="12. Contributing to PRRTE" 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 2003-2025, The PRRTE 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>

View File

@@ -0,0 +1,372 @@
<!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>11.4. Installing and running Sphinx (building the PRRTE docs) &mdash; PMIx Reference Run Time Environment 3.0.8 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="11.5. ReStructured Text for those who know Markdown" href="rst-for-markdown-expats.html" />
<link rel="prev" title="11.3. Manually installing the GNU Autootools" href="gnu-autotools.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">
PMIx Reference Run Time Environment
</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="../release-notes.html">2. Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../getting-help.html">3. Getting help</a></li>
<li class="toctree-l1"><a class="reference internal" href="../install.html">4. Installing PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration.html">5. PRRTE DVM Configuration</a></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="../hosts/index.html">7. Host specification</a></li>
<li class="toctree-l1"><a class="reference internal" href="../placement/index.html">8. Process placement</a></li>
<li class="toctree-l1"><a class="reference internal" href="../notifications.html">9. Notifications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../session-directory.html">10. Session directory</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">11. Developers guide</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="prerequisites.html">11.1. Prerequisites</a></li>
<li class="toctree-l2"><a class="reference internal" href="git-github.html">11.2. GitHub, Git, and related topics</a></li>
<li class="toctree-l2"><a class="reference internal" href="gnu-autotools.html">11.3. Manually installing the GNU Autootools</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">11.4. Installing and running Sphinx (building the PRRTE docs)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#installing-python">11.4.1. Installing Python</a></li>
<li class="toctree-l3"><a class="reference internal" href="#installing-sphinx">11.4.2. Installing Sphinx</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#install-sphinx-in-a-python-virtual-environment">11.4.2.1. Install Sphinx in a Python virtual environment</a></li>
<li class="toctree-l4"><a class="reference internal" href="#install-sphinx-globally">11.4.2.2. Install Sphinx globally</a></li>
<li class="toctree-l4"><a class="reference internal" href="#install-sphinx-locally">11.4.2.3. Install Sphinx locally</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#running-sphinx">11.4.3. Running Sphinx</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#sphinx-execution-time">11.4.3.1. Sphinx execution time</a></li>
<li class="toctree-l4"><a class="reference internal" href="#checking-sphinx-html-links">11.4.3.2. Checking Sphinx HTML links</a></li>
<li class="toctree-l4"><a class="reference internal" href="#viewing-docs-locally">11.4.3.3. Viewing docs locally</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="rst-for-markdown-expats.html">11.5. ReStructured Text for those who know Markdown</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing.html">12. Contributing to PRRTE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../license.html">13. License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../man/index.html">14. PRRTE manual pages</a></li>
<li class="toctree-l1"><a class="reference internal" href="../versions.html">15. Software Version Numbers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../news/index.html">16. News</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">PMIx Reference Run Time Environment</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">11. </span>Developers guide</a></li>
<li class="breadcrumb-item active"><span class="section-number">11.4. </span>Installing and running Sphinx (building the PRRTE docs)</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/developers/sphinx.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="installing-and-running-sphinx-building-the-prrte-docs">
<span id="developers-installing-sphinx-label"></span><h1><span class="section-number">11.4. </span>Installing and running Sphinx (building the PRRTE docs)<a class="headerlink" href="#installing-and-running-sphinx-building-the-prrte-docs" title="Permalink to this heading"></a></h1>
<p>As with all content in the Developers Guide, this section is only
relevant for developers who work in the PRRTE code base itself.
End users who install a binary PRRTE package or build from an
official PRRTE distribution tarball do not need to have Sphinx
installed.</p>
<div class="section" id="installing-python">
<h2><span class="section-number">11.4.1. </span>Installing Python<a class="headerlink" href="#installing-python" title="Permalink to this heading"></a></h2>
<p>The <a class="reference external" href="https://www.sphinx-doc.org/">Sphinx tool</a> is written in Python,
and therefore needs to have Python available. As of late 2022, Sphinx
requires Python &gt;= v3.7.</p>
<p>This documentation does not contain detailed instructions for
installing a Python version sufficient for using Sphinx. Consult your
local OS documentation for how to obtain Python &gt;= v3.7, or search the
internet for further information.</p>
</div>
<div class="section" id="installing-sphinx">
<h2><span class="section-number">11.4.2. </span>Installing Sphinx<a class="headerlink" href="#installing-sphinx" title="Permalink to this heading"></a></h2>
<p><a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/installation.html">The Sphinx documentation</a>
recommends installing Sphinx (and its required Python dependencies)
via <code class="docutils literal notranslate"><span class="pre">pip</span></code>, which typically requires connectivity to the general
internet.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you are running on MacOS, you may be tempted to use
Homebrew or MacPorts to install Sphinx. The Sphinx documentation
recommends <strong>against</strong> this. Instead, you should use <code class="docutils literal notranslate"><span class="pre">pip</span></code> to
install Sphinx.</p>
</div>
<p>There are three general ways to install Sphinx; you only need one of
them.</p>
<div class="section" id="install-sphinx-in-a-python-virtual-environment">
<h3><span class="section-number">11.4.2.1. </span>Install Sphinx in a Python virtual environment<a class="headerlink" href="#install-sphinx-in-a-python-virtual-environment" title="Permalink to this heading"></a></h3>
<p>The preferred method of installing Sphinx for PRRTE documentation
development is to install Sphinx in a Python virtual environment.
This places Sphinx in a sandbox that will not conflict with other
<code class="docutils literal notranslate"><span class="pre">pip</span></code>-installed Python modules. This example installs Sphinx and
other Python modules in the <code class="docutils literal notranslate"><span class="pre">ompi-docs-venv</span></code> tree under your PRRTE
Git clone directory:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># Create the Python virtual environment</span>
shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>TOP_OF_PRRTE_GIT_CLONE
shell$<span class="w"> </span>python3<span class="w"> </span>-m<span class="w"> </span>venv<span class="w"> </span>ompi-docs-venv
<span class="c1"># Or: python3 -m virtualenv ompi-docs-venv</span>
<span class="c1"># Or: virtualenv --python=python3 ompi-docs-venv</span>
<span class="c1"># Activate the virtual environment</span>
shell$<span class="w"> </span>.<span class="w"> </span>./ompi-docs-venv/bin/activate
<span class="c1"># Notice that the shell prompt changes</span>
<span class="c1"># Now install the required Python modules</span>
<span class="o">(</span>ompi-docs-venv<span class="o">)</span><span class="w"> </span>shell$<span class="w"> </span>pip3<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>docs/requirements.txt
<span class="c1"># Or: python3 -m pip install install -r docs/requirements.txt</span>
</pre></div>
</div>
<p>Note that sourcing the <code class="docutils literal notranslate"><span class="pre">activate</span></code> script will change your prompt to
put the name of your virtual environment directory at the front, just
as a visual reminder that you are operating in a Python virtual
environment. You can run <code class="docutils literal notranslate"><span class="pre">deactivate</span></code> to leave the virtual
environment.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>You will need to source the <code class="docutils literal notranslate"><span class="pre">activate</span></code> script to put
Sphinx in your <code class="docutils literal notranslate"><span class="pre">PATH</span></code> <em>before</em> running <code class="docutils literal notranslate"><span class="pre">configure</span></code>.</p>
</div>
</div>
<div class="section" id="install-sphinx-globally">
<h3><span class="section-number">11.4.2.2. </span>Install Sphinx globally<a class="headerlink" href="#install-sphinx-globally" title="Permalink to this heading"></a></h3>
<p>If Python virtual environments are not desirable on your system, you
can install Sphinx globally on your system (you may need to run with
root privileges):</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>TOP_OF_PRRTE_GIT_CLONE
shell$<span class="w"> </span>pip3<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>docs/requirements.txt
<span class="c1"># Or: python3 -m pip install install -r docs/requirements.txt</span>
</pre></div>
</div>
<p>This will install Sphinx and some Python modules required for building
the PRRTE documentation in a system-wide location.</p>
<p>This will likely install the <code class="docutils literal notranslate"><span class="pre">sphinx-build</span></code> executable in a location
that is already in your <code class="docutils literal notranslate"><span class="pre">PATH</span></code>. If the location is not already in
your <code class="docutils literal notranslate"><span class="pre">PATH</span></code>, then you need to add it to your <code class="docutils literal notranslate"><span class="pre">PATH</span></code>.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>You will need to ensure that Sphinx is in your <code class="docutils literal notranslate"><span class="pre">PATH</span></code>
<em>before</em> running <code class="docutils literal notranslate"><span class="pre">configure</span></code>.</p>
</div>
</div>
<div class="section" id="install-sphinx-locally">
<h3><span class="section-number">11.4.2.3. </span>Install Sphinx locally<a class="headerlink" href="#install-sphinx-locally" title="Permalink to this heading"></a></h3>
<p>If you cannot or do not want to install Sphinx globally on your
system, the following will install Sphinx somewhere under your
<code class="docutils literal notranslate"><span class="pre">$HOME</span></code>. It is the same <code class="docutils literal notranslate"><span class="pre">pip</span></code> command as shown above, but with
the addition of the <code class="docutils literal notranslate"><span class="pre">--user</span></code> flag (you should not need <code class="docutils literal notranslate"><span class="pre">root</span></code>
permissions to run this command):</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>TOP_OF_PRRTE_GIT_CLONE
shell$<span class="w"> </span>pip3<span class="w"> </span>install<span class="w"> </span>--user<span class="w"> </span>-r<span class="w"> </span>docs/requirements.txt
<span class="c1"># Or: python3 -m pip install install -r docs/requirements.txt</span>
</pre></div>
</div>
<p>This will install Sphinx and some Python modules required for building
the PRRTE documentation in a system-wide location.</p>
<p>You will likely need to find the location where <code class="docutils literal notranslate"><span class="pre">sphinx-build</span></code> was
installed and add it to your <code class="docutils literal notranslate"><span class="pre">PATH</span></code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>On MacOS, look for <code class="docutils literal notranslate"><span class="pre">sphinx-build</span></code> under
<code class="docutils literal notranslate"><span class="pre">$HOME/Library/Python/VERSION/bin</span></code> (where <code class="docutils literal notranslate"><span class="pre">VERSION</span></code> is
the version number of Python). Or it may have installed to
<code class="docutils literal notranslate"><span class="pre">/usr/local/bin/sphinx-build</span></code>. YMMV.</p>
</div>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>You will need to ensure that Sphinx is in your <code class="docutils literal notranslate"><span class="pre">PATH</span></code>
<em>before</em> running <code class="docutils literal notranslate"><span class="pre">configure</span></code>.</p>
</div>
</div>
</div>
<div class="section" id="running-sphinx">
<h2><span class="section-number">11.4.3. </span>Running Sphinx<a class="headerlink" href="#running-sphinx" title="Permalink to this heading"></a></h2>
<p>PRRTEs build environment is setup to invoke Sphinx automatically;
you should not need to invoke Sphinx manually.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>You will need to ensure that Sphinx is in your <code class="docutils literal notranslate"><span class="pre">PATH</span></code>
<em>before</em> running <code class="docutils literal notranslate"><span class="pre">configure</span></code>.</p>
</div>
<p>As long as <code class="docutils literal notranslate"><span class="pre">configure</span></code> found Sphinx, <code class="docutils literal notranslate"><span class="pre">make</span></code> will invoke Sphinx to
build the documentation. You can also run <code class="docutils literal notranslate"><span class="pre">make</span></code> directly in the
<code class="docutils literal notranslate"><span class="pre">docs/</span></code> directory to build <em>just</em> the docs and skip building the
rest of the PRRTE software. This can be a huge time-saver when
iteratively writing, rendering, and viewing/proofing documentation.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The fully-built HTML and man page docs are included in
official PRRTE distribution tarballs. Meaning: if you
download an official distribution PRRTE tarball,
the pre-built HTML and man page files are included
in the tarball.</p>
<p>Sphinx is a requirement for <em>developers</em> who want to build
the PRRTE docs. End users do <em>not</em> need to have Sphinx
available to build PRRTE or have its docs installed from
an official distribution tarball.</p>
</div>
<div class="section" id="sphinx-execution-time">
<h3><span class="section-number">11.4.3.1. </span>Sphinx execution time<a class="headerlink" href="#sphinx-execution-time" title="Permalink to this heading"></a></h3>
<p>Sphinx is stateful: subsequent runs can be significantly faster
because Sphinx will only re-render HTML files that have changes. This
is a nice time saver for PRRTE (e.g., if you are iterating over
writing the docs and running <code class="docutils literal notranslate"><span class="pre">make</span></code> to see how they rendered in
HTML).</p>
<div class="admonition caution">
<p class="admonition-title">Caution</p>
<p>Sphinx is only <em>somewhat</em> smart in its partial
re-rendering. If you change a title in an RST file, for
example, Sphinx will (by default) only re-render <em>that</em>
page. The Tables of Contents / left hand navigation on
other pages may not be updated.</p>
<p>You can always force a full re-render via:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>docs
shell$<span class="w"> </span>rm<span class="w"> </span>-rf<span class="w"> </span>_build
shell$<span class="w"> </span>make
</pre></div>
</div>
</div>
</div>
<div class="section" id="checking-sphinx-html-links">
<h3><span class="section-number">11.4.3.2. </span>Checking Sphinx HTML links<a class="headerlink" href="#checking-sphinx-html-links" title="Permalink to this heading"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">linkcheck</span></code> will invoke Sphinxs functionality to check all the
external links in the documentation:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>docs
shell$<span class="w"> </span>make<span class="w"> </span>linkcheck
</pre></div>
</div>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>You will need to be on a computer that has good access
to the internet when running this command.</p>
</div>
</div>
<div class="section" id="viewing-docs-locally">
<h3><span class="section-number">11.4.3.3. </span>Viewing docs locally<a class="headerlink" href="#viewing-docs-locally" title="Permalink to this heading"></a></h3>
<p>Once you have built the docs in your local Git clone, you can view
them locally in the build tree:</p>
<ol class="arabic">
<li><p>Open <code class="docutils literal notranslate"><span class="pre">docs/_build/html/index.html</span></code> in a browser to view the HTML
docs. For example, on MacOS, the following command opens the build
tree docs in the default web browser:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span>open<span class="w"> </span>docs/_build/html/index.html
</pre></div>
</div>
</li>
<li><p>Use the <code class="docutils literal notranslate"><span class="pre">man</span></code> command to view the Nroff files in
<code class="docutils literal notranslate"><span class="pre">docs/_build/man</span></code> (you may need to use an absolute or relative
filename to prevent <code class="docutils literal notranslate"><span class="pre">man</span></code> from using its search paths). For
example:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>docs/_build/man
shell$<span class="w"> </span>man<span class="w"> </span>./prterun.1
</pre></div>
</div>
</li>
</ol>
<p>Alternatively, you can view these files in their installed locations
after running <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>:</p>
<ol class="arabic">
<li><p>The HTML docs are installed (by default) to
<code class="docutils literal notranslate"><span class="pre">$prefix/share/doc/prte/html</span></code>. You can use a web browser to
open the <code class="docutils literal notranslate"><span class="pre">index.html</span></code> in that directory to view the docs locally.
For example, on MacOS, the following command opens the installed
docs in the default web browser:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span>open<span class="w"> </span><span class="nv">$prefix</span>/share/doc/prte/html/index.html
</pre></div>
</div>
</li>
<li><p>The man pages are installed (by default) to <code class="docutils literal notranslate"><span class="pre">$preix/share/man</span></code>.
If your man page search path includes this location, you can invoke
commands similar to the following to see the same content that you
see in these HTML pages:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span>man<span class="w"> </span>prterun
</pre></div>
</div>
</li>
</ol>
</div>
</div>
</div>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="gnu-autotools.html" class="btn btn-neutral float-left" title="11.3. Manually installing the GNU Autootools" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="rst-for-markdown-expats.html" class="btn btn-neutral float-right" title="11.5. ReStructured Text for those who know Markdown" 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 2003-2025, The PRRTE 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>