summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/openspeedshop-utils/package.py')
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop-utils/package.py339
1 files changed, 187 insertions, 152 deletions
diff --git a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
index 09efe6e91a..63e8015437 100644
--- a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
@@ -12,66 +12,84 @@ from spack.pkg.builtin.boost import Boost
class OpenspeedshopUtils(CMakePackage):
"""OpenSpeedShop is a community effort led by Trenza, Inc.
- It builds on top of a broad list of community infrastructures,
- most notably Dyninst and MRNet from UW, libmonitor from Rice,
- and PAPI from UTK. OpenSpeedShop is an open source multi platform
- Linux performance tool which is targeted to support performance
- analysis of applications running on both single node and large
- scale IA64, IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue
- Gene and Cray platforms. OpenSpeedShop development is hosted by
- Trenza Inc.. The infrastructure and base components of OpenSpeedShop
- are released as open source code primarily under LGPL.
- openspeedshop-utils is a package that does not have the
- qt3 gui. It was created to avoid a conflict between
- openspeedshop and cbtf-argonavis-gui based on the fact
- that spack will not allow a qt3 and qt4/qt5 dependency in a
- packages dependency tree.
+ It builds on top of a broad list of community infrastructures,
+ most notably Dyninst and MRNet from UW, libmonitor from Rice,
+ and PAPI from UTK. OpenSpeedShop is an open source multi platform
+ Linux performance tool which is targeted to support performance
+ analysis of applications running on both single node and large
+ scale IA64, IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue
+ Gene and Cray platforms. OpenSpeedShop development is hosted by
+ Trenza Inc.. The infrastructure and base components of OpenSpeedShop
+ are released as open source code primarily under LGPL.
+ openspeedshop-utils is a package that does not have the
+ qt3 gui. It was created to avoid a conflict between
+ openspeedshop and cbtf-argonavis-gui based on the fact
+ that spack will not allow a qt3 and qt4/qt5 dependency in a
+ packages dependency tree.
"""
homepage = "http://www.openspeedshop.org"
- git = "https://github.com/OpenSpeedShop/openspeedshop.git"
-
- version('develop', branch='master')
- version('2.4.2.1', branch='2.4.2.1')
- version('2.4.2', branch='2.4.2')
- version('2.4.1', branch='2.4.1')
-
- variant('runtime', default=False,
- description="build only the runtime libraries and collectors.")
- variant('crayfe', default=False,
- description="build only the FE tool using the runtime_dir \
- to point to target build.")
- variant('cuda', default=False,
- description="build with cuda packages included.")
-
- variant('build_type', default='RelWithDebInfo',
- description='The build type to build',
- values=('Debug', 'Release', 'RelWithDebInfo'))
+ git = "https://github.com/OpenSpeedShop/openspeedshop.git"
+
+ version("develop", branch="master")
+ version("2.4.2.1", branch="2.4.2.1")
+ version("2.4.2", branch="2.4.2")
+ version("2.4.1", branch="2.4.1")
+
+ variant(
+ "runtime", default=False, description="build only the runtime libraries and collectors."
+ )
+ variant(
+ "crayfe",
+ default=False,
+ description="build only the FE tool using the runtime_dir \
+ to point to target build.",
+ )
+ variant("cuda", default=False, description="build with cuda packages included.")
+
+ variant(
+ "build_type",
+ default="RelWithDebInfo",
+ description="The build type to build",
+ values=("Debug", "Release", "RelWithDebInfo"),
+ )
# MPI variants
- variant('openmpi', default=False,
- description="Build mpi collector for openmpi \
- MPI when variant is enabled.")
- variant('mpt', default=False,
- description="Build mpi collector for SGI \
- MPT MPI when variant is enabled.")
- variant('mvapich2', default=False,
- description="Build mpi collector for mvapich2\
- MPI when variant is enabled.")
- variant('mpich2', default=False,
- description="Build mpi collector for mpich2\
- MPI when variant is enabled.")
-
- depends_on("cmake@3.0.2:", type='build')
+ variant(
+ "openmpi",
+ default=False,
+ description="Build mpi collector for openmpi \
+ MPI when variant is enabled.",
+ )
+ variant(
+ "mpt",
+ default=False,
+ description="Build mpi collector for SGI \
+ MPT MPI when variant is enabled.",
+ )
+ variant(
+ "mvapich2",
+ default=False,
+ description="Build mpi collector for mvapich2\
+ MPI when variant is enabled.",
+ )
+ variant(
+ "mpich2",
+ default=False,
+ description="Build mpi collector for mpich2\
+ MPI when variant is enabled.",
+ )
+
+ depends_on("cmake@3.0.2:", type="build")
# Dependencies for openspeedshop that are common to all
# the variants of the OpenSpeedShop build
- depends_on("libtool", type='build')
- depends_on("bison", type='build')
- depends_on("flex@2.6.1", type='build')
+ depends_on("libtool", type="build")
+ depends_on("bison", type="build")
+ depends_on("flex@2.6.1", type="build")
# For binutils
- depends_on("binutils+plugins~gold@2.32", type='build')
+ depends_on("binutils+plugins~gold@2.32", type="build")
depends_on("elfutils", type="link")
depends_on("libdwarf")
@@ -85,46 +103,60 @@ class OpenspeedshopUtils(CMakePackage):
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
- depends_on("dyninst@master", when='@develop')
- depends_on("dyninst@10:", when='@2.4.0:9999')
+ depends_on("dyninst@master", when="@develop")
+ depends_on("dyninst@10:", when="@2.4.0:9999")
- depends_on("python@2.7.14:2.7", type=('build', 'run'))
+ depends_on("python@2.7.14:2.7", type=("build", "run"))
depends_on("libxml2")
# Dependencies for the openspeedshop cbtf packages.
- depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run'))
- depends_on("cbtf@1.9.3:9999", when='@2.4.0:9999', type=('build', 'link', 'run'))
-
- depends_on("cbtf-krell@develop", when='@develop', type=('build', 'link', 'run'))
- depends_on("cbtf-krell@1.9.3:9999", when='@2.4.0:9999', type=('build', 'link', 'run'))
-
- depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.3:9999+crayfe', when='@2.4.0:9999+crayfe', type=('build', 'link', 'run'))
-
- depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.3:9999+mpich2', when='@2.4.0:9999+mpich2', type=('build', 'link', 'run'))
-
- depends_on('cbtf-krell@develop+mpt', when='@develop+mpt', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.3:9999+mpt', when='@2.4.0:9999+mpt', type=('build', 'link', 'run'))
-
- depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.3:9999+mvapich2', when='@2.4.0:9999+mvapich2', type=('build', 'link', 'run'))
-
- depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.3:9999+openmpi', when='@2.4.0:9999+openmpi', type=('build', 'link', 'run'))
-
- depends_on("cbtf-argonavis@develop", when='@develop+cuda', type=('build', 'link', 'run'))
- depends_on("cbtf-argonavis@1.9.3:9999", when='@2.4.0:9999+cuda', type=('build', 'link', 'run'))
+ depends_on("cbtf@develop", when="@develop", type=("build", "link", "run"))
+ depends_on("cbtf@1.9.3:9999", when="@2.4.0:9999", type=("build", "link", "run"))
+
+ depends_on("cbtf-krell@develop", when="@develop", type=("build", "link", "run"))
+ depends_on("cbtf-krell@1.9.3:9999", when="@2.4.0:9999", type=("build", "link", "run"))
+
+ depends_on("cbtf-krell@develop+crayfe", when="@develop+crayfe", type=("build", "link", "run"))
+ depends_on(
+ "cbtf-krell@1.9.3:9999+crayfe", when="@2.4.0:9999+crayfe", type=("build", "link", "run")
+ )
+
+ depends_on("cbtf-krell@develop+mpich2", when="@develop+mpich2", type=("build", "link", "run"))
+ depends_on(
+ "cbtf-krell@1.9.3:9999+mpich2", when="@2.4.0:9999+mpich2", type=("build", "link", "run")
+ )
+
+ depends_on("cbtf-krell@develop+mpt", when="@develop+mpt", type=("build", "link", "run"))
+ depends_on("cbtf-krell@1.9.3:9999+mpt", when="@2.4.0:9999+mpt", type=("build", "link", "run"))
+
+ depends_on(
+ "cbtf-krell@develop+mvapich2", when="@develop+mvapich2", type=("build", "link", "run")
+ )
+ depends_on(
+ "cbtf-krell@1.9.3:9999+mvapich2",
+ when="@2.4.0:9999+mvapich2",
+ type=("build", "link", "run"),
+ )
+
+ depends_on(
+ "cbtf-krell@develop+openmpi", when="@develop+openmpi", type=("build", "link", "run")
+ )
+ depends_on(
+ "cbtf-krell@1.9.3:9999+openmpi", when="@2.4.0:9999+openmpi", type=("build", "link", "run")
+ )
+
+ depends_on("cbtf-argonavis@develop", when="@develop+cuda", type=("build", "link", "run"))
+ depends_on("cbtf-argonavis@1.9.3:9999", when="@2.4.0:9999+cuda", type=("build", "link", "run"))
# For MRNet
- depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run'))
- depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.4.0:9999', type=('build', 'link', 'run'))
+ depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop", type=("build", "link", "run"))
+ depends_on("mrnet@5.0.1-3:+lwthreads", when="@2.4.0:9999", type=("build", "link", "run"))
- patch('arm.patch', when='target=aarch64:')
+ patch("arm.patch", when="target=aarch64:")
parallel = False
- build_directory = 'build_openspeedshop'
+ build_directory = "build_openspeedshop"
def set_cray_login_node_cmake_options(self, spec, cmake_options):
# Appends to cmake_options the options that will enable the appropriate
@@ -138,15 +170,13 @@ class OpenspeedshopUtils(CMakePackage):
# spec['cbtf'].prefix is the login node value for this build, as
# we only get here when building the login node components and
# that is all that is known to spack.
- be_ck = spack.store.db.query_one('cbtf-krell arch=cray-CNL-haswell')
+ be_ck = spack.store.db.query_one("cbtf-krell arch=cray-CNL-haswell")
# Equivalent to install-tool cmake arg:
# '-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
# % <base dir>/cbtf_v2.4.0elease/compute)
- cray_login_node_options.append('-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
- % be_ck.prefix)
- cray_login_node_options.append('-DRUNTIME_PLATFORM=%s'
- % rt_platform)
+ cray_login_node_options.append("-DCBTF_KRELL_CN_RUNTIME_DIR=%s" % be_ck.prefix)
+ cray_login_node_options.append("-DRUNTIME_PLATFORM=%s" % rt_platform)
cmake_options.extend(cray_login_node_options)
@@ -161,38 +191,44 @@ class OpenspeedshopUtils(CMakePackage):
# Indicate building cbtf vers (transfer rawdata files)
instrumentor_setting = "cbtf"
- if spec.satisfies('+runtime'):
+ if spec.satisfies("+runtime"):
self.set_defaultbase_cmake_options(spec, cmake_args)
cmake_args.extend(
- ['-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags,
- '-DINSTRUMENTOR=%s' % instrumentor_setting,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix])
+ [
+ "-DCMAKE_CXX_FLAGS=%s" % compile_flags,
+ "-DCMAKE_C_FLAGS=%s" % compile_flags,
+ "-DINSTRUMENTOR=%s" % instrumentor_setting,
+ "-DCBTF_DIR=%s" % spec["cbtf"].prefix,
+ "-DCBTF_KRELL_DIR=%s" % spec["cbtf-krell"].prefix,
+ "-DMRNET_DIR=%s" % spec["mrnet"].prefix,
+ ]
+ )
else:
# Appends base options to cmake_args
self.set_defaultbase_cmake_options(spec, cmake_args)
cmake_args.extend(
- ['-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags,
- '-DINSTRUMENTOR=%s' % instrumentor_setting,
- '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix])
-
- if spec.satisfies('+crayfe'):
+ [
+ "-DCMAKE_CXX_FLAGS=%s" % compile_flags,
+ "-DCMAKE_C_FLAGS=%s" % compile_flags,
+ "-DINSTRUMENTOR=%s" % instrumentor_setting,
+ "-DSQLITE3_DIR=%s" % spec["sqlite"].prefix,
+ "-DCBTF_DIR=%s" % spec["cbtf"].prefix,
+ "-DCBTF_KRELL_DIR=%s" % spec["cbtf-krell"].prefix,
+ "-DMRNET_DIR=%s" % spec["mrnet"].prefix,
+ ]
+ )
+
+ if spec.satisfies("+crayfe"):
# We need to build target/compute node
# components/libraries first then pass
# those libraries to the openspeedshop
# login node build
self.set_cray_login_node_cmake_options(spec, cmake_args)
- cmake_args.extend(['-DBUILD_QT3_GUI=FALSE'])
+ cmake_args.extend(["-DBUILD_QT3_GUI=FALSE"])
return cmake_args
@@ -200,24 +236,24 @@ class OpenspeedshopUtils(CMakePackage):
# Appends to cmake_options the options that will enable
# the appropriate base level options to the openspeedshop
# cmake build.
- python_exe = spec['python'].command.path
- python_library = spec['python'].libs[0]
- python_include = spec['python'].headers.directories[0]
+ python_exe = spec["python"].command.path
+ python_library = spec["python"].libs[0]
+ python_include = spec["python"].headers.directories[0]
base_options = []
- base_options.append('-DBINUTILS_DIR=%s' % spec['binutils'].prefix)
- base_options.append('-DLIBELF_DIR=%s' % spec['elfutils'].prefix)
- base_options.append('-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix)
- base_options.append('-DPYTHON_EXECUTABLE=%s' % python_exe)
- base_options.append('-DPYTHON_INCLUDE_DIR=%s' % python_include)
- base_options.append('-DPYTHON_LIBRARY=%s' % python_library)
- base_options.append('-DBoost_NO_SYSTEM_PATHS=TRUE')
- base_options.append('-DBoost_NO_BOOST_CMAKE=TRUE')
- base_options.append('-DBOOST_ROOT=%s' % spec['boost'].prefix)
- base_options.append('-DBoost_DIR=%s' % spec['boost'].prefix)
- base_options.append('-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib)
- base_options.append('-DDYNINST_DIR=%s' % spec['dyninst'].prefix)
+ base_options.append("-DBINUTILS_DIR=%s" % spec["binutils"].prefix)
+ base_options.append("-DLIBELF_DIR=%s" % spec["elfutils"].prefix)
+ base_options.append("-DLIBDWARF_DIR=%s" % spec["libdwarf"].prefix)
+ base_options.append("-DPYTHON_EXECUTABLE=%s" % python_exe)
+ base_options.append("-DPYTHON_INCLUDE_DIR=%s" % python_include)
+ base_options.append("-DPYTHON_LIBRARY=%s" % python_library)
+ base_options.append("-DBoost_NO_SYSTEM_PATHS=TRUE")
+ base_options.append("-DBoost_NO_BOOST_CMAKE=TRUE")
+ base_options.append("-DBOOST_ROOT=%s" % spec["boost"].prefix)
+ base_options.append("-DBoost_DIR=%s" % spec["boost"].prefix)
+ base_options.append("-DBOOST_LIBRARYDIR=%s" % spec["boost"].prefix.lib)
+ base_options.append("-DDYNINST_DIR=%s" % spec["dyninst"].prefix)
cmake_options.extend(base_options)
@@ -228,23 +264,23 @@ class OpenspeedshopUtils(CMakePackage):
mpi_options = []
# openmpi
- if spec.satisfies('+openmpi'):
- mpi_options.append('-DOPENMPI_DIR=%s' % spec['openmpi'].prefix)
+ if spec.satisfies("+openmpi"):
+ mpi_options.append("-DOPENMPI_DIR=%s" % spec["openmpi"].prefix)
# mpich
- if spec.satisfies('+mpich'):
- mpi_options.append('-DMPICH_DIR=%s' % spec['mpich'].prefix)
+ if spec.satisfies("+mpich"):
+ mpi_options.append("-DMPICH_DIR=%s" % spec["mpich"].prefix)
# mpich2
- if spec.satisfies('+mpich2'):
- mpi_options.append('-DMPICH2_DIR=%s' % spec['mpich2'].prefix)
+ if spec.satisfies("+mpich2"):
+ mpi_options.append("-DMPICH2_DIR=%s" % spec["mpich2"].prefix)
# mvapich
- if spec.satisfies('+mvapich'):
- mpi_options.append('-DMVAPICH_DIR=%s' % spec['mvapich'].prefix)
+ if spec.satisfies("+mvapich"):
+ mpi_options.append("-DMVAPICH_DIR=%s" % spec["mvapich"].prefix)
# mvapich2
- if spec.satisfies('+mvapich2'):
- mpi_options.append('-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix)
+ if spec.satisfies("+mvapich2"):
+ mpi_options.append("-DMVAPICH2_DIR=%s" % spec["mvapich2"].prefix)
# mpt
- if spec.satisfies('+mpt'):
- mpi_options.append('-DMPT_DIR=%s' % spec['mpt'].prefix)
+ if spec.satisfies("+mpt"):
+ mpi_options.append("-DMPT_DIR=%s" % spec["mpt"].prefix)
cmake_options.extend(mpi_options)
@@ -255,31 +291,30 @@ class OpenspeedshopUtils(CMakePackage):
# set the DYNINSTAPI_RT_LIB library which is
# required for OpenSpeedShop to find loop level
# performance information
- dyninst_libdir = find_libraries('libdyninstAPI_RT',
- root=self.spec['dyninst'].prefix,
- shared=True, recursive=True)
+ dyninst_libdir = find_libraries(
+ "libdyninstAPI_RT", root=self.spec["dyninst"].prefix, shared=True, recursive=True
+ )
# Set Dyninst RT library path to support OSS loop resolution code
- env.set('DYNINSTAPI_RT_LIB', dyninst_libdir[0])
+ env.set("DYNINSTAPI_RT_LIB", dyninst_libdir[0])
# Find openspeedshop library path
oss_libdir = find_libraries(
- 'libopenss-framework',
- root=self.spec['openspeedshop-utils'].prefix,
- shared=True, recursive=True)
- env.prepend_path('LD_LIBRARY_PATH',
- os.path.dirname(oss_libdir.joined()))
-
- env.set('OPENSS_RAWDATA_DIR', '.')
-
- cbtf_mc = '/sbin/cbtf_mrnet_commnode'
- cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend'
- env.set('XPLAT_RSH', 'ssh')
- env.set('MRNET_COMM_PATH',
- join_path(self.spec['cbtf-krell'].prefix + cbtf_mc))
- env.set('CBTF_MRNET_BACKEND_PATH',
- join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb))
- env.prepend_path('PATH', self.spec['mrnet'].prefix.bin)
- env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin)
- env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin)
- env.prepend_path('PATH', self.spec['python'].prefix.bin)
+ "libopenss-framework",
+ root=self.spec["openspeedshop-utils"].prefix,
+ shared=True,
+ recursive=True,
+ )
+ env.prepend_path("LD_LIBRARY_PATH", os.path.dirname(oss_libdir.joined()))
+
+ env.set("OPENSS_RAWDATA_DIR", ".")
+
+ cbtf_mc = "/sbin/cbtf_mrnet_commnode"
+ cbtf_lmb = "/sbin/cbtf_libcbtf_mrnet_backend"
+ env.set("XPLAT_RSH", "ssh")
+ env.set("MRNET_COMM_PATH", join_path(self.spec["cbtf-krell"].prefix + cbtf_mc))
+ env.set("CBTF_MRNET_BACKEND_PATH", join_path(self.spec["cbtf-krell"].prefix + cbtf_lmb))
+ env.prepend_path("PATH", self.spec["mrnet"].prefix.bin)
+ env.prepend_path("PATH", self.spec["cbtf-krell"].prefix.bin)
+ env.prepend_path("PATH", self.spec["cbtf-krell"].prefix.sbin)
+ env.prepend_path("PATH", self.spec["python"].prefix.bin)