Open MPI logo

Open MPI: Version 1.1 Source RPM Notes

  |   Home   |   Support   |   FAQ   |  

Because every parallel computation environment is different, Open MPI is a highly configurable piece of software. As such, a single set of build options is not sufficient to meet everyone's needs. The source RPM therefore accepts a wide variety of configuration options on the "rpmbuild --rebuild" command line. The following text describes the options that are available.

A script to build an Open MPI RPM from a source tarball is available here, and is referred to as "buildrpm.sh" in the text below. Additionally, you can build an Open MPI RPM from the SRPM (also described below).

The text below is specific to the series of Open MPI and is available here in a printer-friendly format.

Note that the spec file (that the text below refers to) has many more comments and explanations of rpmbuild-time configuration options, and is available here.


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

Additional copyrights may follow

$HEADER$

===========================================================================

The buildrpm.sh script takes a single argument -- a filename pointing
to an Open MPI tarball (may be either .gz or .bz2).  It will create
one or more RPMs from this tarball:

1. Source RPM
2. "All in one" RPM, where all of Open MPI is put into a single RPM.
3. "Multiple" RPM, where Open MPI is split into several sub-package
   RPMs:
   - openmpi-runtime
   - openmpi-devel
   - openmpi-docs (not currently generated because we have no docs; to
     be rectified soon!)

The prefix, target architecture, and choice of RPM(s) to build are all
currently hard-coded in the beginning of the buildrpm.sh script.

Alternatively, you can build directly from the openmpi.spec spec file
or SRPM directly.  The following options are permissable on the
"rpmbuild" command line via the --define option:

- lanl: 0 or 1 (default: 0)
  A shortcut for several Los Alamos-specific options (see specfile for
  current list of values -- look for "%if %{lanl}").  

- install_in_opt: 0 or 1 (default: 0)
  If 1, use a prefix of /opt/openmpi/-.

- install_profile_d_scripts: 0 or 1 (default: 0)
  If 1, and install_in_opt is 1, then install the /etc/profile.d
  scripts.

- install_modulefile: 0 or 1 (default: 0)
  If 1 and if install_in_opt is 1, then install a modulefile in
  %{modulefile_path}/%{modulefile_subdir}/%{modulefile_name}

- modulefile_path: string (default: "/etc/modulefiles")
  Defaults to /etc/modulefiles

- modulefile_subdir: string (default: "openmpi")
  Defaults to openmpi

- modulefile_name: string (default: "%{version}")
  Defaults to %{version}

- modules_rpm_name: string ("modules")
  Name of the environment modules RPM to "require".

- build_debuginfo_rpm: 0 or 1 (default: 0)
  If 1, builds a corresponding debuginfo rpm.

- _prefix (etc.): string (default: supplied by rpmbuild)
  Prefix directory (all other standard names are also supported, such
  as _libdir, _sysconfdir, _includedir, etc.).

- configure_options: string (default: "")
  String to pass directly to the ./configure script.

- _packager: string (default: supplied by rpmbuild)
  Name of the packager

- _vendor: string (default: supplied by rpmbuild)
  Name of the vendor

- cflags: string (default: supplied by rpmbuild: $RPM_OPT_FLAGS)
  CFLAGS value to use

- cxxflags: string (default: supplied by rpmbuild: $RPM_OPT_FLAGS)
  CXXFLAGS value to use

- f77flags: string (default: supplied by rpmbuild: $RPM_OPT_FLAGS)
  F77FLAGS value to use

- fcflags: string (default: supplied by rpmbuild: $RPM_OPT_FLAGS)
  F90FLAGS value to use

- mflags: string (default: "")
  Flags to pass to the "make" [default] target during %build

- mflags_install: string (default: "")
  Flags to pass to the "make install" target during %install

- build_all_in_one_rpm: 0 or 1 (default: 1)
  If 1 (the default), make a single RPM that contains all of the Open
  MPI software.  If 0, build multiple sub-package RPMs to split up the
  Open MPI code into separate functional areas.  See the spec file for
  the exact division and subpackage definitions.

- name: string (default "openmpi")
  If set, used as the name of the RPM (useful if you want to add a
  compiler name -- or some other qualifier -- to the RPM name).