diff --git a/lib/spack/spack/__init__.py b/lib/spack/spack/__init__.py index bf91a885caaf31af3b5c6f40d022fe64f9cd78b8..da7088640f7eb9ca71f5326a649f94541a5691cc 100644 --- a/lib/spack/spack/__init__.py +++ b/lib/spack/spack/__init__.py @@ -137,9 +137,9 @@ # TODO: it's not clear where all the stuff that needs to be included in packages # should live. This file is overloaded for spack core vs. for packages. # -__all__ = ['Package', 'Version', 'when'] +__all__ = ['Package', 'Version', 'when', 'ver'] from spack.package import Package -from spack.version import Version +from spack.version import Version, ver from spack.multimethod import when import llnl.util.filesystem diff --git a/var/spack/packages/mpich/package.py b/var/spack/packages/mpich/package.py index 19a1efe9c36a41c098bd31cfbde021d345929817..9062a6bae89637ff02ee3b9a3e3c97cb145b183b 100644 --- a/var/spack/packages/mpich/package.py +++ b/var/spack/packages/mpich/package.py @@ -38,8 +38,18 @@ class Mpich(Package): provides('mpi@:1', when='@1:') def install(self, spec, prefix): - configure( - "--prefix=" + prefix, - "--enable-shared") + config_args = ["--prefix=" + prefix, + "--enable-shared"] + + # TODO: Spack should make it so that you can't actually find + # these compilers if they're "disabled" for the current + # compiler configuration. + if not self.compiler.f77: + config_args.append("--disable-f77") + + if not self.compiler.fc: + config_args.append("--disable-fc") + + configure(*config_args) make() make("install") diff --git a/var/spack/packages/openmpi/package.py b/var/spack/packages/openmpi/package.py index 0ce09bdd8db910818e7c69fa294699b1000d037c..1ef8a8f00025bc3a2dcf2bf888554a812e2f9d61 100644 --- a/var/spack/packages/openmpi/package.py +++ b/var/spack/packages/openmpi/package.py @@ -10,22 +10,32 @@ class Openmpi(Package): """ homepage = "http://www.open-mpi.org" - url = "http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.5.tar.bz2" - version('1.6.5', '03aed2a4aa4d0b27196962a2a65fc475') + version('1.8.2', 'ab538ed8e328079d566fc797792e016e', + url='http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.2.tar.gz') - provides('mpi@:2') + version('1.6.5', '03aed2a4aa4d0b27196962a2a65fc475', + url = "http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.5.tar.bz2") + patch('ad_lustre_rwcontig_open_source.patch', when="@1.6.5") + patch('llnl-platforms.patch', when="@1.6.5") - patch('ad_lustre_rwcontig_open_source.patch') - patch('llnl-platforms.patch') + provides('mpi@:2') def install(self, spec, prefix): - configure("--prefix=%s" % prefix, - "--with-platform=contrib/platform/lanl/tlcc2/optimized-nopanasas") + config_args = ["--prefix=%s" % prefix] + + # TODO: use variants for this, e.g. +lanl, +llnl, etc. + # use this for LANL builds, but for LLNL builds, we need: + # "--with-platform=contrib/platform/llnl/optimized" + if self.version == ver("1.6.5"): + confg_args.append("--with-platform=contrib/platform/lanl/tlcc2/optimized-nopanasas") - # TODO: implement variants next, so we can have LLNL and LANL options. - # use above for LANL builds, but for LLNL builds, we need this - # "--with-platform=contrib/platform/llnl/optimized") + # TODO: Spack should make it so that you can't actually find + # these compilers if they're "disabled" for the current + # compiler configuration. + if not self.compiler.f77 and not self.compiler.fc: + config_args.append("--enable-mpi-fortran=no") + configure(*config_args) make() make("install")