diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/scorep/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/scorep/package.py | 61 |
1 files changed, 40 insertions, 21 deletions
diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py index 246ff59192..715006255c 100644 --- a/var/spack/repos/builtin/packages/scorep/package.py +++ b/var/spack/repos/builtin/packages/scorep/package.py @@ -43,13 +43,20 @@ class Scorep(AutotoolsPackage): patch('gcc7.patch', when='@:3') - ########## + variant('mpi', default=True, description="Enable MPI support") + variant('papi', default=True, description="Enable PAPI") + variant('pdt', default=False, description="Enable PDT") + variant('shmem', default=False, description='Enable shmem tracing') + # Dependencies for SCORE-P are quite tight. See the homepage for more - # information. + # information. Starting with scorep 4.0 / cube 4.4, Score-P only depends on + # two components of cube -- cubew and cubelib. + # SCOREP 4 depends_on('otf2@2.1:', when='@4:') depends_on('opari2@2.0:', when='@4:') - depends_on('cube@4.4:', when='@4:') + depends_on('cubew@4.4:', when='@4:') + depends_on('cubelib@4.4:', when='@4:') # SCOREP 3 depends_on('otf2@2:', when='@3:3.99') depends_on('opari2@2:', when='@3:3.99') @@ -66,13 +73,10 @@ class Scorep(AutotoolsPackage): depends_on("otf2@1.4", when='@1.3') depends_on("opari2@1.1.4", when='@1.3') depends_on("cube@4.2.3", when='@1.3') - ########## - depends_on("mpi") - depends_on("papi") - depends_on('pdt') - - variant('shmem', default=False, description='Enable shmem tracing') + depends_on('mpi', when="+mpi") + depends_on('papi', when="+papi") + depends_on('pdt', when="+pdt") # Score-P requires a case-sensitive file system, and therefore # does not work on macOS @@ -85,15 +89,29 @@ class Scorep(AutotoolsPackage): config_args = [ "--with-otf2=%s" % spec['otf2'].prefix.bin, "--with-opari2=%s" % spec['opari2'].prefix.bin, - "--with-cube=%s" % spec['cube'].prefix.bin, - "--with-papi-header=%s" % spec['papi'].prefix.include, - "--with-papi-lib=%s" % spec['papi'].prefix.lib, - "--with-pdt=%s" % spec['pdt'].prefix.bin, "--enable-shared"] cname = spec.compiler.name config_args.append('--with-nocross-compiler-suite={0}'.format(cname)) + if self.version >= Version('4.0'): + config_args.append("--with-cubew=%s" % spec['cubew'].prefix.bin) + config_args.append("--with-cubelib=%s" % + spec['cubelib'].prefix.bin) + else: + config_args.append("--with-cube=%s" % spec['cube'].prefix.bin) + + if "+papi" in spec: + config_args.append("--with-papi-header=%s" % + spec['papi'].prefix.include) + config_args.append("--with-papi-lib=%s" % spec['papi'].prefix.lib) + + if "+pdt" in spec: + config_args.append("--with-pdt=%s" % spec['pdt'].prefix.bin) + + config_args += self.with_or_without('shmem') + config_args += self.with_or_without('mpi') + if spec.satisfies('^intel-mpi'): config_args.append('--with-mpi=intel3') elif spec.satisfies('^mpich') or spec.satisfies('^mvapich2'): @@ -101,16 +119,17 @@ class Scorep(AutotoolsPackage): elif spec.satisfies('^openmpi'): config_args.append('--with-mpi=openmpi') - if '~shmem' in spec: - config_args.append("--without-shmem") - config_args.extend([ 'CFLAGS={0}'.format(self.compiler.pic_flag), - 'CXXFLAGS={0}'.format(self.compiler.pic_flag), - 'MPICC={0}'.format(spec['mpi'].mpicc), - 'MPICXX={0}'.format(spec['mpi'].mpicxx), - 'MPIF77={0}'.format(spec['mpi'].mpif77), - 'MPIFC={0}'.format(spec['mpi'].mpifc) + 'CXXFLAGS={0}'.format(self.compiler.pic_flag) ]) + if "+mpi" in spec: + config_args.extend([ + 'MPICC={0}'.format(spec['mpi'].mpicc), + 'MPICXX={0}'.format(spec['mpi'].mpicxx), + 'MPIF77={0}'.format(spec['mpi'].mpif77), + 'MPIFC={0}'.format(spec['mpi'].mpifc) + ]) + return config_args |