From 6cffac79bd39443047d380eb46121a43a256737e Mon Sep 17 00:00:00 2001
From: Massimiliano Culpo <massimiliano.culpo@googlemail.com>
Date: Sat, 9 Apr 2016 11:21:29 +0200
Subject: openmpi : added a few variants

---
 .../repos/builtin/packages/openmpi/package.py      | 53 ++++++++++++++--------
 1 file changed, 34 insertions(+), 19 deletions(-)

(limited to 'var')

diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index 9a127f1812..1b498eb49c 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -28,10 +28,20 @@ class Openmpi(Package):
     patch('configure.patch', when="@1.10.0:1.10.1")
 
     variant('psm', default=False, description='Build support for the PSM library.')
+    variant('psm2', default=False, description='Build support for the Intel PSM2 library.')
     variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
+    variant('mxm', default=False, description='Build Mellanox Messaging support')
 
-    # TODO : variant support for other schedulers is missing
+    variant('thread_multiple', default=False, description='Enable MPI_THREAD_MULTIPLE support')
+
+    # TODO : variant support for alps, loadleveler  is missing
     variant('tm', default=False, description='Build TM (Torque, PBSPro, and compatible) support')
+    variant('slurm', default=False, description='Build SLURM scheduler component')
+
+    variant('pmi', default=False, description='Build PMI support, optionally adding DIR to the search path')
+    variant('sqlite3', default=False, description='Build sqlite3 support')
+
+    # TODO : support for CUDA is missing
 
     provides('mpi@:2.2', when='@1.6.5')
     provides('mpi@:3.0', when='@1.7.5:')
@@ -48,27 +58,35 @@ class Openmpi(Package):
         spack_env.set('OMPI_FC', spack_fc)
         spack_env.set('OMPI_F77', spack_f77)
 
+    @property
+    def verbs(self):
+        # Up through version 1.6, this option was previously named --with-openib
+        if self.spec.satisfies('@:1.6'):
+            return 'openib'
+        # In version 1.7, it was renamed to be --with-verbs
+        elif self.spec.satisfies('@1.7:'):
+            return 'verbs'
 
     def install(self, spec, prefix):
         config_args = ["--prefix=%s" % prefix,
                        "--with-hwloc=%s" % spec['hwloc'].prefix,
                        "--enable-shared",
                        "--enable-static"]
-
-        # Variants
-        if '+tm' in spec:
-            config_args.append("--with-tm")  # necessary for Torque support
-
-        if '+psm' in spec:
-            config_args.append("--with-psm")
-
-        if '+verbs' in spec:
-            # Up through version 1.6, this option was previously named --with-openib
-            if spec.satisfies('@:1.6'):
-                config_args.append("--with-openib")
-            # In version 1.7, it was renamed to be --with-verbs
-            elif spec.satisfies('@1.7:'):
-                config_args.append("--with-verbs")
+        # Variant based arguments
+        config_args.extend([
+            # Schedulers
+            '--with-tm' if '+tm' in spec else '--without-tm',
+            '--with-slurm' if '+slurm' in spec else '--without-slurm',
+            # Fabrics
+            '--with-psm' if '+psm' in spec else '--without-psm',
+            '--with-psm2' if '+psm2' in spec else '--without-psm2',
+            ('--with-%s' % self.verbs) if '+verbs' in spec else ('--without-%s' % self.verbs),
+            '--with-mxm' if '+mxm' in spec else '--without-mxm',
+            # Other options
+            '--enable-mpi-thread-multiple' if '+thread_multiple' in spec else '--disable-mpi-thread-multiple',
+            '--with-pmi' if '+pmi' in spec else '--without-pmi',
+            '--with-sqlite3' if '+sqlite3' in spec else '--without-sqlite3'
+        ])
 
         # TODO: use variants for this, e.g. +lanl, +llnl, etc.
         # use this for LANL builds, but for LLNL builds, we need:
@@ -76,9 +94,6 @@ class Openmpi(Package):
         if self.version == ver("1.6.5") and '+lanl' in spec:
             config_args.append("--with-platform=contrib/platform/lanl/tlcc2/optimized-nopanasas")
 
-        # 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")
 
-- 
cgit v1.2.3-70-g09d2


From 474048ae8ba5118ad995d271523241c80ab7c3e5 Mon Sep 17 00:00:00 2001
From: alalazo <massimiliano.culpo@googlemail.com>
Date: Tue, 10 May 2016 09:02:16 +0200
Subject: openmpi : fixes #920, added sqlite as a dependency

The default for the variant `pmi` has been set to `False`
 `sqlite` is now a dependency if `+sqlite3`
---
 var/spack/repos/builtin/packages/openmpi/package.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'var')

diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index 042f072226..c656f78dab 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -29,7 +29,7 @@ class Openmpi(Package):
 
     variant('psm', default=False, description='Build support for the PSM library.')
     variant('psm2', default=False, description='Build support for the Intel PSM2 library.')
-    variant('pmi', default=True, description='Build support for PMI-based launchers')
+    variant('pmi', default=False, description='Build support for PMI-based launchers')
     variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
     variant('mxm', default=False, description='Build Mellanox Messaging support')
 
@@ -47,6 +47,7 @@ class Openmpi(Package):
     provides('mpi@:3.0', when='@1.7.5:')
 
     depends_on('hwloc')
+    depends_on('sqlite', when='+sqlite3')
 
     def url_for_version(self, version):
         return "http://www.open-mpi.org/software/ompi/v%s/downloads/openmpi-%s.tar.bz2" % (version.up_to(2), version)
-- 
cgit v1.2.3-70-g09d2