Per discussion on the OMPI teleconf this morning:
* Remove the check for a specific m4 version. We don't require it. Autoconf requires a specific version of m4, but we don't. * Reduce flex min version to 2.5.4 * Update a bunch of language in HACKING, including: * General text updates * OMPI doesn't require a specific m4; Autoconf does * Soften language about flex version * Reserve the right to upgrade min flex version to 2.5.35 someday This commit was SVN r27647.
Этот коммит содержится в:
родитель
9355d431cc
Коммит
7f1f857359
78
HACKING
78
HACKING
@ -8,7 +8,7 @@ Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|||||||
University of Stuttgart. All rights reserved.
|
University of Stuttgart. All rights reserved.
|
||||||
Copyright (c) 2004-2005 The Regents of the University of California.
|
Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
Copyright (c) 2008-2010 Cisco Systems, Inc. All rights reserved.
|
Copyright (c) 2008-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
$COPYRIGHT$
|
$COPYRIGHT$
|
||||||
|
|
||||||
Additional copyrights may follow
|
Additional copyrights may follow
|
||||||
@ -82,8 +82,8 @@ developer's checkout, you have three main options:
|
|||||||
shell$ make all install
|
shell$ make all install
|
||||||
|
|
||||||
|
|
||||||
Use of GNU m4, Autoconf, Automake, and Libtool
|
Use of GNU Autoconf, Automake, and Libtool (and m4)
|
||||||
==============================================
|
===================================================
|
||||||
|
|
||||||
This procedure is *ONLY* necessary if you are building from a
|
This procedure is *ONLY* necessary if you are building from a
|
||||||
developer's tree. If you have an Open MPI distribution tarball, this
|
developer's tree. If you have an Open MPI distribution tarball, this
|
||||||
@ -91,10 +91,12 @@ procedure is unnecessary -- you can (and should) skip reading this
|
|||||||
section.
|
section.
|
||||||
|
|
||||||
If you are building Open MPI from a developer's tree, you must first
|
If you are building Open MPI from a developer's tree, you must first
|
||||||
install fairly recent versions of the GNU tools m4, Autoconf, Automake,
|
install fairly recent versions of the GNU tools Autoconf, Automake,
|
||||||
and Libtool. The specific versions required depend on if you are
|
and Libtool (and possibly GNU m4, because recent versions of Autoconf
|
||||||
using the trunk or a release branch (and which release branch you are
|
have specific GNU m4 version requirements). The specific versions
|
||||||
using). The specific versions can be found at:
|
required depend on if you are using the trunk or a release branch (and
|
||||||
|
which release branch you are using). The specific versions can be
|
||||||
|
found at:
|
||||||
|
|
||||||
http://www.open-mpi.org/svn/building.php
|
http://www.open-mpi.org/svn/building.php
|
||||||
|
|
||||||
@ -117,16 +119,25 @@ If you need newer versions, you are *strongly* encouraged to heed the
|
|||||||
following advice:
|
following advice:
|
||||||
|
|
||||||
NOTE: On MacOS/X, the default "libtool" program is different than the
|
NOTE: On MacOS/X, the default "libtool" program is different than the
|
||||||
GNU libtool. You must download and install the GNU version (via
|
GNU libtool. You must download and install the GNU version
|
||||||
Fink or any other mechanism).
|
(e.g., via MacPorts, Homebrew, or some other mechanism).
|
||||||
|
|
||||||
1. Unless your OS distribution has easy-to-use binary installations,
|
1. Unless your OS distribution has easy-to-use binary installations,
|
||||||
the sources can be can be downloaded from:
|
the sources can be can be downloaded from:
|
||||||
|
|
||||||
ftp://ftp.gnu.org/gnu/m4/
|
|
||||||
ftp://ftp.gnu.org/gnu/autoconf/
|
ftp://ftp.gnu.org/gnu/autoconf/
|
||||||
ftp://ftp.gnu.org/gnu/automake/
|
ftp://ftp.gnu.org/gnu/automake/
|
||||||
ftp://ftp.gnu.org/gnu/libtool/
|
ftp://ftp.gnu.org/gnu/libtool/
|
||||||
|
and if you need it:
|
||||||
|
ftp://ftp.gnu.org/gnu/m4/
|
||||||
|
|
||||||
|
NOTE: It is certainly easiest to download/build/install all four of
|
||||||
|
these tools together. But note that Open MPI has no specific m4
|
||||||
|
requirements; it is only listed here because Autoconf requires
|
||||||
|
minimum versions of GNU m4. Hence, you may or may not *need* 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.
|
||||||
|
|
||||||
2. Build and install the tools in the following order:
|
2. Build and install the tools in the following order:
|
||||||
|
|
||||||
@ -138,9 +149,11 @@ NOTE: On MacOS/X, the default "libtool" program is different than the
|
|||||||
3. You MUST install the last three tools (Autoconf, Automake, Libtool)
|
3. You MUST install the last three tools (Autoconf, Automake, Libtool)
|
||||||
into the same prefix directory. These three tools are somewhat
|
into the same prefix directory. These three tools are somewhat
|
||||||
inter-related, and if they're going to be used together, they MUST
|
inter-related, and if they're going to be used together, they MUST
|
||||||
share a common installation prefix. You can install m4 anywhere,
|
share a common installation prefix.
|
||||||
as long as it can be found in the path. It may be convenient to
|
|
||||||
install it instal the same prefix as the other three.
|
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.
|
||||||
|
|
||||||
3a. It is *strongly* encouraged that you do not install your new
|
3a. It is *strongly* encouraged that you do not install your new
|
||||||
versions over the OS-installed versions. This could cause
|
versions over the OS-installed versions. This could cause
|
||||||
@ -198,15 +211,15 @@ NOTE: On MacOS/X, the default "libtool" program is different than the
|
|||||||
will invoke the GNU Autoconf, Automake, and Libtool commands in the
|
will invoke the GNU Autoconf, Automake, and Libtool commands in the
|
||||||
proper order and setup to run OMPI's top-level "configure" script.
|
proper order and setup to run OMPI's top-level "configure" script.
|
||||||
|
|
||||||
Running autogen.pl may take several minutes, depending on your
|
Running autogen.pl may take a few minutes, depending on your
|
||||||
system. It's not very exciting to watch. :-)
|
system. It's not very exciting to watch. :-)
|
||||||
|
|
||||||
If you have a multi-processor system, enabling the multi-threaded
|
If you have a multi-processor system, enabling the multi-threaded
|
||||||
behavior in Automake 1.11 (or newer) can result in autogen.pl
|
behavior in Automake 1.11 (or newer) can result in autogen.pl
|
||||||
running faster. Do this by setting the AUTOMAKE_JOBS environment
|
running faster. Do this by setting the AUTOMAKE_JOBS environment
|
||||||
variable to the number of processors (threads) that you want it to
|
variable to the number of processors (threads) that you want it to
|
||||||
use. For example (you can again put this in your shell startup
|
use before invoking autogen.pl. For example (you can again put
|
||||||
files):
|
this in your shell startup files):
|
||||||
|
|
||||||
# For bash/sh:
|
# For bash/sh:
|
||||||
export AUTOMAKE_JOBS=4
|
export AUTOMAKE_JOBS=4
|
||||||
@ -214,9 +227,10 @@ NOTE: On MacOS/X, the default "libtool" program is different than the
|
|||||||
set AUTOMAKE_JOBS 4
|
set AUTOMAKE_JOBS 4
|
||||||
|
|
||||||
5a. You generally need to run autogen.pl whenever the top-level
|
5a. You generally need to run autogen.pl whenever the top-level
|
||||||
file "configure.ac" changes, or any files in the config/
|
file "configure.ac" changes, or any files in the config/ or
|
||||||
directory change (the config/ directory is where a lot of
|
<project>/config/ directories change (these directories are
|
||||||
"include" files for OMPI's configure script live).
|
where a lot of "include" files for OMPI's configure script
|
||||||
|
live).
|
||||||
|
|
||||||
5b. You do *NOT* need to re-run autogen.pl if you modify a
|
5b. You do *NOT* need to re-run autogen.pl if you modify a
|
||||||
Makefile.am.
|
Makefile.am.
|
||||||
@ -225,21 +239,27 @@ Use of Flex
|
|||||||
===========
|
===========
|
||||||
|
|
||||||
Flex is used during the compilation of a developer's checkout (it is
|
Flex is used during the compilation of a developer's checkout (it is
|
||||||
not used in distribution tarballs). Other flavors of lex are *not*
|
not used to build official distribution tarballs). Other flavors of
|
||||||
supported: given the choice of making parsing code portable between
|
lex are *not* supported: given the choice of making parsing code
|
||||||
all flavors of lex and doing more interesting work on Open MPI, we
|
portable between all flavors of lex and doing more interesting work on
|
||||||
greatly prefer the latter.
|
Open MPI, we greatly prefer the latter.
|
||||||
|
|
||||||
Note that no testing has been performed to see what the minimum
|
Note that no testing has been performed to see what the minimum
|
||||||
version of Flex is required by Open MPI. We suggest that you use
|
version of Flex is required by Open MPI. We suggest that you use
|
||||||
v2.5.35 at the earliest.
|
v2.5.35 at the earliest.
|
||||||
|
|
||||||
*** NOTE: Windows builds of Open MPI require Flex version 2.5.35.
|
*** NOTE: Windows developer builds of Open MPI *require* Flex version
|
||||||
Specifically, we know that v2.5.35 works and 2.5.4a does not. We have
|
2.5.35. Specifically, we know that v2.5.35 works and 2.5.4a does not.
|
||||||
not tested to figure out exactly what the minimum required flex
|
We have not tested to figure out exactly what the minimum required
|
||||||
version is on Windows; we suggest that you use 2.5.35 at the earliest.
|
flex version is on Windows; we suggest that you use 2.5.35 at the
|
||||||
It is for this reason that the contrib/dist/make_dist_tarball script
|
earliest. It is for this reason that the
|
||||||
checks for a Windows-friendly version of flex before continuing.
|
contrib/dist/make_dist_tarball script checks for a Windows-friendly
|
||||||
|
version of flex before continuing.
|
||||||
|
|
||||||
|
For now, Open MPI 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 Open MPI developer builds will
|
||||||
|
require Flex version >=2.5.35.
|
||||||
|
|
||||||
Note that the flex-generated code generates some compiler warnings on
|
Note that the flex-generated code generates some compiler warnings on
|
||||||
some platforms, but the warnings do not seem to be consistent or
|
some platforms, but the warnings do not seem to be consistent or
|
||||||
|
@ -56,15 +56,13 @@ my $exclude_list;
|
|||||||
my $ompi_automake_version = "1.11.1";
|
my $ompi_automake_version = "1.11.1";
|
||||||
my $ompi_autoconf_version = "2.65";
|
my $ompi_autoconf_version = "2.65";
|
||||||
my $ompi_libtool_version = "2.2.6b";
|
my $ompi_libtool_version = "2.2.6b";
|
||||||
my $ompi_flex_version = "2.5.35";
|
my $ompi_flex_version = "2.5.4";
|
||||||
my $ompi_m4_version = "1.4.16";
|
|
||||||
|
|
||||||
# Search paths
|
# Search paths
|
||||||
my $ompi_autoconf_search = "autoconf";
|
my $ompi_autoconf_search = "autoconf";
|
||||||
my $ompi_automake_search = "automake";
|
my $ompi_automake_search = "automake";
|
||||||
my $ompi_libtoolize_search = "libtoolize;glibtoolize";
|
my $ompi_libtoolize_search = "libtoolize;glibtoolize";
|
||||||
my $ompi_flex_search = "flex";
|
my $ompi_flex_search = "flex";
|
||||||
my $ompi_m4_search = "m4;gm4";
|
|
||||||
|
|
||||||
# One-time setup
|
# One-time setup
|
||||||
my $username;
|
my $username;
|
||||||
@ -811,7 +809,6 @@ tools:
|
|||||||
GNU Autoconf: $ompi_autoconf_version
|
GNU Autoconf: $ompi_autoconf_version
|
||||||
GNU Automake: $ompi_automake_version
|
GNU Automake: $ompi_automake_version
|
||||||
GNU Libtool: $ompi_libtool_version
|
GNU Libtool: $ompi_libtool_version
|
||||||
GNU M4: $ompi_m4_version (BSD/Solaris M4 is ok)
|
|
||||||
Flex: $ompi_flex_version
|
Flex: $ompi_flex_version
|
||||||
=================================================================\n";
|
=================================================================\n";
|
||||||
my_exit(1);
|
my_exit(1);
|
||||||
@ -1032,7 +1029,6 @@ $step. Checking tool versions\n\n";
|
|||||||
&find_and_check("libtool", $ompi_libtoolize_search, $ompi_libtool_version);
|
&find_and_check("libtool", $ompi_libtoolize_search, $ompi_libtool_version);
|
||||||
&find_and_check("automake", $ompi_automake_search, $ompi_automake_version);
|
&find_and_check("automake", $ompi_automake_search, $ompi_automake_version);
|
||||||
&find_and_check("flex", $ompi_flex_search, $ompi_flex_version);
|
&find_and_check("flex", $ompi_flex_search, $ompi_flex_version);
|
||||||
&find_and_check("m4", $ompi_m4_search, $ompi_m4_version);
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user