360 lines
21 KiB
HTML
360 lines
21 KiB
HTML
<!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>12.9. Manually installing the GNU Autootools — OpenPMIx 5.0.5 documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css" />
|
||
|
||
|
||
<!--[if lt IE 9]>
|
||
<script src="../_static/js/html5shiv.min.js"></script>
|
||
<![endif]-->
|
||
|
||
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
|
||
<script src="../_static/jquery.js"></script>
|
||
<script src="../_static/underscore.js"></script>
|
||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||
<script src="../_static/doctools.js"></script>
|
||
<script src="../_static/sphinx_highlight.js"></script>
|
||
<script src="../_static/js/theme.js"></script>
|
||
<link rel="index" title="Index" href="../genindex.html" />
|
||
<link rel="search" title="Search" href="../search.html" />
|
||
<link rel="next" title="12.10. Installing and running Sphinx (building the OpenPMIx docs)" href="sphinx.html" />
|
||
<link rel="prev" title="12.8. Internal frameworks" href="frameworks.html" />
|
||
</head>
|
||
|
||
<body class="wy-body-for-nav">
|
||
<div class="wy-grid-for-nav">
|
||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||
<div class="wy-side-scroll">
|
||
<div class="wy-side-nav-search" >
|
||
|
||
|
||
|
||
<a href="../index.html" class="icon icon-home">
|
||
OpenPMIx
|
||
</a>
|
||
<div role="search">
|
||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||
<ul class="current">
|
||
<li class="toctree-l1"><a class="reference internal" href="../quickstart.html">1. Quick start</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../getting-help.html">2. Getting help</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../release-notes/index.html">3. Release notes</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../exceptions.html">4. Exceptions to the PMIx Standard</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../installing-pmix/index.html">5. Building and installing PMIx</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="../release-notes.html">7. Release Notes</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../history.html">8. History</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../versions.html">9. Version Numbers and Binary Compatibility</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../mca.html">10. The Modular Component Architecture (MCA)</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../building-apps/index.html">11. Building PMIx applications</a></li>
|
||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">12. Developer’s guide</a><ul class="current">
|
||
<li class="toctree-l2"><a class="reference internal" href="prerequisites.html">12.1. Prerequisites</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="git-github.html">12.2. GitHub, Git, and related topics</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="compiler-pickyness.html">12.3. Compiler Pickyness by Default</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="autogen.html">12.4. Running <code class="docutils literal notranslate"><span class="pre">autogen.pl</span></code></a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="building-pmix.html">12.5. Building PMIx</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="terminology.html">12.6. OpenPMIx terminology</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="source-code.html">12.7. Source code</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="frameworks.html">12.8. Internal frameworks</a></li>
|
||
<li class="toctree-l2 current"><a class="current reference internal" href="#">12.9. Manually installing the GNU Autootools</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#use-a-package-manager">12.9.1. Use a package manager</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#autotools-versions">12.9.2. Autotools versions</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#checking-your-versions">12.9.3. Checking your versions</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#installing-the-gnu-autotools-from-source">12.9.4. Installing the GNU Autotools from source</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#build-and-install-ordering">12.9.5. Build and install ordering</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="sphinx.html">12.10. Installing and running Sphinx (building the OpenPMIx docs)</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="rst-for-markdown-expats.html">12.11. ReStructured Text for those who know Markdown</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../contributing.html">13. Contributing to OpenPMIx</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../license.html">14. License</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../security.html">15. OpenPMIx Security Policy</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../news/index.html">16. News</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../man/index.html">17. OpenPMIx manual pages</a></li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||
<a href="../index.html">OpenPMIx</a>
|
||
</nav>
|
||
|
||
<div class="wy-nav-content">
|
||
<div class="rst-content">
|
||
<div role="navigation" aria-label="Page navigation">
|
||
<ul class="wy-breadcrumbs">
|
||
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||
<li class="breadcrumb-item"><a href="index.html"><span class="section-number">12. </span>Developer’s guide</a></li>
|
||
<li class="breadcrumb-item active"><span class="section-number">12.9. </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">12.9. </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 PMIx from a Git clone. End
|
||
users installing an PMIx 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">12.9.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 distribution’s 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">12.9.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 PMIx
|
||
from its repository sources (users who download PMIx tarballs do
|
||
not need these tools - they are only required for developers working
|
||
on the internals of PMIx 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>Version</p></th>
|
||
<th class="head"><p>URL</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p>GNU m4</p></td>
|
||
<td><p>1.4.17</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>2.69</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>1.15</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>2.4.6</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>
|
||
<tr class="row-even"><td><p>Flex</p></td>
|
||
<td><p>2.5.35</p></td>
|
||
<td><p><a class="reference external" href="https://sourceforge.net/projects/flex/">https://sourceforge.net/projects/flex/</a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p>Sphinx</p></td>
|
||
<td><p>4.2.0</p></td>
|
||
<td><p><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></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>The above table lists the versions that are used to make official
|
||
release PMIx 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 this point: the core PMIx developers typically
|
||
use very, very recent versions of the GNU tools. There are known bugs
|
||
in older versions of the GNU tools that PMIx 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 above. This is because such older versions still make
|
||
usable PMIx 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 above (but are
|
||
recent enough to produce a working version for their platform).</p>
|
||
<p>To be clear: the versions listed above are required to support a wide
|
||
variety of platforms and environments, and are used to make the official
|
||
release tarballs. When building PMIx, YMMV when using
|
||
versions older than those listed above — 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 above.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>Sphinx was only recently added to the list of required tools
|
||
to generate the documentation. It is not required for PMIx
|
||
versions prior to v4.2.3.</p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="checking-your-versions">
|
||
<h2><span class="section-number">12.9.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">12.9.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 can’t 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 PMIx 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 don’t 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">12.9.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
|
||
they’re 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 "rehash"</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 "rehash"</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 "rehash"</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="frameworks.html" class="btn btn-neutral float-left" title="12.8. Internal frameworks" 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="12.10. Installing and running Sphinx (building the OpenPMIx docs)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||
</div>
|
||
|
||
<hr/>
|
||
|
||
<div role="contentinfo">
|
||
<p>© Copyright 2014-2025, The OpenPMIx Community.</p>
|
||
</div>
|
||
|
||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||
|
||
|
||
</footer>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
<script>
|
||
jQuery(function () {
|
||
SphinxRtdTheme.Navigation.enable(true);
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
</html> |