Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
                        University Research and Technology
                        Corporation.  All rights reserved.
Copyright (c) 2004-2005 The University of Tennessee and The University
                        of Tennessee Research Foundation.  All rights
                        reserved.
Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
                        University of Stuttgart.  All rights reserved.
Copyright (c) 2004-2005 The Regents of the University of California.
                        All rights reserved.
Copyright (c) 2008-2015 Cisco Systems, Inc.  All rights reserved.
Copyright (c) 2013-2019 Intel, Inc.  All rights reserved.
$COPYRIGHT$

Additional copyrights may follow

$HEADER$


For More Information
====================

This file is a *very* short overview of building and installing
the PMIx library.  Much more information is available in the
How-To section on the PMIx web site:

    https://pmix.org/support/how-to/


Developer Builds
================

If you have checked out a DEVELOPER'S COPY of PMIx (i.e., you checked
out from Git), you should read the HACKING file before attempting to
build PMIx.  You must then run:

shell$ ./autogen.pl

You will need very recent versions of GNU Autoconf, Automake, and
Libtool.  If autogen.sh fails, read the HACKING file.  If anything
else fails, read the HACKING file.  Finally, we suggest reading the
HACKING file.

*** NOTE: Developer's copies of PMIx typically include a large
performance penalty at run-time because of extra debugging overhead.


User Builds
===========

Building PMIx is typically a combination of running "configure"
and "make".  Execute the following commands to install the PMIx
system from within the directory at the top of the tree:

shell$ ./configure --prefix=/where/to/install
[...lots of output...]
shell$ make all install

NOTE: this version of PMIx requires the Libevent package to build
and operate. Any version of Libevent greater than or equal to
2.0.21 is acceptable.

NOTE: this version of PMIx optionally supports the HWLOC package
for providing topology information to both the host environment
(by collecting local inventory for rollup) and local client
processes. Any version of HWLOC greater than 1.10 is supported,
although versions in the 2.x series are recommended.

Note that you must point configure at the libevent installation
using the --with-libevent=<dir> option if it is in a non-standard
location. Similarly, non-standard locations for the HWLOC package
must be specified using the --with-hwloc=<dir> option. In both
cases, PMIx will automatically detect these packages in standard
locations and build-in support for them unless otherwise specified
using the respective configure option.

If you need special access to install, then you can execute "make
all" as a user with write permissions in the build tree, and a
separate "make install" as a user with write permissions to the
install tree.

Compiling support for specific compilers and environments may
require additional command line flags when running configure.  See the
README file for more details.  Note that VPATH builds are fully
supported.  For example:

shell$ gtar zxf pmix-X.Y.Z.tar.gz
shell$ cd pmix-X.Y.Z
shell$ mkdir build
shell$ cd build
shell$ ../configure ...your options...
[...lots of output...]
shell$ make all install

Parallel builds are also supported (although some versions of "make",
such as GNU make, will only use the first target listed on the command
line when executable parallel builds).  For example (assume GNU make):

shell$ make -j 4 all
[...lots of output...]
shell$ make install

Parallel make is generally only helpful in the build phase; the
installation process is mostly serial and does not benefit much from
parallel make.
