summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorNicolas Richart <nicolas.richart@epfl.ch>2015-12-09 20:00:54 +0100
committerNicolas Richart <nicolas.richart@epfl.ch>2015-12-09 20:00:54 +0100
commit0daa08416a0209a71b131fb9c8b4d58fa222474f (patch)
tree67cc9e88f6706235b431ad4227caaec5d5233f29 /var
parente46af913be1d7df22bf62729355a7e1e6d04d444 (diff)
downloadspack-0daa08416a0209a71b131fb9c8b4d58fa222474f.tar.gz
spack-0daa08416a0209a71b131fb9c8b4d58fa222474f.tar.bz2
spack-0daa08416a0209a71b131fb9c8b4d58fa222474f.tar.xz
spack-0daa08416a0209a71b131fb9c8b4d58fa222474f.zip
corrected filter_compilers + added it for mvapich2
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/mpich/package.py13
-rw-r--r--var/spack/packages/mvapich2/package.py30
2 files changed, 38 insertions, 5 deletions
diff --git a/var/spack/packages/mpich/package.py b/var/spack/packages/mpich/package.py
index e018a08201..7cfa0a3b61 100644
--- a/var/spack/packages/mpich/package.py
+++ b/var/spack/packages/mpich/package.py
@@ -85,8 +85,13 @@ class Mpich(Package):
mpif77 = os.path.join(bin, 'mpif77')
mpif90 = os.path.join(bin, 'mpif90')
+ spack_cc = os.environ['CC']
+ spack_cxx = os.environ['CXX']
+ spack_f77 = os.environ['F77']
+ spack_fc = os.environ['FC']
+
kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True }
- filter_file('CC="cc"', 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
- filter_file('CXX="c++"', 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
- filter_file('F77="f77"', 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
- filter_file('FC="f90"', 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)
+ filter_file('CC="%s"' % spack_cc , 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
+ filter_file('CXX="%s"'% spack_cxx, 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
+ filter_file('F77="%s"'% spack_f77, 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
+ filter_file('FC="%s"' % spack_fc , 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)
diff --git a/var/spack/packages/mvapich2/package.py b/var/spack/packages/mvapich2/package.py
index dc2b2cb23f..23a11b3171 100644
--- a/var/spack/packages/mvapich2/package.py
+++ b/var/spack/packages/mvapich2/package.py
@@ -1,5 +1,5 @@
from spack import *
-
+import os
class Mvapich2(Package):
"""MVAPICH2 is an MPI implementation for Infiniband networks."""
@@ -154,3 +154,31 @@ class Mvapich2(Package):
configure(*configure_args)
make()
make("install")
+
+ self.filter_compilers()
+
+
+ def filter_compilers(self):
+ """Run after install to make the MPI compilers use the
+ compilers that Spack built the package with.
+
+ If this isn't done, they'll have CC, CXX, F77, and FC set
+ to Spack's generic cc, c++, f77, and f90. We want them to
+ be bound to whatever compiler they were built with.
+ """
+ bin = self.prefix.bin
+ mpicc = os.path.join(bin, 'mpicc')
+ mpicxx = os.path.join(bin, 'mpicxx')
+ mpif77 = os.path.join(bin, 'mpif77')
+ mpif90 = os.path.join(bin, 'mpif90')
+
+ spack_cc = os.environ['CC']
+ spack_cxx = os.environ['CXX']
+ spack_f77 = os.environ['F77']
+ spack_fc = os.environ['FC']
+
+ kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True }
+ filter_file('CC="%s"' % spack_cc , 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
+ filter_file('CXX="%s"'% spack_cxx, 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
+ filter_file('F77="%s"'% spack_f77, 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
+ filter_file('FC="%s"' % spack_fc , 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)