Adding dotkit support to TAU.

- New spack.hooks package
  - contains modules with pre and post install hooks

- New dotkit hook module
  - generates/removes dotkits on install/uninstall

- New spack use, spack unuse commands
  - use same syntax as install/uninstall

- New setup-env.bash script
  - Sets up path, dotkit support

- new spack dotkit command
  - used by script to parse specs, generate
    specs of installed pckages for dotkit file names
This commit is contained in:
Todd Gamblin
2014-07-08 01:56:32 -07:00
parent 0551638944
commit 295ffd8c50
14 changed files with 552 additions and 21 deletions

View File

@@ -29,6 +29,17 @@
dwarf_dirs = ['libdwarf', 'dwarfdump2']
class Libdwarf(Package):
"""The DWARF Debugging Information Format is of interest to
programmers working on compilers and debuggers (and any one
interested in reading or writing DWARF information). It was
developed by a committee (known as the PLSIG at the time)
starting around 1991. Starting around 1991 SGI developed the
libdwarf and dwarfdump tools for internal use and as part of
SGI IRIX developer tools. Since that time dwarfdump and
libdwarf have been shipped (as an executable and archive
respectively, not source) with every release of the SGI
MIPS/IRIX C compiler."""
homepage = "http://www.prevanders.net/dwarf.html"
url = "http://www.prevanders.net/libdwarf-20130729.tar.gz"
list_url = homepage

View File

@@ -1,5 +1,8 @@
from spack import *
import os
from llnl.util.filesystem import join_path
class Tau(Package):
"""A portable profiling and tracing toolkit for performance
analysis of parallel programs written in Fortran, C, C++, UPC,
@@ -18,3 +21,16 @@ def install(self, spec, prefix):
# After that, it's relatively standard.
configure("-prefix=%s" % prefix)
make("install")
# Link arch-specific directories into prefix since there is
# only one arch per prefix the way spack installs.
self.link_tau_arch_dirs()
def link_tau_arch_dirs(self):
for subdir in os.listdir(self.prefix):
for d in ('bin', 'lib'):
src = join_path(self.prefix, subdir, d)
dest = join_path(self.prefix, d)
if os.path.isdir(src) and not os.path.exists(dest):
os.symlink(join_path(subdir, d), dest)