diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/openspeedshop-utils/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/openspeedshop-utils/package.py | 339 |
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) |