From dc36b4737d16ea4aa49daa14fb782b5ea85b60e3 Mon Sep 17 00:00:00 2001 From: G-Ragghianti <33492707+G-Ragghianti@users.noreply.github.com> Date: Wed, 13 Nov 2019 16:49:06 -0500 Subject: Papi components (#13706) * Added support for papi components. * Restored sha256 hashes to package files. --- var/spack/repos/builtin/packages/papi/package.py | 25 ++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/papi/package.py b/var/spack/repos/builtin/packages/papi/package.py index 7f863fa7f6..caef44ad31 100644 --- a/var/spack/repos/builtin/packages/papi/package.py +++ b/var/spack/repos/builtin/packages/papi/package.py @@ -17,11 +17,12 @@ class Papi(Package): enables software engineers to see, in near real time, the relation between software performance and processor events. In addition Component PAPI provides access to a collection of - components that expose performance measurement opportunites + components that expose performance measurement opportunities across the hardware and software stack.""" homepage = "http://icl.cs.utk.edu/papi/index.html" + maintainers = ['G-Ragghianti'] - url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz" + url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz" version('5.7.0', sha256='d1a3bb848e292c805bc9f29e09c27870e2ff4cda6c2fba3b7da8b4bba6547589') version('5.6.0', sha256='49b7293f9ca2d74d6d80bd06b5c4be303663123267b4ac0884cbcae4c914dc47') version('5.5.1', sha256='49dc2c2323f6164c4a7e81b799ed690ee73158671205e71501f849391dd2c2d4') @@ -30,11 +31,27 @@ class Papi(Package): version('5.4.1', sha256='e131c1449786fe870322a949e44f974a5963824f683232e653fb570cc65d4e87') version('5.3.0', sha256='99f2f36398b370e75d100b4a189d5bc0ac4f5dd66df44d441f88fd32e1421524') + variant('example', default=True, description='Install the example files') + variant('infiniband', default=False, description='Enable Infiniband support') + variant('powercap', default=False, description='Enable powercap interface support') + variant('rapl', default=False, description='Enable RAPL support') + variant('lmsensors', default=False, description='Enable lm_sensors support') + + depends_on('lm-sensors', when='+lmsensors') + # Does not build with newer versions of gcc, see # https://bitbucket.org/icl/papi/issues/46/cannot-compile-on-arch-linux patch('https://bitbucket.org/icl/papi/commits/53de184a162b8a7edff48fed01a15980664e15b1/raw', sha256='64c57b3ad4026255238cc495df6abfacc41de391a0af497c27d0ac819444a1f8', when='@5.4.0:5.6.99%gcc@8:') def install(self, spec, prefix): + if '+lmsensors' in spec: + with working_dir("src/components/lmsensors"): + configure_args = [ + "--with-sensors_incdir=%s/include/sensors" % + spec['lm-sensors'].prefix, + "--with-sensors_libdir=%s/lib" % + spec['lm-sensors'].prefix] + configure(*configure_args) with working_dir("src"): configure_args = ["--prefix=%s" % prefix] @@ -44,6 +61,10 @@ class Papi(Package): # fail, so that PAPI does not get confused configure_args.append('MPICC=:') + configure_args.append( + '--with-components={0}'.format(' '.join( + filter(lambda x: spec.variants[x].value, spec.variants)))) + configure(*configure_args) # Don't use -- cgit v1.2.3-70-g09d2