Some fixups for Adam's callpath and adept-utils packages.

- Make spack packages RPATH *ALL* dependencies (i.e. the whole tree)
- prevents callpath link from finding wrong libelf -- always uses the one dyninst used.
This commit is contained in:
Todd Gamblin
2014-09-16 21:52:39 -07:00
parent 656cf12cda
commit a4c8e945c7
5 changed files with 12 additions and 10 deletions

View File

@@ -122,7 +122,7 @@ def set_build_environment_variables(pkg):
# Prefixes of all of the package's dependencies go in # Prefixes of all of the package's dependencies go in
# SPACK_DEPENDENCIES # SPACK_DEPENDENCIES
dep_prefixes = [d.package.prefix for d in pkg.spec.dependencies.values()] dep_prefixes = [d.prefix for d in pkg.spec.traverse(root=False)]
path_set(SPACK_DEPENDENCIES, dep_prefixes) path_set(SPACK_DEPENDENCIES, dep_prefixes)
# Install prefix # Install prefix

View File

@@ -773,7 +773,7 @@ def do_uninstall(self, **kwargs):
' '.join(formatted_deps)) ' '.join(formatted_deps))
self.remove_prefix() self.remove_prefix()
tty.msg("Successfully uninstalled %s." % self.spec) tty.msg("Successfully uninstalled %s." % self.spec.short_spec)
# Once everything else is done, run post install hooks # Once everything else is done, run post install hooks
spack.hooks.post_uninstall(self) spack.hooks.post_uninstall(self)

View File

@@ -121,7 +121,7 @@ def which(name, **kwargs):
for dir in path: for dir in path:
exe = os.path.join(dir, name) exe = os.path.join(dir, name)
if os.access(exe, os.X_OK): if os.path.isfile(exe) and os.access(exe, os.X_OK):
return Executable(exe) return Executable(exe)
if required: if required:

View File

@@ -24,17 +24,18 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Adeptutils(Package): class AdeptUtils(Package):
"""LLNL Utility Libraries""" """Utility libraries for LLNL performance tools."""
homepage = "https://github.com/scalability-llnl/adept-utils" homepage = "https://github.com/scalability-llnl/adept-utils"
url = "https://github.com/scalability-llnl/adept-utils/archive/v1.0.tar.gz" url = "https://github.com/scalability-llnl/adept-utils/archive/v1.0.tar.gz"
version('1.0', '5c6cd9badce56c945ac8551e34804397') version('1.0', '5c6cd9badce56c945ac8551e34804397')
depends_on("boost")
depends_on("mpi") depends_on("mpi")
def install(self, spec, prefix): def install(self, spec, prefix):
cmake("-DCMAKE_INSTALL_PREFIX=" + prefix) cmake(*std_cmake_args)
make() make()
make("install") make("install")

View File

@@ -25,7 +25,8 @@
from spack import * from spack import *
class Callpath(Package): class Callpath(Package):
"""Library for representing callpaths consistently in distributed-memory performance tools.""" """Library for representing callpaths consistently in
distributed-memory performance tools."""
homepage = "https://github.com/scalability-llnl/callpath" homepage = "https://github.com/scalability-llnl/callpath"
url = "https://github.com/scalability-llnl/callpath/archive/v1.0.1.tar.gz" url = "https://github.com/scalability-llnl/callpath/archive/v1.0.1.tar.gz"
@@ -33,11 +34,11 @@ class Callpath(Package):
version('1.0.1', '0047983d2a52c5c335f8ba7f5bab2325') version('1.0.1', '0047983d2a52c5c335f8ba7f5bab2325')
depends_on("dyninst") depends_on("dyninst")
depends_on("adeptutils") depends_on("adept-utils")
depends_on("mpi") depends_on("mpi")
def install(self, spec, prefix): def install(self, spec, prefix):
cmake("-DCMAKE_INSTALL_PREFIX=" + prefix, # TODO: offer options for the walker used.
"-DCALLPATH_WALKER=dyninst") cmake('.', "-DCALLPATH_WALKER=dyninst", *std_cmake_args)
make() make()
make("install") make("install")