athena, mvapich2, spectrum-mpi: use new API to setup environment (#13677)
* athena: updated api call to setup build environment * mvapich2: updated api call to setup build and run environment * spectrum-mpi: updated api call to setup build and run environment
This commit is contained in:
parent
b1965fa913
commit
826e8c6394
3 changed files with 65 additions and 66 deletions
|
@ -146,23 +146,23 @@ class Athena(AutotoolsPackage):
|
||||||
|
|
||||||
patch('missing-separator.patch')
|
patch('missing-separator.patch')
|
||||||
|
|
||||||
def setup_environment(self, spack_env, run_env):
|
def setup_build_environment(self, env):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
|
|
||||||
spack_env.set('OPT', '-O3')
|
env.set('OPT', '-O3')
|
||||||
|
|
||||||
if '+mpi' in spec:
|
if '+mpi' in spec:
|
||||||
spack_env.set('CC', spec['mpi'].mpicc)
|
env.set('CC', spec['mpi'].mpicc)
|
||||||
spack_env.set('LDR', spec['mpi'].mpicc)
|
env.set('LDR', spec['mpi'].mpicc)
|
||||||
spack_env.set('MPILIB', spec['mpi'].libs.ld_flags)
|
env.set('MPILIB', spec['mpi'].libs.ld_flags)
|
||||||
spack_env.set('MPIINC', spec['mpi'].headers.include_flags)
|
env.set('MPIINC', spec['mpi'].headers.include_flags)
|
||||||
else:
|
else:
|
||||||
spack_env.set('CC', spack_cc)
|
env.set('CC', spack_cc)
|
||||||
spack_env.set('LDR', spack_cc)
|
env.set('LDR', spack_cc)
|
||||||
|
|
||||||
if '+fft' in spec:
|
if '+fft' in spec:
|
||||||
spack_env.set('FFTWLIB', spec['fftw'].libs.ld_flags)
|
env.set('FFTWLIB', spec['fftw'].libs.ld_flags)
|
||||||
spack_env.set('FFTWINC', spec['fftw'].headers.include_flags)
|
env.set('FFTWINC', spec['fftw'].headers.include_flags)
|
||||||
|
|
||||||
def configure_args(self):
|
def configure_args(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
|
|
|
@ -3,10 +3,9 @@
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
import os.path
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from spack import *
|
|
||||||
|
|
||||||
|
|
||||||
class Mvapich2(AutotoolsPackage):
|
class Mvapich2(AutotoolsPackage):
|
||||||
"""MVAPICH2 is an MPI implementation for Infiniband networks."""
|
"""MVAPICH2 is an MPI implementation for Infiniband networks."""
|
||||||
|
@ -195,34 +194,35 @@ def file_system_options(self):
|
||||||
|
|
||||||
return opts
|
return opts
|
||||||
|
|
||||||
def setup_environment(self, spack_env, run_env):
|
def setup_build_environment(self, env):
|
||||||
spec = self.spec
|
|
||||||
# mvapich2 configure fails when F90 and F90FLAGS are set
|
# mvapich2 configure fails when F90 and F90FLAGS are set
|
||||||
spack_env.unset('F90')
|
env.unset('F90')
|
||||||
spack_env.unset('F90FLAGS')
|
env.unset('F90FLAGS')
|
||||||
if 'process_managers=slurm' in spec:
|
|
||||||
run_env.set('SLURM_MPI_TYPE', 'pmi2')
|
|
||||||
|
|
||||||
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
|
def setup_run_environment(self, env):
|
||||||
spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
|
if 'process_managers=slurm' in self.spec:
|
||||||
spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpicxx'))
|
env.set('SLURM_MPI_TYPE', 'pmi2')
|
||||||
spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
|
|
||||||
spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
|
|
||||||
|
|
||||||
spack_env.set('MPICH_CC', spack_cc)
|
def setup_dependent_build_environment(self, env, dependent_spec):
|
||||||
spack_env.set('MPICH_CXX', spack_cxx)
|
env.set('MPICC', os.path.join(self.prefix.bin, 'mpicc'))
|
||||||
spack_env.set('MPICH_F77', spack_f77)
|
env.set('MPICXX', os.path.join(self.prefix.bin, 'mpicxx'))
|
||||||
spack_env.set('MPICH_F90', spack_fc)
|
env.set('MPIF77', os.path.join(self.prefix.bin, 'mpif77'))
|
||||||
spack_env.set('MPICH_FC', spack_fc)
|
env.set('MPIF90', os.path.join(self.prefix.bin, 'mpif90'))
|
||||||
|
|
||||||
|
env.set('MPICH_CC', spack_cc)
|
||||||
|
env.set('MPICH_CXX', spack_cxx)
|
||||||
|
env.set('MPICH_F77', spack_f77)
|
||||||
|
env.set('MPICH_F90', spack_fc)
|
||||||
|
env.set('MPICH_FC', spack_fc)
|
||||||
|
|
||||||
def setup_dependent_package(self, module, dependent_spec):
|
def setup_dependent_package(self, module, dependent_spec):
|
||||||
self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
|
self.spec.mpicc = os.path.join(self.prefix.bin, 'mpicc')
|
||||||
self.spec.mpicxx = join_path(self.prefix.bin, 'mpicxx')
|
self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpicxx')
|
||||||
self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
|
self.spec.mpifc = os.path.join(self.prefix.bin, 'mpif90')
|
||||||
self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
|
self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpif77')
|
||||||
self.spec.mpicxx_shared_libs = [
|
self.spec.mpicxx_shared_libs = [
|
||||||
join_path(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)),
|
os.path.join(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)),
|
||||||
join_path(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix))
|
os.path.join(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix))
|
||||||
]
|
]
|
||||||
|
|
||||||
@run_before('configure')
|
@run_before('configure')
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
import os.path
|
||||||
from spack import *
|
|
||||||
|
|
||||||
|
|
||||||
class SpectrumMpi(Package):
|
class SpectrumMpi(Package):
|
||||||
|
@ -19,41 +18,41 @@ def install(self, spec, prefix):
|
||||||
def setup_dependent_package(self, module, dependent_spec):
|
def setup_dependent_package(self, module, dependent_spec):
|
||||||
# get the compiler names
|
# get the compiler names
|
||||||
if '%xl' in dependent_spec or '%xl_r' in dependent_spec:
|
if '%xl' in dependent_spec or '%xl_r' in dependent_spec:
|
||||||
self.spec.mpicc = join_path(self.prefix.bin, 'mpixlc')
|
self.spec.mpicc = os.path.join(self.prefix.bin, 'mpixlc')
|
||||||
self.spec.mpicxx = join_path(self.prefix.bin, 'mpixlC')
|
self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpixlC')
|
||||||
self.spec.mpif77 = join_path(self.prefix.bin, 'mpixlf')
|
self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpixlf')
|
||||||
self.spec.mpifc = join_path(self.prefix.bin, 'mpixlf')
|
self.spec.mpifc = os.path.join(self.prefix.bin, 'mpixlf')
|
||||||
elif '%pgi' in dependent_spec:
|
elif '%pgi' in dependent_spec:
|
||||||
self.spec.mpicc = join_path(self.prefix.bin, 'mpipgicc')
|
self.spec.mpicc = os.path.join(self.prefix.bin, 'mpipgicc')
|
||||||
self.spec.mpicxx = join_path(self.prefix.bin, 'mpipgic++')
|
self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpipgic++')
|
||||||
self.spec.mpif77 = join_path(self.prefix.bin, 'mpipgifort')
|
self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpipgifort')
|
||||||
self.spec.mpifc = join_path(self.prefix.bin, 'mpipgifort')
|
self.spec.mpifc = os.path.join(self.prefix.bin, 'mpipgifort')
|
||||||
else:
|
else:
|
||||||
self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
|
self.spec.mpicc = os.path.join(self.prefix.bin, 'mpicc')
|
||||||
self.spec.mpicxx = join_path(self.prefix.bin, 'mpicxx')
|
self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpicxx')
|
||||||
self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
|
self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpif77')
|
||||||
self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
|
self.spec.mpifc = os.path.join(self.prefix.bin, 'mpif90')
|
||||||
|
|
||||||
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
|
def setup_dependent_build_environment(self, env, dependent_spec):
|
||||||
if '%xl' in dependent_spec or '%xl_r' in dependent_spec:
|
if '%xl' in dependent_spec or '%xl_r' in dependent_spec:
|
||||||
spack_env.set('MPICC', join_path(self.prefix.bin, 'mpixlc'))
|
env.set('MPICC', os.path.join(self.prefix.bin, 'mpixlc'))
|
||||||
spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpixlC'))
|
env.set('MPICXX', os.path.join(self.prefix.bin, 'mpixlC'))
|
||||||
spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpixlf'))
|
env.set('MPIF77', os.path.join(self.prefix.bin, 'mpixlf'))
|
||||||
spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpixlf'))
|
env.set('MPIF90', os.path.join(self.prefix.bin, 'mpixlf'))
|
||||||
elif '%pgi' in dependent_spec:
|
elif '%pgi' in dependent_spec:
|
||||||
spack_env.set('MPICC', join_path(self.prefix.bin, 'mpipgicc'))
|
env.set('MPICC', os.path.join(self.prefix.bin, 'mpipgicc'))
|
||||||
spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpipgic++'))
|
env.set('MPICXX', os.path.join(self.prefix.bin, 'mpipgic++'))
|
||||||
spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpipgifort'))
|
env.set('MPIF77', os.path.join(self.prefix.bin, 'mpipgifort'))
|
||||||
spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpipgifort'))
|
env.set('MPIF90', os.path.join(self.prefix.bin, 'mpipgifort'))
|
||||||
else:
|
else:
|
||||||
spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
|
env.set('MPICC', os.path.join(self.prefix.bin, 'mpicc'))
|
||||||
spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpic++'))
|
env.set('MPICXX', os.path.join(self.prefix.bin, 'mpic++'))
|
||||||
spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
|
env.set('MPIF77', os.path.join(self.prefix.bin, 'mpif77'))
|
||||||
spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
|
env.set('MPIF90', os.path.join(self.prefix.bin, 'mpif90'))
|
||||||
|
|
||||||
spack_env.set('OMPI_CC', spack_cc)
|
env.set('OMPI_CC', spack_cc)
|
||||||
spack_env.set('OMPI_CXX', spack_cxx)
|
env.set('OMPI_CXX', spack_cxx)
|
||||||
spack_env.set('OMPI_FC', spack_fc)
|
env.set('OMPI_FC', spack_fc)
|
||||||
spack_env.set('OMPI_F77', spack_f77)
|
env.set('OMPI_F77', spack_f77)
|
||||||
|
|
||||||
spack_env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib)
|
env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib)
|
||||||
|
|
Loading…
Reference in a new issue