Merge branch 'develop' into correct-cc
This commit is contained in:
commit
611537eaed
14
lib/spack/env/cc
vendored
14
lib/spack/env/cc
vendored
@ -86,22 +86,22 @@ done
|
||||
#
|
||||
command=$(basename "$0")
|
||||
case "$command" in
|
||||
cc|gcc|c89|c99|clang|xlc)
|
||||
cc|c89|c99|gcc|clang|icc|pgcc|xlc)
|
||||
command="$SPACK_CC"
|
||||
language="C"
|
||||
;;
|
||||
c++|CC|g++|clang++|xlC)
|
||||
c++|CC|g++|clang++|icpc|pgCC|xlc++)
|
||||
command="$SPACK_CXX"
|
||||
language="C++"
|
||||
;;
|
||||
f77|xlf)
|
||||
command="$SPACK_F77"
|
||||
language="Fortran 77"
|
||||
;;
|
||||
fc|f90|f95|xlf90)
|
||||
f90|fc|f95|gfortran|ifort|pgf90|xlf90)
|
||||
command="$SPACK_FC"
|
||||
language="Fortran 90"
|
||||
;;
|
||||
f77|gfortran|ifort|pgf77|xlf)
|
||||
command="$SPACK_F77"
|
||||
language="Fortran 77"
|
||||
;;
|
||||
cpp)
|
||||
mode=cpp
|
||||
;;
|
||||
|
1
lib/spack/env/clang/clang
vendored
Symbolic link
1
lib/spack/env/clang/clang
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/clang/clang++
vendored
Symbolic link
1
lib/spack/env/clang/clang++
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/gcc/g++
vendored
Symbolic link
1
lib/spack/env/gcc/g++
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/gcc/gcc
vendored
Symbolic link
1
lib/spack/env/gcc/gcc
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/gcc/gfortran
vendored
Symbolic link
1
lib/spack/env/gcc/gfortran
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/intel/icc
vendored
Symbolic link
1
lib/spack/env/intel/icc
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/intel/icpc
vendored
Symbolic link
1
lib/spack/env/intel/icpc
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/intel/ifort
vendored
Symbolic link
1
lib/spack/env/intel/ifort
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/pgi/case-insensitive/pgCC
vendored
Symbolic link
1
lib/spack/env/pgi/case-insensitive/pgCC
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../../cc
|
1
lib/spack/env/pgi/pgcc
vendored
Symbolic link
1
lib/spack/env/pgi/pgcc
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/pgi/pgf77
vendored
Symbolic link
1
lib/spack/env/pgi/pgf77
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/pgi/pgf90
vendored
Symbolic link
1
lib/spack/env/pgi/pgf90
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/xl/xlc
vendored
Symbolic link
1
lib/spack/env/xl/xlc
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/xl/xlc++
vendored
Symbolic link
1
lib/spack/env/xl/xlc++
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/xl/xlf
vendored
Symbolic link
1
lib/spack/env/xl/xlf
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
1
lib/spack/env/xl/xlf90
vendored
Symbolic link
1
lib/spack/env/xl/xlf90
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
../cc
|
3
lib/spack/external/pyqver2.py
vendored
3
lib/spack/external/pyqver2.py
vendored
@ -30,7 +30,8 @@
|
||||
StandardModules = {
|
||||
"__future__": (2, 1),
|
||||
"abc": (2, 6),
|
||||
"argparse": (2, 7),
|
||||
# skip argparse now that it's in lib/spack/external
|
||||
# "argparse": (2, 7),
|
||||
"ast": (2, 6),
|
||||
"atexit": (2, 0),
|
||||
"bz2": (2, 3),
|
||||
|
@ -88,10 +88,14 @@ def set_compiler_environment_variables(pkg):
|
||||
compiler = pkg.compiler
|
||||
|
||||
# Set compiler variables used by CMake and autotools
|
||||
os.environ['CC'] = join_path(spack.build_env_path, 'cc')
|
||||
os.environ['CXX'] = join_path(spack.build_env_path, 'c++')
|
||||
os.environ['F77'] = join_path(spack.build_env_path, 'f77')
|
||||
os.environ['FC'] = join_path(spack.build_env_path, 'f90')
|
||||
assert all(key in pkg.compiler.link_paths
|
||||
for key in ('cc', 'cxx', 'f77', 'fc'))
|
||||
|
||||
link_dir = spack.build_env_path
|
||||
os.environ['CC'] = join_path(link_dir, pkg.compiler.link_paths['cc'])
|
||||
os.environ['CXX'] = join_path(link_dir, pkg.compiler.link_paths['cxx'])
|
||||
os.environ['F77'] = join_path(link_dir, pkg.compiler.link_paths['f77'])
|
||||
os.environ['FC'] = join_path(link_dir, pkg.compiler.link_paths['fc'])
|
||||
|
||||
# Set SPACK compiler variables so that our wrapper knows what to call
|
||||
if compiler.cc:
|
||||
@ -110,11 +114,23 @@ def set_build_environment_variables(pkg):
|
||||
"""This ensures a clean install environment when we build packages.
|
||||
"""
|
||||
# Add spack build environment path with compiler wrappers first in
|
||||
# the path. We handle case sensitivity conflicts like "CC" and
|
||||
# "cc" by putting one in the <build_env_path>/case-insensitive
|
||||
# the path. We add both spack.env_path, which includes default
|
||||
# wrappers (cc, c++, f77, f90), AND a subdirectory containing
|
||||
# compiler-specific symlinks. The latter ensures that builds that
|
||||
# are sensitive to the *name* of the compiler see the right name
|
||||
# when we're building wtih the wrappers.
|
||||
#
|
||||
# Conflicts on case-insensitive systems (like "CC" and "cc") are
|
||||
# handled by putting one in the <build_env_path>/case-insensitive
|
||||
# directory. Add that to the path too.
|
||||
env_paths = [spack.build_env_path,
|
||||
join_path(spack.build_env_path, 'case-insensitive')]
|
||||
env_paths = []
|
||||
def add_env_path(path):
|
||||
env_paths.append(path)
|
||||
ci = join_path(path, 'case-insensitive')
|
||||
if os.path.isdir(ci): env_paths.append(ci)
|
||||
add_env_path(spack.build_env_path)
|
||||
add_env_path(join_path(spack.build_env_path, pkg.compiler.name))
|
||||
|
||||
path_put_first("PATH", env_paths)
|
||||
path_set(SPACK_ENV_PATH, env_paths)
|
||||
|
||||
|
@ -54,7 +54,9 @@ def extensions(parser, args):
|
||||
if not args.spec:
|
||||
tty.die("extensions requires a package spec.")
|
||||
|
||||
#
|
||||
# Checks
|
||||
#
|
||||
spec = spack.cmd.parse_specs(args.spec)
|
||||
if len(spec) > 1:
|
||||
tty.die("Can only list extensions for one package.")
|
||||
@ -70,7 +72,9 @@ def extensions(parser, args):
|
||||
if not args.mode:
|
||||
args.mode = 'short'
|
||||
|
||||
#
|
||||
# List package names of extensions
|
||||
#
|
||||
extensions = spack.db.extensions_for(spec)
|
||||
if not extensions:
|
||||
tty.msg("%s has no extensions." % spec.cshort_spec)
|
||||
@ -79,7 +83,9 @@ def extensions(parser, args):
|
||||
tty.msg("%d extensions:" % len(extensions))
|
||||
colify(ext.name for ext in extensions)
|
||||
|
||||
#
|
||||
# List specs of installed extensions.
|
||||
#
|
||||
installed = [s.spec for s in spack.installed_db.installed_extensions_for(spec)]
|
||||
print
|
||||
if not installed:
|
||||
@ -88,7 +94,9 @@ def extensions(parser, args):
|
||||
tty.msg("%d installed:" % len(installed))
|
||||
spack.cmd.find.display_specs(installed, mode=args.mode)
|
||||
|
||||
#
|
||||
# List specs of activated extensions.
|
||||
#
|
||||
activated = spack.install_layout.extension_map(spec)
|
||||
print
|
||||
if not activated:
|
||||
|
@ -33,10 +33,13 @@ def setup_parser(subparser):
|
||||
subparser.add_argument(
|
||||
'-n', '--no-checksum', action='store_true', dest='no_checksum',
|
||||
help="Do not check packages against checksum")
|
||||
subparser.add_argument(
|
||||
'-m', '--missing', action='store_true', help="Also fetch all missing dependencies")
|
||||
subparser.add_argument(
|
||||
'-D', '--dependencies', action='store_true', help="Also fetch all dependencies")
|
||||
subparser.add_argument(
|
||||
'packages', nargs=argparse.REMAINDER, help="specs of packages to fetch")
|
||||
|
||||
|
||||
def fetch(parser, args):
|
||||
if not args.packages:
|
||||
tty.die("fetch requires at least one package argument")
|
||||
@ -46,5 +49,13 @@ def fetch(parser, args):
|
||||
|
||||
specs = spack.cmd.parse_specs(args.packages, concretize=True)
|
||||
for spec in specs:
|
||||
if args.missing or args.dependencies:
|
||||
to_fetch = set()
|
||||
for s in spec.traverse():
|
||||
package = spack.db.get(s)
|
||||
if args.missing and package.installed:
|
||||
continue
|
||||
package.do_fetch()
|
||||
|
||||
package = spack.db.get(spec)
|
||||
package.do_fetch()
|
||||
|
@ -54,6 +54,8 @@ def setup_parser(subparser):
|
||||
'specs', nargs=argparse.REMAINDER, help="Specs of packages to put in mirror")
|
||||
create_parser.add_argument(
|
||||
'-f', '--file', help="File with specs of packages to put in mirror.")
|
||||
create_parser.add_argument(
|
||||
'-D', '--dependencies', action='store_true', help="Also fetch all dependencies")
|
||||
create_parser.add_argument(
|
||||
'-o', '--one-version-per-spec', action='store_const', const=1, default=0,
|
||||
help="Only fetch one 'preferred' version per spec, not all known versions.")
|
||||
@ -118,7 +120,7 @@ def mirror_create(args):
|
||||
"""Create a directory to be used as a spack mirror, and fill it with
|
||||
package archives."""
|
||||
# try to parse specs from the command line first.
|
||||
specs = spack.cmd.parse_specs(args.specs)
|
||||
specs = spack.cmd.parse_specs(args.specs, concretize=True)
|
||||
|
||||
# If there is a file, parse each line as a spec and add it to the list.
|
||||
if args.file:
|
||||
@ -131,6 +133,14 @@ def mirror_create(args):
|
||||
specs = [Spec(n) for n in spack.db.all_package_names()]
|
||||
specs.sort(key=lambda s: s.format("$_$@").lower())
|
||||
|
||||
if args.dependencies:
|
||||
new_specs = set()
|
||||
for spec in specs:
|
||||
spec.concretize()
|
||||
for s in spec.traverse():
|
||||
new_specs.add(s)
|
||||
specs = list(new_specs)
|
||||
|
||||
# Default name for directory is spack-mirror-<DATESTAMP>
|
||||
directory = args.directory
|
||||
if not directory:
|
||||
|
@ -31,6 +31,8 @@
|
||||
import spack
|
||||
|
||||
def setup_parser(subparser):
|
||||
subparser.add_argument(
|
||||
'-c', dest='python_command', help='Command to execute.')
|
||||
subparser.add_argument(
|
||||
'python_args', nargs=argparse.REMAINDER, help="File to run plus arguments.")
|
||||
|
||||
@ -38,7 +40,8 @@ def setup_parser(subparser):
|
||||
|
||||
def python(parser, args):
|
||||
# Fake a main python shell by setting __name__ to __main__.
|
||||
console = code.InteractiveConsole({'__name__' : '__main__'})
|
||||
console = code.InteractiveConsole({'__name__' : '__main__',
|
||||
'spack' : spack})
|
||||
|
||||
if "PYTHONSTARTUP" in os.environ:
|
||||
startup_file = os.environ["PYTHONSTARTUP"]
|
||||
@ -47,7 +50,10 @@ def python(parser, args):
|
||||
console.runsource(startup.read(), startup_file, 'exec')
|
||||
|
||||
python_args = args.python_args
|
||||
if python_args:
|
||||
python_command = args.python_command
|
||||
if python_command:
|
||||
console.runsource(python_command)
|
||||
elif python_args:
|
||||
sys.argv = python_args
|
||||
with open(python_args[0]) as file:
|
||||
console.runsource(file.read(), python_args[0], 'exec')
|
||||
|
@ -42,9 +42,9 @@ def setup_parser(subparser):
|
||||
help="Remove regardless of whether other packages depend on this one.")
|
||||
subparser.add_argument(
|
||||
'-a', '--all', action='store_true', dest='all',
|
||||
help="USE CAREFULLY. Remove ALL installed packages that match each supplied spec. " +
|
||||
"i.e., if you say uninstall libelf, ALL versions of libelf are uninstalled. " +
|
||||
"This is both useful and dangerous, like rm -r.")
|
||||
help="USE CAREFULLY. Remove ALL installed packages that match each " +
|
||||
"supplied spec. i.e., if you say uninstall libelf, ALL versions of " +
|
||||
"libelf are uninstalled. This is both useful and dangerous, like rm -r.")
|
||||
subparser.add_argument(
|
||||
'packages', nargs=argparse.REMAINDER, help="specs of packages to uninstall")
|
||||
|
||||
@ -81,7 +81,8 @@ def uninstall(parser, args):
|
||||
pkgs.append(s.package)
|
||||
|
||||
except spack.packages.UnknownPackageError, e:
|
||||
# The package.py file has gone away -- but still want to uninstall.
|
||||
# The package.py file has gone away -- but still want to
|
||||
# uninstall.
|
||||
spack.Package(s).do_uninstall(force=True)
|
||||
|
||||
# Sort packages to be uninstalled by the number of installed dependents
|
||||
|
@ -37,6 +37,12 @@ class Clang(Compiler):
|
||||
# Subclasses use possible names of Fortran 90 compiler
|
||||
fc_names = []
|
||||
|
||||
# Named wrapper links within spack.build_env_path
|
||||
link_paths = { 'cc' : 'clang/clang',
|
||||
'cxx' : 'clang/clang++',
|
||||
# Use default wrappers for fortran, in case provided in compilers.yaml
|
||||
'f77' : 'f77',
|
||||
'fc' : 'f90' }
|
||||
|
||||
@classmethod
|
||||
def default_version(self, comp):
|
||||
|
@ -42,6 +42,12 @@ class Gcc(Compiler):
|
||||
# MacPorts builds gcc versions with prefixes and -mp-X.Y suffixes.
|
||||
suffixes = [r'-mp-\d\.\d']
|
||||
|
||||
# Named wrapper links within spack.build_env_path
|
||||
link_paths = {'cc' : 'gcc/gcc',
|
||||
'cxx' : 'gcc/g++',
|
||||
'f77' : 'gcc/gfortran',
|
||||
'fc' : 'gcc/gfortran' }
|
||||
|
||||
@property
|
||||
def cxx11_flag(self):
|
||||
if self.version < ver('4.3'):
|
||||
|
@ -37,6 +37,12 @@ class Intel(Compiler):
|
||||
# Subclasses use possible names of Fortran 90 compiler
|
||||
fc_names = ['ifort']
|
||||
|
||||
# Named wrapper links within spack.build_env_path
|
||||
link_paths = { 'cc' : 'intel/icc',
|
||||
'cxx' : 'intel/icpc',
|
||||
'f77' : 'intel/ifort',
|
||||
'fc' : 'intel/ifort' }
|
||||
|
||||
@property
|
||||
def cxx11_flag(self):
|
||||
if self.version < ver('11.1'):
|
||||
|
@ -37,6 +37,12 @@ class Pgi(Compiler):
|
||||
# Subclasses use possible names of Fortran 90 compiler
|
||||
fc_names = ['pgf95', 'pgf90']
|
||||
|
||||
# Named wrapper links within spack.build_env_path
|
||||
link_paths = { 'cc' : 'pgi/pgcc',
|
||||
'cxx' : 'pgi/case-insensitive/pgCC',
|
||||
'f77' : 'pgi/pgf77',
|
||||
'fc' : 'pgi/pgf90' }
|
||||
|
||||
@classmethod
|
||||
def default_version(cls, comp):
|
||||
"""The '-V' option works for all the PGI compilers.
|
||||
|
@ -38,6 +38,12 @@ class Xl(Compiler):
|
||||
# Subclasses use possible names of Fortran 90 compiler
|
||||
fc_names = ['xlf90','xlf90_r','xlf95','xlf95_r','xlf2003','xlf2003_r','xlf2008','xlf2008_r']
|
||||
|
||||
# Named wrapper links within spack.build_env_path
|
||||
link_paths = { 'cc' : 'xl/xlc',
|
||||
'cxx' : 'xl/xlc++',
|
||||
'f77' : 'xl/xlf',
|
||||
'fc' : 'xl/xlf90' }
|
||||
|
||||
@property
|
||||
def cxx11_flag(self):
|
||||
if self.version < ver('13.1'):
|
||||
|
@ -54,6 +54,7 @@
|
||||
from spack.version import Version
|
||||
from spack.spec import Spec
|
||||
from spack.error import SpackError
|
||||
from spack.packages import UnknownPackageError
|
||||
|
||||
# DB goes in this directory underneath the root
|
||||
_db_dirname = '.spack-db'
|
||||
|
@ -27,9 +27,7 @@
|
||||
|
||||
|
||||
def pre_uninstall(pkg):
|
||||
# Need to do this b/c uninstall does not automatically do it.
|
||||
# TODO: store full graph info in stored .spec file.
|
||||
pkg.spec.normalize()
|
||||
assert(pkg.spec.concrete)
|
||||
|
||||
if pkg.is_extension:
|
||||
if pkg.activated:
|
||||
|
@ -146,7 +146,7 @@ def create(path, specs, **kwargs):
|
||||
stage = None
|
||||
try:
|
||||
# create a subdirectory for the current package@version
|
||||
archive_path = os.path.abspath(join_path(path, mirror_archive_path(spec)))
|
||||
archive_path = os.path.abspath(join_path(mirror_root, mirror_archive_path(spec)))
|
||||
subdir = os.path.dirname(archive_path)
|
||||
mkdirp(subdir)
|
||||
|
||||
|
@ -487,9 +487,15 @@ def extendee_spec(self):
|
||||
if name == dep.name:
|
||||
return dep
|
||||
|
||||
# Otherwise return the spec from the extends() directive
|
||||
spec, kwargs = self.extendees[name]
|
||||
return spec
|
||||
# if the spec is concrete already, then it extends something
|
||||
# that is an *optional* dependency, and the dep isn't there.
|
||||
if self.spec._concrete:
|
||||
return None
|
||||
else:
|
||||
# If it's not concrete, then return the spec from the
|
||||
# extends() directive since that is all we know so far.
|
||||
spec, kwargs = self.extendees[name]
|
||||
return spec
|
||||
|
||||
|
||||
@property
|
||||
@ -497,18 +503,28 @@ def extendee_args(self):
|
||||
"""Spec of the extendee of this package, or None if it is not an extension."""
|
||||
if not self.extendees:
|
||||
return None
|
||||
|
||||
# TODO: allow multiple extendees.
|
||||
name = next(iter(self.extendees))
|
||||
return self.extendees[name][1]
|
||||
|
||||
|
||||
@property
|
||||
def is_extension(self):
|
||||
return len(self.extendees) > 0
|
||||
# if it is concrete, it's only an extension if it actually
|
||||
# dependes on the extendee.
|
||||
if self.spec._concrete:
|
||||
return self.extendee_spec is not None
|
||||
else:
|
||||
# If not, then it's an extension if it *could* be an extension
|
||||
return bool(self.extendees)
|
||||
|
||||
|
||||
def extends(self, spec):
|
||||
return (spec.name in self.extendees and
|
||||
spec.satisfies(self.extendees[spec.name][0]))
|
||||
if not spec.name in self.extendees:
|
||||
return False
|
||||
s = self.extendee_spec
|
||||
return s and s.satisfies(spec)
|
||||
|
||||
|
||||
@property
|
||||
|
@ -63,10 +63,6 @@ def check_python_versions(self, *files):
|
||||
all_issues = {}
|
||||
|
||||
for fn in files:
|
||||
if fn != '/Users/gamblin2/src/spack/var/spack/packages/vim/package.py':
|
||||
continue
|
||||
print fn
|
||||
|
||||
with open(fn) as pyfile:
|
||||
versions = pyqver2.get_versions(pyfile.read())
|
||||
for ver, reasons in versions.items():
|
||||
|
@ -56,6 +56,12 @@
|
||||
# spack dotfiles.
|
||||
########################################################################
|
||||
function spack {
|
||||
# save raw arguments into an array before butchering them
|
||||
args=()
|
||||
for a in "$@"; do
|
||||
# yup, this is awful, blame bash2 compat
|
||||
args=("${args[@]}" "$a")
|
||||
done
|
||||
# accumulate initial flags for main spack command
|
||||
_sp_flags=""
|
||||
while [[ "$1" =~ ^- ]]; do
|
||||
@ -116,7 +122,7 @@ function spack {
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
command spack $_sp_flags $_sp_subcommand $_sp_spec
|
||||
command spack "${args[@]}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
@ -167,8 +173,8 @@ fi
|
||||
#
|
||||
_sp_share_dir=$(cd "$(dirname $_sp_source_file)" && pwd)
|
||||
_sp_prefix=$(cd "$(dirname $(dirname $_sp_share_dir))" && pwd)
|
||||
_spack_pathadd PATH "${_sp_prefix%/}/bin"
|
||||
|
||||
# TODO: fix SYS_TYPE to something non-LLNL-specific
|
||||
_spack_pathadd DK_NODE "$_sp_share_dir/dotkit/$SYS_TYPE"
|
||||
_spack_pathadd MODULEPATH "$_sp_share_dir/modules/$SYS_TYPE"
|
||||
_spack_pathadd PATH "$_sp_prefix/bin"
|
||||
_sp_sys_type=$(spack-python -c 'print(spack.architecture.sys_type())')
|
||||
_spack_pathadd DK_NODE "${_sp_share_dir%/}/dotkit/$_sp_sys_type"
|
||||
_spack_pathadd MODULEPATH "${_sp_share_dir%/}/modules/$_sp_sys_type"
|
||||
|
52
var/spack/packages/binutils/binutilskrell-2.24.patch
Normal file
52
var/spack/packages/binutils/binutilskrell-2.24.patch
Normal file
@ -0,0 +1,52 @@
|
||||
--- binutils-2.24/libiberty/Makefile.in 2013-11-04 10:33:40.000000000 -0500
|
||||
+++ binutils-2.24-fixes/libiberty/Makefile.in 2014-10-17 16:22:31.413655000 -0400
|
||||
@@ -66,6 +66,7 @@
|
||||
MAKEOVERRIDES =
|
||||
|
||||
TARGETLIB = ./libiberty.a
|
||||
+TARGETLIBPIC = ./libiberty_pic.a
|
||||
TESTLIB = ./testlib.a
|
||||
|
||||
LIBOBJS = @LIBOBJS@
|
||||
@@ -355,27 +356,27 @@
|
||||
# since it will be passed the multilib flags.
|
||||
MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
|
||||
install_to_libdir: all
|
||||
- if test -n "${target_header_dir}"; then \
|
||||
- ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
|
||||
- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
|
||||
- ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
|
||||
- mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
|
||||
- case "${target_header_dir}" in \
|
||||
- /*) thd=${target_header_dir};; \
|
||||
- *) thd=${includedir}/${target_header_dir};; \
|
||||
- esac; \
|
||||
- ${mkinstalldirs} $(DESTDIR)$${thd}; \
|
||||
- for h in ${INSTALLED_HEADERS}; do \
|
||||
- ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
|
||||
- done; \
|
||||
- fi
|
||||
+ ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
|
||||
+ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
|
||||
+ $(INSTALL_DATA) pic/$(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIBPIC)n; \
|
||||
+ ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
|
||||
+ ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIBPIC)n ;$(RANLIB) $(TARGETLIBPIC)n ); \
|
||||
+ mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
|
||||
+ mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIBPIC)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIBPIC); \
|
||||
+ ${mkinstalldirs} $(DESTDIR)$${includedir}; \
|
||||
+ for h in ${INSTALLED_HEADERS}; do \
|
||||
+ ${INSTALL_DATA} $$h $(DESTDIR)$${includedir}; \
|
||||
+ done;
|
||||
@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
|
||||
|
||||
install_to_tooldir: all
|
||||
${mkinstalldirs} $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)
|
||||
$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n
|
||||
+ $(INSTALL_DATA) pic/$(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIBPIC)n
|
||||
( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n; $(RANLIB) $(TARGETLIB)n )
|
||||
+ ( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; chmod 644 $(TARGETLIBPIC)n; $(RANLIB) $(TARGETLIBPIC)n )
|
||||
mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)
|
||||
+ mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIBPIC)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIBPIC)
|
||||
@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
|
||||
|
||||
# required-list was used when building a shared bfd/opcodes/libiberty
|
@ -3,12 +3,15 @@
|
||||
class Binutils(Package):
|
||||
"""GNU binutils, which contain the linker, assembler, objdump and others"""
|
||||
homepage = "http://www.gnu.org/software/binutils/"
|
||||
url = "ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2"
|
||||
|
||||
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66')
|
||||
version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b')
|
||||
version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e')
|
||||
version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764')
|
||||
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2")
|
||||
version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.24.tar.bz2")
|
||||
version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.23.2.tar.bz2")
|
||||
version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764',url="ftp://ftp.gnu.org/gnu/binutils/binutils-2.20.1.tar.bz2")
|
||||
|
||||
# Add a patch that creates binutils libiberty_pic.a which is preferred by OpenSpeedShop and cbtf-krell
|
||||
variant('krellpatch', default=False, description="build with openspeedshop based patch.")
|
||||
patch('binutilskrell-2.24.patch', when='@2.24+krellpatch')
|
||||
|
||||
variant('libiberty', default=False, description='Also install libiberty.')
|
||||
|
||||
|
66
var/spack/packages/cbtf-argonavis/package.py
Normal file
66
var/spack/packages/cbtf-argonavis/package.py
Normal file
@ -0,0 +1,66 @@
|
||||
################################################################################
|
||||
# Copyright (c) 2015 Krell Institute. All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
# Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
################################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
class CbtfArgonavis(Package):
|
||||
"""CBTF Argo Navis project contains the CUDA collector and supporting
|
||||
libraries that was done as a result of a DOE SBIR grant."""
|
||||
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
|
||||
|
||||
# Mirror access template example
|
||||
#url = "file:/g/g24/jeg/cbtf-argonavis-1.5.tar.gz"
|
||||
#version('1.5', '1f7f6512f55409ed2135cfceabe26b82')
|
||||
|
||||
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-argonavis/cbtf-argonavis')
|
||||
|
||||
depends_on("cmake@3.0.2:")
|
||||
depends_on("papi")
|
||||
depends_on("cbtf")
|
||||
depends_on("cbtf-krell")
|
||||
depends_on("cuda")
|
||||
|
||||
parallel = False
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
# Look for package installation information in the cbtf and cbtf-krell prefixes
|
||||
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
|
||||
|
||||
# FIXME, hard coded for testing purposes, we will alter when the external package feature is available
|
||||
cuda_prefix_path = "/usr/local/cudatoolkit-6.0"
|
||||
cupti_prefix_path = "/usr/local/cudatoolkit-6.0/extras/CUPTI"
|
||||
|
||||
|
||||
with working_dir('CUDA'):
|
||||
with working_dir('build', create=True):
|
||||
cmake('..',
|
||||
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
|
||||
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
'-DCUDA_INSTALL_PATH=%s' % cuda_prefix_path,
|
||||
'-DCUDA_ROOT=%s' % cuda_prefix_path,
|
||||
'-DCUPTI_ROOT=%s' % cupti_prefix_path,
|
||||
'-DCUDA_DIR=%s' % cuda_prefix_path,
|
||||
'-DPAPI_ROOT=%s' % spec['papi'].prefix,
|
||||
'-DCBTF_PREFIX=%s' % spec['cbtf'].prefix,
|
||||
*std_cmake_args)
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
|
116
var/spack/packages/cbtf-krell/package.py
Normal file
116
var/spack/packages/cbtf-krell/package.py
Normal file
@ -0,0 +1,116 @@
|
||||
################################################################################
|
||||
# Copyright (c) 2015 Krell Institute. All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
# Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
################################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
class CbtfKrell(Package):
|
||||
"""CBTF Krell project contains the Krell Institute contributions to the CBTF project.
|
||||
These contributions include many performance data collectors and support
|
||||
libraries as well as some example tools that drive the data collection at
|
||||
HPC levels of scale."""
|
||||
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
|
||||
|
||||
# optional mirror access template
|
||||
#url = "file:/g/g24/jeg/cbtf-krell-1.5.tar.gz"
|
||||
#version('1.5', 'b13f6df6a93c44149d977773dd776d2f')
|
||||
|
||||
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-krell/cbtf-krell')
|
||||
|
||||
|
||||
# Dependencies for cbtf-krell
|
||||
|
||||
# For binutils service
|
||||
depends_on("binutils@2.24+krellpatch")
|
||||
|
||||
# collectionTool
|
||||
depends_on("boost@1.50.0")
|
||||
depends_on("dyninst@8.2.1")
|
||||
depends_on("mrnet@4.1.0:+lwthreads")
|
||||
depends_on("xerces-c@3.1.1:")
|
||||
depends_on("cbtf")
|
||||
|
||||
# for services and collectors
|
||||
depends_on("libmonitor+krellpatch")
|
||||
depends_on("libunwind")
|
||||
depends_on("papi")
|
||||
|
||||
# MPI Installations
|
||||
# These have not worked either for build or execution, commenting out for now
|
||||
#depends_on("openmpi")
|
||||
#depends_on("mvapich2@2.0")
|
||||
#depends_on("mpich")
|
||||
|
||||
parallel = False
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
# Add in paths for finding package config files that tell us where to find these packages
|
||||
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['dyninst'].prefix)
|
||||
|
||||
# FIXME - hard code path until external package support is available
|
||||
# Need to change this path and/or add additional paths for MPI experiment support on different platforms
|
||||
#openmpi_prefix_path = "/opt/openmpi-1.8.2"
|
||||
#mvapich_prefix_path = "/usr/local/tools/mvapich-gnu"
|
||||
|
||||
# Other possibilities, they will need a -DMVAPICH_DIR=, etc clause in the cmake command to be recognized
|
||||
# mvapich_prefix_path = "<mvapich install path>"
|
||||
# mvapich2_prefix_path = "<mvapich2 install path>"
|
||||
# mpich2_prefix_path = "<mpich2 install path>"
|
||||
# mpich_prefix_path = "<mpich install path>"
|
||||
# mpt_prefix_path = "<mpt install path>"
|
||||
|
||||
# Add in paths for cuda if requested via the cuda variant
|
||||
# FIXME - hard code path until external package support is available
|
||||
#if '+cuda' in spec:
|
||||
# cuda_prefix_path = "/usr/local/cuda-6.0"
|
||||
# cupti_prefix_path = "/usr/local/cuda-6.0/extras/CUPTI"
|
||||
#else:
|
||||
# cuda_prefix_path = ""
|
||||
# cupti_prefix_path = ""
|
||||
|
||||
#'-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix,
|
||||
#'-DOPENMPI_DIR=%s' % spec['openmpi'].prefix,
|
||||
#'-DMPICH_DIR=%s' % spec['mpich'].prefix,
|
||||
#'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
|
||||
#'-DOPENMPI_DIR=%s' % openmpi_prefix_path,
|
||||
#'-DMVAPICH_DIR=%s' % mvapich_prefix_path,
|
||||
#'-DLIB_SUFFIX=64',
|
||||
#'-DCUDA_DIR=%s' % cuda_prefix_path,
|
||||
#'-DCUPTI_DIR=%s' % cupti_prefix_path,
|
||||
|
||||
# Build cbtf-krell with cmake
|
||||
with working_dir('build_cbtf_krell', create=True):
|
||||
cmake('..',
|
||||
'-DCMAKE_BUILD_TYPE=Debug',
|
||||
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
|
||||
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
|
||||
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
|
||||
'-DPAPI_DIR=%s' % spec['papi'].prefix,
|
||||
'-DBOOST_DIR=%s' % spec['boost'].prefix,
|
||||
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
|
||||
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
|
||||
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
*std_cmake_args)
|
||||
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
|
60
var/spack/packages/cbtf-lanl/package.py
Normal file
60
var/spack/packages/cbtf-lanl/package.py
Normal file
@ -0,0 +1,60 @@
|
||||
################################################################################
|
||||
# Copyright (c) 2015 Krell Institute. All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
# Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
################################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
class CbtfLanl(Package):
|
||||
"""CBTF LANL project contains a memory tool and data center type system command monitoring tool."""
|
||||
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
|
||||
|
||||
|
||||
# Mirror access template example
|
||||
#url = "file:/g/g24/jeg/cbtf-lanl-1.5.tar.gz"
|
||||
#version('1.5', 'c3f78f967b0a42c6734ce4be0e602426')
|
||||
|
||||
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl')
|
||||
|
||||
|
||||
# Dependencies for cbtf-krell
|
||||
depends_on("boost@1.50")
|
||||
depends_on("mrnet@4.1.0:+lwthreads")
|
||||
depends_on("xerces-c@3.1.1:")
|
||||
depends_on("cbtf")
|
||||
depends_on("cbtf-krell")
|
||||
|
||||
parallel = False
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
# Add in paths for finding package config files that tell us where to find these packages
|
||||
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
|
||||
|
||||
with working_dir('build', create=True):
|
||||
cmake('..',
|
||||
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
|
||||
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
|
||||
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
'-DCMAKE_MODULE_PATH=%s' % join_path(prefix.share,'KrellInstitute','cmake'),
|
||||
*std_cmake_args)
|
||||
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
|
62
var/spack/packages/cbtf/package.py
Normal file
62
var/spack/packages/cbtf/package.py
Normal file
@ -0,0 +1,62 @@
|
||||
################################################################################
|
||||
# Copyright (c) 2015 Krell Institute. All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
# Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
################################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
class Cbtf(Package):
|
||||
"""CBTF project contains the base code for CBTF that supports creating components,
|
||||
component networks and the support to connect these components and component
|
||||
networks into sequential and distributed network tools."""
|
||||
homepage = "http://sourceforge.net/p/cbtf/wiki/Home"
|
||||
|
||||
# Mirror access template example
|
||||
#url = "file:/g/g24/jeg/cbtf-1.5.tar.gz"
|
||||
#version('1.6', '1ca88a8834759c4c74452cb97fe7b70a')
|
||||
|
||||
# Use when the git repository is available
|
||||
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf/cbtf')
|
||||
|
||||
depends_on("cmake")
|
||||
#depends_on("boost@1.42.0:")
|
||||
depends_on("boost@1.50.0")
|
||||
depends_on("mrnet@4.1.0+lwthreads")
|
||||
depends_on("xerces-c@3.1.1:")
|
||||
depends_on("libxml2")
|
||||
|
||||
parallel = False
|
||||
|
||||
def install(self, spec, prefix):
|
||||
with working_dir('build', create=True):
|
||||
|
||||
# Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching
|
||||
# in system paths (or other locations outside of BOOST_ROOT
|
||||
# or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
|
||||
# Defaults to OFF.
|
||||
|
||||
cmake('..',
|
||||
'--debug-output',
|
||||
'-DBoost_NO_SYSTEM_PATHS=TRUE',
|
||||
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
|
||||
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
|
||||
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
'-DCMAKE_MODULE_PATH=%s' % join_path(prefix.share,'KrellInstitute','cmake'),
|
||||
*std_cmake_args)
|
||||
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
18
var/spack/packages/cfitsio/package.py
Normal file
18
var/spack/packages/cfitsio/package.py
Normal file
@ -0,0 +1,18 @@
|
||||
from spack import *
|
||||
|
||||
class Cfitsio(Package):
|
||||
"""
|
||||
CFITSIO is a library of C and Fortran subroutines for reading and writing
|
||||
data files in FITS (Flexible Image Transport System) data format.
|
||||
"""
|
||||
homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/'
|
||||
version('3.370', 'abebd2d02ba5b0503c633581e3bfa116')
|
||||
|
||||
def url_for_version(self, v):
|
||||
url = 'ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio{0}.tar.gz'
|
||||
return url.format(str(v).replace('.', ''))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix=' + prefix)
|
||||
make()
|
||||
make('install')
|
@ -43,6 +43,7 @@ class Cmake(Package):
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix=' + prefix,
|
||||
'--parallel=' + str(make_jobs))
|
||||
'--parallel=' + str(make_jobs),
|
||||
'--', '-DCMAKE_USE_OPENSSL=ON')
|
||||
make()
|
||||
make('install')
|
||||
|
@ -12,6 +12,9 @@ class Cube(Package):
|
||||
homepage = "http://www.scalasca.org/software/cube-4.x/download.html"
|
||||
url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz"
|
||||
|
||||
version('4.3.3', '07e109248ed8ffc7bdcce614264a2909',
|
||||
url='http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3.3.tar.gz')
|
||||
|
||||
version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20')
|
||||
|
||||
version('4.3TP1', 'a2090fbc7b2ba394bd5c09ba971e237f',
|
||||
|
@ -49,14 +49,15 @@ def install(self, spec, prefix):
|
||||
|
||||
with working_dir('spack-build', create=True):
|
||||
cmake('..',
|
||||
'-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include,
|
||||
'-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib,
|
||||
'-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include,
|
||||
'-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib,
|
||||
'-DBoost_NO_SYSTEM_PATHS=TRUE',
|
||||
'-DLIBELF_INCLUDE_DIR=%s' % join_path(libelf.include, 'libelf'),
|
||||
'-DLIBELF_LIBRARIES=%s' % join_path(libelf.lib, 'libelf.so'),
|
||||
'-DLIBDWARF_INCLUDE_DIR=%s' % libdwarf.include,
|
||||
'-DLIBDWARF_LIBRARIES=%s' % join_path(libdwarf.lib, 'libdwarf.so'),
|
||||
*std_cmake_args)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
class Global(Package):
|
||||
""" The Gnu Global tagging system """
|
||||
# FIXME: add a proper url for your package's homepage here.
|
||||
|
||||
homepage = "http://www.gnu.org/software/global"
|
||||
url = "http://tamacom.com/global/global-6.5.tar.gz"
|
||||
|
||||
@ -13,9 +13,9 @@ class Global(Package):
|
||||
depends_on('exuberant-ctags')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
config_args = ['--prefix={}'.format(prefix)]
|
||||
config_args = ['--prefix={0}'.format(prefix)]
|
||||
|
||||
config_args.append('--with-exuberant-ctags={}'.format(
|
||||
config_args.append('--with-exuberant-ctags={0}'.format(
|
||||
os.path.join(spec['exuberant-ctags'].prefix.bin, 'ctags')))
|
||||
|
||||
configure(*config_args)
|
||||
|
18
var/spack/packages/libmonitor/libmonitorkrell-0000.patch
Normal file
18
var/spack/packages/libmonitor/libmonitorkrell-0000.patch
Normal file
@ -0,0 +1,18 @@
|
||||
--- libmonitor-20130218/configure 2013-02-17 23:08:32.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/configure 2013-02-18 10:34:05.237918411 -0800
|
||||
@@ -3600,13 +3600,13 @@
|
||||
CFLAGS=$ac_save_CFLAGS
|
||||
elif test $ac_cv_prog_cc_g = yes; then
|
||||
if test "$GCC" = yes; then
|
||||
- CFLAGS="-g -O2"
|
||||
+ CFLAGS="-g -O0"
|
||||
else
|
||||
CFLAGS="-g"
|
||||
fi
|
||||
else
|
||||
if test "$GCC" = yes; then
|
||||
- CFLAGS="-O2"
|
||||
+ CFLAGS="-O0"
|
||||
else
|
||||
CFLAGS=
|
||||
fi
|
395
var/spack/packages/libmonitor/libmonitorkrell-0001.patch
Normal file
395
var/spack/packages/libmonitor/libmonitorkrell-0001.patch
Normal file
@ -0,0 +1,395 @@
|
||||
--- libmonitor-20130218/src/callback.c 2013-02-17 23:08:32.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/callback.c 2013-02-18 10:34:17.839842826 -0800
|
||||
@@ -173,3 +173,18 @@
|
||||
MONITOR_DEBUG1("(default callback)\n");
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
+
|
||||
+void __attribute__ ((weak))
|
||||
+monitor_mpi_post_comm_rank(void)
|
||||
+{
|
||||
+ MONITOR_DEBUG1("(default callback)\n");
|
||||
+}
|
||||
+
|
||||
+void __attribute__ ((weak))
|
||||
+monitor_mpi_pcontrol(int level)
|
||||
+{
|
||||
+ MONITOR_DEBUG("(default callback) level = %d\n", level);
|
||||
+}
|
||||
+
|
||||
+
|
||||
--- libmonitor-20130218/src/main.c 2013-02-17 23:08:32.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/main.c 2013-02-18 10:34:17.839842826 -0800
|
||||
@@ -230,6 +230,44 @@
|
||||
monitor_fini_library_called = 1;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Internal monitor functions.
|
||||
+ */
|
||||
+
|
||||
+struct monitor_thread_node * __attribute__ ((weak))
|
||||
+monitor_get_tn(void)
|
||||
+{
|
||||
+ return &monitor_main_tn;
|
||||
+}
|
||||
+
|
||||
+int __attribute__ ((weak))
|
||||
+monitor_get_thread_num(void)
|
||||
+{
|
||||
+ return (0);
|
||||
+}
|
||||
+
|
||||
+void __attribute__ ((weak))
|
||||
+monitor_reset_thread_list(struct monitor_thread_node *main_tn)
|
||||
+{
|
||||
+ MONITOR_DEBUG1("(weak)\n");
|
||||
+ return;
|
||||
+}
|
||||
+
|
||||
+void __attribute__ ((weak))
|
||||
+monitor_thread_release(void)
|
||||
+{
|
||||
+ MONITOR_DEBUG1("(weak)\n");
|
||||
+ return;
|
||||
+}
|
||||
+
|
||||
+void __attribute__ ((weak))
|
||||
+monitor_thread_shootdown(void)
|
||||
+{
|
||||
+ MONITOR_DEBUG1("(weak)\n");
|
||||
+ return;
|
||||
+}
|
||||
+
|
||||
+
|
||||
void
|
||||
monitor_begin_process_fcn(void *user_data, int is_fork)
|
||||
{
|
||||
@@ -625,12 +663,6 @@
|
||||
return (monitor_main_tn.tn_user_data);
|
||||
}
|
||||
|
||||
-int __attribute__ ((weak))
|
||||
-monitor_get_thread_num(void)
|
||||
-{
|
||||
- return (0);
|
||||
-}
|
||||
-
|
||||
void * __attribute__ ((weak))
|
||||
monitor_get_addr_thread_start(void)
|
||||
{
|
||||
@@ -691,33 +723,3 @@
|
||||
MONITOR_DEBUG1("(weak)\n");
|
||||
return (FALSE);
|
||||
}
|
||||
-
|
||||
-/*
|
||||
- * Internal monitor functions.
|
||||
- */
|
||||
-struct monitor_thread_node * __attribute__ ((weak))
|
||||
-monitor_get_tn(void)
|
||||
-{
|
||||
- return &monitor_main_tn;
|
||||
-}
|
||||
-
|
||||
-void __attribute__ ((weak))
|
||||
-monitor_reset_thread_list(struct monitor_thread_node *main_tn)
|
||||
-{
|
||||
- MONITOR_DEBUG1("(weak)\n");
|
||||
- return;
|
||||
-}
|
||||
-
|
||||
-void __attribute__ ((weak))
|
||||
-monitor_thread_release(void)
|
||||
-{
|
||||
- MONITOR_DEBUG1("(weak)\n");
|
||||
- return;
|
||||
-}
|
||||
-
|
||||
-void __attribute__ ((weak))
|
||||
-monitor_thread_shootdown(void)
|
||||
-{
|
||||
- MONITOR_DEBUG1("(weak)\n");
|
||||
- return;
|
||||
-}
|
||||
--- libmonitor-20130218/src/monitor.h 2013-02-17 23:08:32.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/monitor.h 2013-02-18 10:34:17.840842821 -0800
|
||||
@@ -73,6 +73,11 @@
|
||||
extern void monitor_fini_mpi(void);
|
||||
extern void monitor_mpi_post_fini(void);
|
||||
|
||||
+extern void monitor_mpi_post_comm_rank(void);
|
||||
+extern void monitor_mpi_pcontrol(int level);
|
||||
+
|
||||
+
|
||||
+
|
||||
/*
|
||||
* Monitor support functions.
|
||||
*/
|
||||
--- libmonitor-20130218/src/mpi_comm_c.c 2013-02-17 23:08:32.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/mpi_comm_c.c 2013-02-18 10:34:17.878842622 -0800
|
||||
@@ -36,5 +36,8 @@
|
||||
ret = (*real_mpi_comm_rank)(comm, rank);
|
||||
monitor_set_mpi_size_rank(size, *rank);
|
||||
|
||||
+ monitor_mpi_post_comm_rank();
|
||||
+
|
||||
+
|
||||
return (ret);
|
||||
}
|
||||
--- libmonitor-20130218/src/mpi_comm_f0.c 2013-02-17 23:08:32.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/mpi_comm_f0.c 2013-02-18 10:34:17.879842617 -0800
|
||||
@@ -34,4 +34,5 @@
|
||||
(*real_mpi_comm_size)(comm, &size, ierror);
|
||||
(*real_mpi_comm_rank)(comm, rank, ierror);
|
||||
monitor_set_mpi_size_rank(size, *rank);
|
||||
+ monitor_mpi_post_comm_rank();
|
||||
}
|
||||
--- libmonitor-20130218/src/mpi_comm_f1.c 2013-02-17 23:08:32.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/mpi_comm_f1.c 2013-02-18 10:34:17.880842612 -0800
|
||||
@@ -34,4 +34,5 @@
|
||||
(*real_mpi_comm_size)(comm, &size, ierror);
|
||||
(*real_mpi_comm_rank)(comm, rank, ierror);
|
||||
monitor_set_mpi_size_rank(size, *rank);
|
||||
+ monitor_mpi_post_comm_rank();
|
||||
}
|
||||
--- libmonitor-20130218/src/mpi_comm_f2.c 2013-02-17 23:08:32.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/mpi_comm_f2.c 2013-02-18 10:34:17.880842612 -0800
|
||||
@@ -34,4 +34,5 @@
|
||||
(*real_mpi_comm_size)(comm, &size, ierror);
|
||||
(*real_mpi_comm_rank)(comm, rank, ierror);
|
||||
monitor_set_mpi_size_rank(size, *rank);
|
||||
+ monitor_mpi_post_comm_rank();
|
||||
}
|
||||
--- libmonitor-20130218/src/pmpi.c 2013-02-17 23:08:32.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/pmpi.c 2013-02-18 10:34:17.881842607 -0800
|
||||
@@ -52,11 +52,15 @@
|
||||
typedef int mpi_init_thread_fcn_t(int *, char ***, int, int *);
|
||||
typedef int mpi_finalize_fcn_t(void);
|
||||
typedef int mpi_comm_fcn_t(void *, int *);
|
||||
+typedef int mpi_pcontrol_fcn_t(int );
|
||||
+
|
||||
|
||||
typedef void f_mpi_init_fcn_t(int *);
|
||||
typedef void f_mpi_init_thread_fcn_t(int *, int *, int *);
|
||||
typedef void f_mpi_finalize_fcn_t(int *);
|
||||
typedef void f_mpi_comm_fcn_t(int *, int *, int *);
|
||||
+typedef int f_mpi_pcontrol_fcn_t(int );
|
||||
+
|
||||
|
||||
static mpi_init_fcn_t *real_pmpi_init = NULL;
|
||||
static f_mpi_init_fcn_t *real_pmpi_init_f0 = NULL;
|
||||
@@ -83,6 +87,12 @@
|
||||
static f_mpi_comm_fcn_t *real_pmpi_comm_rank_f1 = NULL;
|
||||
static f_mpi_comm_fcn_t *real_pmpi_comm_rank_f2 = NULL;
|
||||
|
||||
+static mpi_pcontrol_fcn_t *real_pmpi_pcontrol = NULL;
|
||||
+static f_mpi_pcontrol_fcn_t *real_pmpi_pcontrol_f0 = NULL;
|
||||
+static f_mpi_pcontrol_fcn_t *real_pmpi_pcontrol_f1 = NULL;
|
||||
+static f_mpi_pcontrol_fcn_t *real_pmpi_pcontrol_f2 = NULL;
|
||||
+
|
||||
+
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
* PMPI_INIT OVERRIDE FUNCTIONS
|
||||
@@ -297,6 +307,7 @@
|
||||
ret = (*real_pmpi_comm_size)(comm, &size);
|
||||
ret = (*real_pmpi_comm_rank)(comm, rank);
|
||||
monitor_set_mpi_size_rank(size, *rank);
|
||||
+ monitor_mpi_post_comm_rank();
|
||||
|
||||
return (ret);
|
||||
}
|
||||
@@ -308,7 +319,9 @@
|
||||
MONITOR_GET_REAL_NAME_WRAP(rank_var, rank_fcn); \
|
||||
(*size_var)(comm, &size, ierror); \
|
||||
(*rank_var)(comm, rank, ierror); \
|
||||
- monitor_set_mpi_size_rank(size, *rank);
|
||||
+ monitor_set_mpi_size_rank(size, *rank); \
|
||||
+ monitor_mpi_post_comm_rank();
|
||||
+
|
||||
|
||||
/*
|
||||
* In Fortran, MPI_Comm is always int.
|
||||
@@ -333,3 +346,48 @@
|
||||
FORTRAN_COMM_RANK_BODY(real_pmpi_comm_size_f2, pmpi_comm_size__,
|
||||
real_pmpi_comm_rank_f2, pmpi_comm_rank__);
|
||||
}
|
||||
+
|
||||
+
|
||||
+/*
|
||||
+ *----------------------------------------------------------------------
|
||||
+ * PMPI_PCONTROL OVERRIDE FUNCTIONS
|
||||
+ *----------------------------------------------------------------------
|
||||
+ */
|
||||
+
|
||||
+int
|
||||
+MONITOR_WRAP_NAME(PMPI_Pcontrol)(int level)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ MONITOR_DEBUG("level = %d\n", level); \
|
||||
+ MONITOR_GET_REAL_NAME_WRAP(real_pmpi_pcontrol, PMPI_Pcontrol);
|
||||
+ ret = (*real_pmpi_pcontrol) (level) ;
|
||||
+ monitor_mpi_pcontrol(level);
|
||||
+
|
||||
+ return (ret);
|
||||
+}
|
||||
+
|
||||
+#define FORTRAN_PCONTROL_BODY(var_name, fcn_name)\
|
||||
+ int ret; \
|
||||
+ MONITOR_DEBUG("level = %d\n", level); \
|
||||
+ MONITOR_GET_REAL_NAME_WRAP(var_name, fcn_name); \
|
||||
+ ret = (*var_name) (level) ; \
|
||||
+ monitor_mpi_pcontrol(level);
|
||||
+
|
||||
+int
|
||||
+MONITOR_WRAP_NAME(pmpi_pcontrol)(int level)
|
||||
+{
|
||||
+ FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f0, pmpi_pcontrol);
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+MONITOR_WRAP_NAME(pmpi_pcontrol_)(int level)
|
||||
+{
|
||||
+ FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f1, pmpi_pcontrol_);
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+MONITOR_WRAP_NAME(pmpi_pcontrol__)(int level)
|
||||
+{
|
||||
+ FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f2, pmpi_pcontrol__);
|
||||
+}
|
||||
--- libmonitor-20130218/src/mpi_pcontrol_c.c 1969-12-31 16:00:00.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_c.c 2013-02-18 10:34:17.882842602 -0800
|
||||
@@ -0,0 +1,30 @@
|
||||
+/*
|
||||
+ * Override MPI_Pcontrol in C/C++.
|
||||
+ *
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include "config.h"
|
||||
+#include "common.h"
|
||||
+#include "monitor.h"
|
||||
+
|
||||
+typedef int mpi_pcontrol_fcn_t(int level);
|
||||
+#ifdef MONITOR_STATIC
|
||||
+extern mpi_pcontrol_fcn_t __real_MPI_Pcontrol;
|
||||
+#endif
|
||||
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
|
||||
+
|
||||
+int
|
||||
+MONITOR_WRAP_NAME(MPI_Pcontrol)(int level)
|
||||
+{
|
||||
+ int ret, count;
|
||||
+
|
||||
+ MONITOR_DEBUG("level = %d\n", level); \
|
||||
+
|
||||
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, MPI_Pcontrol);
|
||||
+ ret = (*real_mpi_pcontrol)(level);
|
||||
+ monitor_mpi_pcontrol(level);
|
||||
+
|
||||
+
|
||||
+ return (ret);
|
||||
+}
|
||||
--- libmonitor-20130218/src/mpi_pcontrol_f0.c 1969-12-31 16:00:00.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_f0.c 2013-02-18 10:34:17.882842602 -0800
|
||||
@@ -0,0 +1,24 @@
|
||||
+/*
|
||||
+ * Override mpi_pcontrol in Fortran.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include "config.h"
|
||||
+#include "common.h"
|
||||
+#include "monitor.h"
|
||||
+
|
||||
+typedef void mpi_pcontrol_fcn_t(int level);
|
||||
+#ifdef MONITOR_STATIC
|
||||
+extern mpi_pcontrol_fcn_t __real_mpi_pcontrol;
|
||||
+#endif
|
||||
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
|
||||
+
|
||||
+int
|
||||
+MONITOR_WRAP_NAME(mpi_pcontrol)(int level)
|
||||
+{
|
||||
+ int count;
|
||||
+
|
||||
+ MONITOR_DEBUG1("\n");
|
||||
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol);
|
||||
+ (*real_mpi_pcontrol)(level);
|
||||
+}
|
||||
--- libmonitor-20130218/src/mpi_pcontrol_f1.c 1969-12-31 16:00:00.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_f1.c 2013-02-18 10:34:17.883842597 -0800
|
||||
@@ -0,0 +1,24 @@
|
||||
+/*
|
||||
+ * Override mpi_pcontrol_ in Fortran.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include "config.h"
|
||||
+#include "common.h"
|
||||
+#include "monitor.h"
|
||||
+
|
||||
+typedef void mpi_pcontrol_fcn_t(int level);
|
||||
+#ifdef MONITOR_STATIC
|
||||
+extern mpi_pcontrol_fcn_t __real_mpi_pcontrol_;
|
||||
+#endif
|
||||
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
|
||||
+
|
||||
+int
|
||||
+MONITOR_WRAP_NAME(mpi_pcontrol_)(int level)
|
||||
+{
|
||||
+ int count;
|
||||
+
|
||||
+ MONITOR_DEBUG1("\n");
|
||||
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol_);
|
||||
+ (*real_mpi_pcontrol)(level);
|
||||
+}
|
||||
--- libmonitor-20130218/src/mpi_pcontrol_f2.c 1969-12-31 16:00:00.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_f2.c 2013-02-18 10:34:17.883842597 -0800
|
||||
@@ -0,0 +1,24 @@
|
||||
+/*
|
||||
+ * Override mpi_pcontrol__ in Fortran.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include "config.h"
|
||||
+#include "common.h"
|
||||
+#include "monitor.h"
|
||||
+
|
||||
+typedef void mpi_pcontrol_fcn_t(int level);
|
||||
+#ifdef MONITOR_STATIC
|
||||
+extern mpi_pcontrol_fcn_t __real_mpi_pcontrol__;
|
||||
+#endif
|
||||
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
|
||||
+
|
||||
+int
|
||||
+MONITOR_WRAP_NAME(mpi_pcontrol__)(int level)
|
||||
+{
|
||||
+ int count;
|
||||
+
|
||||
+ MONITOR_DEBUG1("\n");
|
||||
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol__);
|
||||
+ (*real_mpi_pcontrol)(level);
|
||||
+}
|
||||
--- libmonitor-20130218/src/Makefile.am 2013-02-17 23:08:32.000000000 -0800
|
||||
+++ libmonitor-20130218-fixes/src/Makefile.am 2013-02-18 10:34:17.931842343 -0800
|
||||
@@ -38,10 +38,11 @@
|
||||
MONITOR_THREAD_FILES = pthread.c
|
||||
MONITOR_SCRIPT_FILES = monitor-link monitor-run
|
||||
MONITOR_MPI_FILES = \
|
||||
- mpi_init_c.c mpi_init_thread_c.c mpi_final_c.c mpi_comm_c.c \
|
||||
- mpi_init_f0.c mpi_init_thread_f0.c mpi_final_f0.c mpi_comm_f0.c \
|
||||
- mpi_init_f1.c mpi_init_thread_f1.c mpi_final_f1.c mpi_comm_f1.c \
|
||||
- mpi_init_f2.c mpi_init_thread_f2.c mpi_final_f2.c mpi_comm_f2.c
|
||||
+ mpi_init_c.c mpi_init_thread_c.c mpi_final_c.c mpi_comm_c.c mpi_pcontrol_c.c \
|
||||
+ mpi_init_f0.c mpi_init_thread_f0.c mpi_final_f0.c mpi_comm_f0.c mpi_pcontrol_f0.c \
|
||||
+ mpi_init_f1.c mpi_init_thread_f1.c mpi_final_f1.c mpi_comm_f1.c mpi_pcontrol_f1.c \
|
||||
+ mpi_init_f2.c mpi_init_thread_f2.c mpi_final_f2.c mpi_comm_f2.c mpi_pcontrol_f2.c
|
||||
+
|
||||
|
||||
include_HEADERS = monitor.h
|
||||
bin_SCRIPTS =
|
106
var/spack/packages/libmonitor/libmonitorkrell-0002.patch
Normal file
106
var/spack/packages/libmonitor/libmonitorkrell-0002.patch
Normal file
@ -0,0 +1,106 @@
|
||||
--- libmonitor-20130218/src/pmpi.c 2013-02-18 11:34:17.000000000 -0700
|
||||
+++ libmonitor-20130218-fixed/src/pmpi.c 2013-04-11 10:03:59.300550393 -0600
|
||||
@@ -355,7 +355,7 @@
|
||||
*/
|
||||
|
||||
int
|
||||
-MONITOR_WRAP_NAME(PMPI_Pcontrol)(int level)
|
||||
+MONITOR_WRAP_NAME(PMPI_Pcontrol)(int level, int *ierror )
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -375,19 +375,19 @@
|
||||
monitor_mpi_pcontrol(level);
|
||||
|
||||
int
|
||||
-MONITOR_WRAP_NAME(pmpi_pcontrol)(int level)
|
||||
+MONITOR_WRAP_NAME(pmpi_pcontrol)(int level, int *ierror )
|
||||
{
|
||||
FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f0, pmpi_pcontrol);
|
||||
}
|
||||
|
||||
int
|
||||
-MONITOR_WRAP_NAME(pmpi_pcontrol_)(int level)
|
||||
+MONITOR_WRAP_NAME(pmpi_pcontrol_)(int level, int *ierror )
|
||||
{
|
||||
FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f1, pmpi_pcontrol_);
|
||||
}
|
||||
|
||||
int
|
||||
-MONITOR_WRAP_NAME(pmpi_pcontrol__)(int level)
|
||||
+MONITOR_WRAP_NAME(pmpi_pcontrol__)(int level, int *ierror )
|
||||
{
|
||||
FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f2, pmpi_pcontrol__);
|
||||
}
|
||||
--- libmonitor-20130218/src/mpi_pcontrol_f0.c 2013-02-18 11:34:17.000000000 -0700
|
||||
+++ libmonitor-20130218-fixed/src/mpi_pcontrol_f0.c 2013-04-11 10:13:47.783002000 -0600
|
||||
@@ -7,18 +7,18 @@
|
||||
#include "common.h"
|
||||
#include "monitor.h"
|
||||
|
||||
-typedef void mpi_pcontrol_fcn_t(int level);
|
||||
+typedef void mpi_pcontrol_fcn_t(int level, int *ierror);
|
||||
#ifdef MONITOR_STATIC
|
||||
extern mpi_pcontrol_fcn_t __real_mpi_pcontrol;
|
||||
#endif
|
||||
static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
|
||||
|
||||
int
|
||||
-MONITOR_WRAP_NAME(mpi_pcontrol)(int level)
|
||||
+MONITOR_WRAP_NAME(mpi_pcontrol)(int level, int *ierror)
|
||||
{
|
||||
int count;
|
||||
|
||||
MONITOR_DEBUG1("\n");
|
||||
MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol);
|
||||
- (*real_mpi_pcontrol)(level);
|
||||
+ (*real_mpi_pcontrol)(level, ierror);
|
||||
}
|
||||
--- libmonitor-20130218/src/mpi_pcontrol_f1.c 2013-02-18 11:34:17.000000000 -0700
|
||||
+++ libmonitor-20130218-fixed/src/mpi_pcontrol_f1.c 2013-04-11 10:14:08.039214000 -0600
|
||||
@@ -7,18 +7,18 @@
|
||||
#include "common.h"
|
||||
#include "monitor.h"
|
||||
|
||||
-typedef void mpi_pcontrol_fcn_t(int level);
|
||||
+typedef void mpi_pcontrol_fcn_t(int level, int *ierror);
|
||||
#ifdef MONITOR_STATIC
|
||||
extern mpi_pcontrol_fcn_t __real_mpi_pcontrol_;
|
||||
#endif
|
||||
static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
|
||||
|
||||
int
|
||||
-MONITOR_WRAP_NAME(mpi_pcontrol_)(int level)
|
||||
+MONITOR_WRAP_NAME(mpi_pcontrol_)(int level, int *ierror)
|
||||
{
|
||||
int count;
|
||||
|
||||
MONITOR_DEBUG1("\n");
|
||||
MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol_);
|
||||
- (*real_mpi_pcontrol)(level);
|
||||
+ (*real_mpi_pcontrol)(level, ierror);
|
||||
}
|
||||
--- libmonitor-20130218/src/mpi_pcontrol_f2.c 2013-02-18 11:34:17.000000000 -0700
|
||||
+++ libmonitor-20130218-fixed/src/mpi_pcontrol_f2.c 2013-04-11 10:14:19.000960000 -0600
|
||||
@@ -7,18 +7,18 @@
|
||||
#include "common.h"
|
||||
#include "monitor.h"
|
||||
|
||||
-typedef void mpi_pcontrol_fcn_t(int level);
|
||||
+typedef void mpi_pcontrol_fcn_t(int level, int *ierror);
|
||||
#ifdef MONITOR_STATIC
|
||||
extern mpi_pcontrol_fcn_t __real_mpi_pcontrol__;
|
||||
#endif
|
||||
static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
|
||||
|
||||
int
|
||||
-MONITOR_WRAP_NAME(mpi_pcontrol__)(int level)
|
||||
+MONITOR_WRAP_NAME(mpi_pcontrol__)(int level, int *ierror)
|
||||
{
|
||||
int count;
|
||||
|
||||
MONITOR_DEBUG1("\n");
|
||||
MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol__);
|
||||
- (*real_mpi_pcontrol)(level);
|
||||
+ (*real_mpi_pcontrol)(level, ierror);
|
||||
}
|
@ -29,6 +29,13 @@ class Libmonitor(Package):
|
||||
homepage = "http://hpctoolkit.org"
|
||||
|
||||
version('20130218', svn='http://libmonitor.googlecode.com/svn/trunk/', revision=146)
|
||||
variant('krellpatch', default=False, description="build with openspeedshop based patch.")
|
||||
|
||||
|
||||
patch('libmonitorkrell-0000.patch', when='@20130218+krellpatch')
|
||||
patch('libmonitorkrell-0001.patch', when='@20130218+krellpatch')
|
||||
patch('libmonitorkrell-0002.patch', when='@20130218+krellpatch')
|
||||
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=" + prefix)
|
||||
|
26
var/spack/packages/lmod/package.py
Normal file
26
var/spack/packages/lmod/package.py
Normal file
@ -0,0 +1,26 @@
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
class Lmod(Package):
|
||||
"""
|
||||
Lmod is a Lua based module system that easily handles the MODULEPATH
|
||||
Hierarchical problem. Environment Modules provide a convenient way to
|
||||
dynamically change the users' environment through modulefiles. This
|
||||
includes easily adding or removing directories to the PATH environment
|
||||
variable. Modulefiles for Library packages provide environment variables
|
||||
that specify where the library and header files can be found.
|
||||
"""
|
||||
homepage = "https://www.tacc.utexas.edu/research-development/tacc-projects/lmod"
|
||||
url = "http://sourceforge.net/projects/lmod/files/Lmod-6.0.1.tar.bz2/download"
|
||||
|
||||
version('6.0.1', '91abf52fe5033bd419ffe2842ebe7af9')
|
||||
|
||||
depends_on("lua@5.2:")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Add our lua to PATH
|
||||
os.environ['PATH'] = spec['lua'].prefix.bin + ';' + os.environ['PATH']
|
||||
|
||||
configure('--prefix=%s' % prefix)
|
||||
make()
|
||||
make("install")
|
@ -85,8 +85,13 @@ def filter_compilers(self):
|
||||
mpif77 = os.path.join(bin, 'mpif77')
|
||||
mpif90 = os.path.join(bin, 'mpif90')
|
||||
|
||||
spack_cc = os.environ['CC']
|
||||
spack_cxx = os.environ['CXX']
|
||||
spack_f77 = os.environ['F77']
|
||||
spack_fc = os.environ['FC']
|
||||
|
||||
kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True }
|
||||
filter_file('CC="cc"', 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
|
||||
filter_file('CXX="c++"', 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
|
||||
filter_file('F77="f77"', 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
|
||||
filter_file('FC="f90"', 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)
|
||||
filter_file('CC="%s"' % spack_cc , 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
|
||||
filter_file('CXX="%s"'% spack_cxx, 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
|
||||
filter_file('F77="%s"'% spack_f77, 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
|
||||
filter_file('FC="%s"' % spack_fc , 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)
|
||||
|
@ -7,13 +7,19 @@ class Mrnet(Package):
|
||||
|
||||
version('4.0.0', 'd00301c078cba57ef68613be32ceea2f')
|
||||
version('4.1.0', '5a248298b395b329e2371bf25366115c')
|
||||
version('5.0.1', '17f65738cf1b9f9b95647ff85f69ecdd')
|
||||
|
||||
variant('lwthreads', default=False, description="Also build the MRNet LW threadsafe libraries")
|
||||
parallel = False
|
||||
|
||||
depends_on("boost")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" %prefix, "--enable-shared")
|
||||
# Build the MRNet LW thread safe libraries when the krelloptions variant is present
|
||||
if '+lwthreads' in spec:
|
||||
configure("--prefix=%s" %prefix, "--enable-shared", "--enable-ltwt-threadsafe")
|
||||
else:
|
||||
configure("--prefix=%s" %prefix, "--enable-shared")
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
@ -1,5 +1,5 @@
|
||||
from spack import *
|
||||
|
||||
import os
|
||||
|
||||
class Mvapich2(Package):
|
||||
"""MVAPICH2 is an MPI implementation for Infiniband networks."""
|
||||
@ -154,3 +154,31 @@ def install(self, spec, prefix):
|
||||
configure(*configure_args)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
self.filter_compilers()
|
||||
|
||||
|
||||
def filter_compilers(self):
|
||||
"""Run after install to make the MPI compilers use the
|
||||
compilers that Spack built the package with.
|
||||
|
||||
If this isn't done, they'll have CC, CXX, F77, and FC set
|
||||
to Spack's generic cc, c++, f77, and f90. We want them to
|
||||
be bound to whatever compiler they were built with.
|
||||
"""
|
||||
bin = self.prefix.bin
|
||||
mpicc = os.path.join(bin, 'mpicc')
|
||||
mpicxx = os.path.join(bin, 'mpicxx')
|
||||
mpif77 = os.path.join(bin, 'mpif77')
|
||||
mpif90 = os.path.join(bin, 'mpif90')
|
||||
|
||||
spack_cc = os.environ['CC']
|
||||
spack_cxx = os.environ['CXX']
|
||||
spack_f77 = os.environ['F77']
|
||||
spack_fc = os.environ['FC']
|
||||
|
||||
kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True }
|
||||
filter_file('CC="%s"' % spack_cc , 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
|
||||
filter_file('CXX="%s"'% spack_cxx, 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
|
||||
filter_file('F77="%s"'% spack_f77, 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
|
||||
filter_file('FC="%s"' % spack_fc , 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)
|
||||
|
@ -17,6 +17,8 @@ class Opari2(Package):
|
||||
homepage = "http://www.vi-hps.org/projects/score-p"
|
||||
url = "http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.2.tar.gz"
|
||||
|
||||
version('1.1.4', '245d3d11147a06de77909b0805f530c0',
|
||||
url='http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.4.tar.gz')
|
||||
version('1.1.2', '9a262c7ca05ff0ab5f7775ae96f3539e')
|
||||
|
||||
backend_user_provided = """\
|
||||
|
216
var/spack/packages/openspeedshop/package.py
Normal file
216
var/spack/packages/openspeedshop/package.py
Normal file
@ -0,0 +1,216 @@
|
||||
################################################################################
|
||||
# Copyright (c) 2015 Krell Institute. All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
# Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
################################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
class Openspeedshop(Package):
|
||||
"""OpenSpeedShop is a community effort by The Krell Institute with current direct funding from DOEs NNSA.
|
||||
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, Blue Gene and Cray platforms. OpenSpeedShop development
|
||||
is hosted by the Krell Institute. The infrastructure and base components of OpenSpeedShop are released
|
||||
as open source code primarily under LGPL.
|
||||
"""
|
||||
|
||||
|
||||
homepage = "http://www.openspeedshop.org"
|
||||
url = "http://sourceforge.net/projects/openss/files/openss/openspeedshop-2.2/openspeedshop-2.2.tar.gz/download"
|
||||
version('2.2', '16cb051179c2038de4e8a845edf1d573')
|
||||
|
||||
#homepage = "http://www.openspeedshop.org"
|
||||
#url = "http://sourceforge.net/projects/openss/files/openss/openspeedshop-2.1/openspeedshop-2.1.tar.gz/download"
|
||||
#version('2.1', 'bdaa57c1a0db9d0c3e0303fd8496c507')
|
||||
|
||||
# optional mirror template
|
||||
#url = "file:/g/g24/jeg/openspeedshop-2.1.tar.gz"
|
||||
#version('2.1', '64ee17166519838c7b94a1adc138e94f')
|
||||
|
||||
|
||||
|
||||
parallel = False
|
||||
|
||||
variant('offline', default=True, description="build with offline instrumentor enabled.")
|
||||
variant('cbtf', default=False, description="build with cbtf instrumentor enabled.")
|
||||
variant('runtime', default=False, description="build only the runtime libraries and collectors.")
|
||||
variant('frontend', default=False, description="build only the front-end tool using the runtime_dir to point to the target build.")
|
||||
variant('cuda', default=False, description="build with cuda packages included.")
|
||||
variant('ptgf', default=False, description="build with the PTGF based gui package enabled.")
|
||||
variant('intelmic', default=False, description="build for the Intel MIC platform.")
|
||||
variant('cray', default=False, description="build for Cray platforms.")
|
||||
variant('bluegene', default=False, description="build for Cray platforms.")
|
||||
variant('rtfe', default=False, description="build for generic cluster platforms that have different processors on the fe and be nodes.")
|
||||
|
||||
# Dependencies for openspeedshop that are common to all the variants of the OpenSpeedShop build
|
||||
depends_on("bison")
|
||||
depends_on("flex")
|
||||
depends_on("binutils@2.24+krellpatch")
|
||||
depends_on("libelf")
|
||||
depends_on("libdwarf")
|
||||
depends_on("sqlite")
|
||||
depends_on("boost@1.50.0")
|
||||
depends_on("dyninst@8.2.1")
|
||||
depends_on("python")
|
||||
depends_on("qt@3.3.8b+krellpatch")
|
||||
|
||||
# Dependencies only for the openspeedshop offline package.
|
||||
depends_on("libunwind", when='+offline')
|
||||
depends_on("papi", when='+offline')
|
||||
depends_on("libmonitor+krellpatch", when='+offline')
|
||||
#depends_on("openmpi+krelloptions", when='+offline')
|
||||
#depends_on("openmpi", when='+offline')
|
||||
#depends_on("mpich", when='+offline')
|
||||
|
||||
# Dependencies only for the openspeedshop cbtf package.
|
||||
depends_on("cbtf", when='+cbtf')
|
||||
depends_on("cbtf-krell", when='+cbtf')
|
||||
depends_on("cbtf-argonavis", when='+cbtf')
|
||||
depends_on("mrnet@4.1.0:+lwthreads", when='+cbtf')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
#openmpi_prefix_path = "/opt/openmpi-1.8.2"
|
||||
#mvapich_prefix_path = "/usr/local/tools/mvapich-gnu"
|
||||
#'-DOPENMPI_DIR=%s' % spec['openmpi'].prefix,
|
||||
#'-DOPENMPI_DIR=%s' % openmpi_prefix_path,
|
||||
#'-DMVAPICH_DIR=%s' % mvapich_prefix_path,
|
||||
|
||||
# FIXME: How do we make this dynamic in spack? That is, can we specify the paths to cuda dynamically?
|
||||
# WAITING for external package support.
|
||||
#if '+cuda' in spec:
|
||||
# cuda_prefix_path = "/usr/local/cuda-6.0"
|
||||
# cupti_prefix_path = "/usr/local/cuda-6.0/extras/CUPTI"
|
||||
|
||||
if '+offline' in spec:
|
||||
instrumentor_setting = "offline"
|
||||
if '+runtime' in spec:
|
||||
with working_dir('build_runtime', create=True):
|
||||
cmake('..',
|
||||
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
|
||||
'-DINSTRUMENTOR=%s' % instrumentor_setting,
|
||||
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
|
||||
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
|
||||
'-DPAPI_DIR=%s' % spec['papi'].prefix,
|
||||
*std_cmake_args)
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
else:
|
||||
cmake_prefix_path = join_path(spec['dyninst'].prefix)
|
||||
with working_dir('build', create=True):
|
||||
#python_vers=join_path(spec['python'].version[:2])
|
||||
#'-DOPENMPI_DIR=%s' % openmpi_prefix_path,
|
||||
#'-DMVAPICH_DIR=%s' % mvapich_prefix_path,
|
||||
python_vers='%d.%d' % spec['python'].version[:2]
|
||||
cmake('..',
|
||||
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
|
||||
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
'-DINSTRUMENTOR=%s' % instrumentor_setting,
|
||||
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
|
||||
'-DLIBELF_DIR=%s' % spec['libelf'].prefix,
|
||||
'-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
|
||||
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
|
||||
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
|
||||
'-DPAPI_DIR=%s' % spec['papi'].prefix,
|
||||
'-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
|
||||
'-DQTLIB_DIR=%s' % spec['qt'].prefix,
|
||||
'-DPYTHON_EXECUTABLE=%s' % join_path(spec['python'].prefix + '/bin/python'),
|
||||
'-DPYTHON_INCLUDE_DIR=%s' % join_path(spec['python'].prefix.include) + '/python' + python_vers,
|
||||
'-DPYTHON_LIBRARY=%s' % join_path(spec['python'].prefix.lib) + '/libpython' + python_vers + '.so',
|
||||
'-DBoost_NO_SYSTEM_PATHS=TRUE',
|
||||
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
|
||||
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
|
||||
*std_cmake_args)
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
|
||||
elif '+cbtf' in spec:
|
||||
instrumentor_setting = "cbtf"
|
||||
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix) + ':' + join_path(spec['dyninst'].prefix)
|
||||
if '+runtime' in spec:
|
||||
with working_dir('build_cbtf_runtime', create=True):
|
||||
python_vers='%d.%d' % spec['python'].version[:2]
|
||||
cmake('..',
|
||||
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
|
||||
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
'-DINSTRUMENTOR=%s' % instrumentor_setting,
|
||||
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
|
||||
'-DLIBELF_DIR=%s' % spec['libelf'].prefix,
|
||||
'-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
|
||||
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
|
||||
'-DPYTHON_EXECUTABLE=%s' % join_path(spec['python'].prefix + '/bin/python'),
|
||||
'-DPYTHON_INCLUDE_DIR=%s' % join_path(spec['python'].prefix.include) + '/python' + python_vers,
|
||||
'-DPYTHON_LIBRARY=%s' % join_path(spec['python'].prefix.lib) + '/libpython' + python_vers + '.so',
|
||||
'-DBoost_NO_SYSTEM_PATHS=TRUE',
|
||||
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
|
||||
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
|
||||
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
*std_cmake_args)
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
|
||||
else:
|
||||
with working_dir('build_cbtf', create=True):
|
||||
python_vers='%d.%d' % spec['python'].version[:2]
|
||||
#python_vers=join_path(spec['python'].version[:2])
|
||||
cmake('..',
|
||||
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
|
||||
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
'-DINSTRUMENTOR=%s' % instrumentor_setting,
|
||||
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
|
||||
'-DLIBELF_DIR=%s' % spec['libelf'].prefix,
|
||||
'-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
|
||||
'-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
|
||||
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
|
||||
'-DQTLIB_DIR=%s' % spec['qt'].prefix,
|
||||
'-DPYTHON_EXECUTABLE=%s' % join_path(spec['python'].prefix + '/bin/python'),
|
||||
'-DPYTHON_INCLUDE_DIR=%s' % join_path(spec['python'].prefix.include) + '/python' + python_vers,
|
||||
'-DPYTHON_LIBRARY=%s' % join_path(spec['python'].prefix.lib) + '/libpython' + python_vers + '.so',
|
||||
'-DBoost_NO_SYSTEM_PATHS=TRUE',
|
||||
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
|
||||
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
|
||||
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
*std_cmake_args)
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
|
||||
#if '+frontend' in spec:
|
||||
# with working_dir('build_frontend', create=True):
|
||||
# tbd
|
||||
|
||||
|
||||
#if '+intelmic' in spec:
|
||||
# with working_dir('build_intelmic_compute', create=True):
|
||||
# tbd
|
||||
# with working_dir('build_intelmic_frontend', create=True):
|
||||
# tbd
|
||||
|
||||
#if '+cray' in spec:
|
||||
# with working_dir('build_cray_compute', create=True):
|
||||
# tbd
|
||||
# with working_dir('build_cray_frontend', create=True):
|
||||
# tbd
|
@ -11,6 +11,10 @@ class Otf2(Package):
|
||||
homepage = "http://www.vi-hps.org/score-p"
|
||||
url = "http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz"
|
||||
|
||||
version('2.0', '5b546188b25bc1c4e285e06dddf75dfc',
|
||||
url="http://www.vi-hps.org/upload/packages/otf2/otf2-2.0.tar.gz")
|
||||
version('1.5.1', '16a9df46e0da78e374f5d12c8cdc1109',
|
||||
url='http://www.vi-hps.org/upload/packages/otf2/otf2-1.5.1.tar.gz')
|
||||
version('1.4', 'a23c42e936eb9209c4e08b61c3cf5092',
|
||||
url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz")
|
||||
version('1.3.1', 'd0ffc4e858455ace4f596f910e68c9f2',
|
||||
|
@ -11,8 +11,8 @@ class Papi(Package):
|
||||
components that expose performance measurement opportunites
|
||||
across the hardware and software stack."""
|
||||
homepage = "http://icl.cs.utk.edu/papi/index.html"
|
||||
url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.3.0.tar.gz"
|
||||
|
||||
url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz"
|
||||
version('5.4.1', '9134a99219c79767a11463a76b0b01a2')
|
||||
version('5.3.0', '367961dd0ab426e5ae367c2713924ffb')
|
||||
|
||||
|
45
var/spack/packages/pdt/package.py
Normal file
45
var/spack/packages/pdt/package.py
Normal file
@ -0,0 +1,45 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License (as published by
|
||||
# the Free Software Foundation) version 2.1 dated February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Pdt(Package):
|
||||
"""
|
||||
Program Database Toolkit (PDT) is a framework for analyzing source code written in several programming languages
|
||||
and for making rich program knowledge accessible to developers of static and dynamic analysis tools. PDT implements
|
||||
a standard program representation, the program database (PDB), that can be accessed in a uniform way through a
|
||||
class library supporting common PDB operations.
|
||||
"""
|
||||
homepage = "https://www.cs.uoregon.edu/research/pdt/home.php"
|
||||
url = "https://www.cs.uoregon.edu/research/tau/pdt_releases/pdt-3.21.tar.gz"
|
||||
|
||||
version('3.21', '8df94298b71703decf680709a4ddf68f')
|
||||
version('3.19', 'ba5591994998771fdab216699e362228')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('-prefix=%s' % prefix)
|
||||
make()
|
||||
make("install")
|
@ -4,7 +4,7 @@ class PyCffi(Package):
|
||||
"""Foreign Function Interface for Python calling C code"""
|
||||
homepage = "http://cffi.readthedocs.org/en/latest/"
|
||||
# base https://pypi.python.org/pypi/cffi
|
||||
url = "https://pypi.python.org/packages/source/c/cffi/cffi-1.1.2.tar.gz#md5="
|
||||
url = "https://pypi.python.org/packages/source/c/cffi/cffi-1.1.2.tar.gz"
|
||||
|
||||
version('1.1.2', 'ca6e6c45b45caa87aee9adc7c796eaea')
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
import re
|
||||
from contextlib import closing
|
||||
from llnl.util.lang import match_predicate
|
||||
from spack.util.environment import *
|
||||
|
||||
from spack import *
|
||||
import spack
|
||||
@ -16,22 +17,33 @@ class Python(Package):
|
||||
|
||||
version('2.7.8', 'd235bdfa75b8396942e360a70487ee00')
|
||||
version('2.7.10', 'c685ef0b8e9f27b5e3db5db12b268ac6')
|
||||
version('3.5.0', 'd149d2812f10cbe04c042232e7964171')
|
||||
|
||||
depends_on("openssl")
|
||||
depends_on("bzip2")
|
||||
depends_on("readline")
|
||||
depends_on("ncurses")
|
||||
depends_on("sqlite")
|
||||
depends_on("zlib")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Need this to allow python build to find the Python installation.
|
||||
env['PYTHONHOME'] = prefix
|
||||
env['MACOSX_DEPLOYMENT_TARGET'] = '10.6'
|
||||
|
||||
# Rest of install is pretty standard.
|
||||
# Rest of install is pretty standard except setup.py needs to be able to read the CPPFLAGS
|
||||
# and LDFLAGS as it scans for the library and headers to build
|
||||
configure("--prefix=%s" % prefix,
|
||||
"--with-threads",
|
||||
"--enable-shared")
|
||||
"--enable-shared",
|
||||
"CPPFLAGS=-I%s/include -I%s/include -I%s/include -I%s/include -I%s/include -I%s/include" % (
|
||||
spec['openssl'].prefix, spec['bzip2'].prefix,
|
||||
spec['readline'].prefix, spec['ncurses'].prefix,
|
||||
spec['sqlite'].prefix, spec['zlib'].prefix),
|
||||
"LDFLAGS=-L%s/lib -L%s/lib -L%s/lib -L%s/lib -L%s/lib -L%s/lib" % (
|
||||
spec['openssl'].prefix, spec['bzip2'].prefix,
|
||||
spec['readline'].prefix, spec['ncurses'].prefix,
|
||||
spec['sqlite'].prefix, spec['zlib'].prefix))
|
||||
make()
|
||||
make("install")
|
||||
|
||||
@ -63,7 +75,10 @@ def setup_dependent_environment(self, module, spec, ext_spec):
|
||||
python('setup.py', 'install', '--prefix=%s' % prefix)
|
||||
"""
|
||||
# Python extension builds can have a global python executable function
|
||||
module.python = Executable(join_path(spec.prefix.bin, 'python'))
|
||||
if self.version >= Version("3.0.0") and self.version < Version("4.0.0"):
|
||||
module.python = Executable(join_path(spec.prefix.bin, 'python3'))
|
||||
else:
|
||||
module.python = Executable(join_path(spec.prefix.bin, 'python'))
|
||||
|
||||
# Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs.
|
||||
module.python_lib_dir = os.path.join(ext_spec.prefix, self.python_lib_dir)
|
||||
|
@ -10,14 +10,23 @@ class Qt(Package):
|
||||
|
||||
version('5.4.0', 'e8654e4b37dd98039ba20da7a53877e6',
|
||||
url='http://download.qt-project.org/official_releases/qt/5.4/5.4.0/single/qt-everywhere-opensource-src-5.4.0.tar.gz')
|
||||
|
||||
version('5.3.2', 'febb001129927a70174467ecb508a682',
|
||||
url='http://download.qt.io/archive/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.tar.gz')
|
||||
|
||||
version('5.2.1', 'a78408c887c04c34ce615da690e0b4c8',
|
||||
url='http://download.qt.io/archive/qt/5.2/5.2.1/single/qt-everywhere-opensource-src-5.2.1.tar.gz')
|
||||
|
||||
version('4.8.6', '2edbe4d6c2eff33ef91732602f3518eb',
|
||||
url="http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz")
|
||||
|
||||
version('3.3.8b', '9f05b4125cfe477cc52c9742c3c09009',
|
||||
url="http://download.qt.io/archive/qt/3/qt-x11-free-3.3.8b.tar.gz")
|
||||
|
||||
# Add patch for compile issues with qt3 found with use in the OpenSpeedShop project
|
||||
variant('krellpatch', default=False, description="build with openspeedshop based patch.")
|
||||
patch('qt3krell.patch', when='@3.3.8b+krellpatch')
|
||||
|
||||
# Use system openssl for security.
|
||||
#depends_on("openssl")
|
||||
|
||||
@ -25,7 +34,7 @@ class Qt(Package):
|
||||
depends_on("gtkplus")
|
||||
depends_on("libxml2")
|
||||
depends_on("zlib")
|
||||
depends_on("dbus")
|
||||
depends_on("dbus", when='@4:')
|
||||
depends_on("libtiff")
|
||||
depends_on("libpng")
|
||||
depends_on("libmng")
|
||||
@ -39,7 +48,7 @@ class Qt(Package):
|
||||
# depends_on("icu4c")
|
||||
|
||||
# OpenGL hardware acceleration
|
||||
depends_on("mesa")
|
||||
depends_on("mesa", when='@4:')
|
||||
depends_on("libxcb")
|
||||
|
||||
|
||||
@ -85,6 +94,15 @@ def common_config_args(self):
|
||||
# Don't disable all the database drivers, but should
|
||||
# really get them into spack at some point.
|
||||
|
||||
@when('@3')
|
||||
def configure(self):
|
||||
configure('-prefix', self.prefix,
|
||||
'-v',
|
||||
'-thread',
|
||||
'-shared',
|
||||
'-release',
|
||||
'-fast'
|
||||
)
|
||||
|
||||
@when('@4')
|
||||
def configure(self):
|
||||
|
68
var/spack/packages/qt/qt3krell.patch
Normal file
68
var/spack/packages/qt/qt3krell.patch
Normal file
@ -0,0 +1,68 @@
|
||||
--- qt-x11-free-3.3.8b/src/tools/qmap.h 2008-01-15 13:09:13.000000000 -0600
|
||||
+++ qt-x11-free-3.3.8b-fixes/src/tools/qmap.h 2015-07-08 15:47:34.757565247 -0500
|
||||
@@ -52,6 +52,7 @@
|
||||
#ifndef QT_NO_STL
|
||||
#include <iterator>
|
||||
#include <map>
|
||||
+#include <cstddef>
|
||||
#endif
|
||||
|
||||
//#define QT_CHECK_MAP_RANGE
|
||||
--- qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2008-01-15 13:09:13.000000000 -0600
|
||||
+++ qt-x11-free-3.3.8b-fixes/src/tools/qvaluelist.h 2015-07-08 15:47:34.758565247 -0500
|
||||
@@ -50,6 +50,7 @@
|
||||
#ifndef QT_NO_STL
|
||||
#include <iterator>
|
||||
#include <list>
|
||||
+#include <cstddef>
|
||||
#endif
|
||||
|
||||
//#define QT_CHECK_VALUELIST_RANGE
|
||||
--- qt-x11-free-3.3.8b/src/tools/qvaluevector.h 2008-01-15 13:09:13.000000000 -0600
|
||||
+++ qt-x11-free-3.3.8b-fixes/src/tools/qvaluevector.h 2015-07-08 15:47:34.758565247 -0500
|
||||
@@ -47,6 +47,7 @@
|
||||
|
||||
#ifndef QT_NO_STL
|
||||
#include <vector>
|
||||
+#include <cstddef>
|
||||
#endif
|
||||
|
||||
template <class T>
|
||||
--- qt-x11-free-3.3.8b/configure 2008-01-15 13:09:15.000000000 -0600
|
||||
+++ qt-x11-free-3.3.8b-fixes/configure 2015-07-08 15:49:03.379560633 -0500
|
||||
@@ -2339,7 +2339,7 @@
|
||||
else
|
||||
echo "Do you accept the terms of the $TheLicense? \c"
|
||||
fi
|
||||
- read acceptance
|
||||
+ acceptance=yes
|
||||
echo
|
||||
if [ "$acceptance" = yes ]; then
|
||||
break
|
||||
@@ -2397,7 +2397,7 @@
|
||||
else
|
||||
echo "Do you accept the terms of $affix license? \c"
|
||||
fi
|
||||
- read acceptance
|
||||
+ acceptance=yes
|
||||
echo
|
||||
if [ "$acceptance" = "yes" ]; then
|
||||
break
|
||||
@@ -2443,7 +2443,7 @@
|
||||
else
|
||||
echo "Do you accept the terms of the license? \c"
|
||||
fi
|
||||
- read acceptance
|
||||
+ acceptance=yes
|
||||
echo
|
||||
if [ "$acceptance" = "yes" ]; then
|
||||
break
|
||||
@@ -2524,7 +2524,7 @@
|
||||
else
|
||||
echo "Do you accept the terms of the $Platform License? \c"
|
||||
fi
|
||||
- read acceptance
|
||||
+ acceptance=yes
|
||||
echo
|
||||
if [ "$acceptance" = "yes" ]; then
|
||||
break
|
@ -1,74 +1,80 @@
|
||||
# FIXME: Add copyright statement
|
||||
##############################################################################
|
||||
# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License (as published by
|
||||
# the Free Software Foundation) version 2.1 dated February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Scorep(Package):
|
||||
"""The Score-P measurement infrastructure is a highly scalable and
|
||||
"""
|
||||
The Score-P measurement infrastructure is a highly scalable and
|
||||
easy-to-use tool suite for profiling, event tracing, and online
|
||||
analysis of HPC applications."""
|
||||
|
||||
# FIXME: add a proper url for your package's homepage here.
|
||||
homepage = "http://www.vi-hps.org/projects/score-p"
|
||||
url = "http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.3.tar.gz"
|
||||
|
||||
version('1.4.2', '3b9a042b13bdd5836452354e6567f71e',
|
||||
url='http://www.vi-hps.org/upload/packages/scorep/scorep-1.4.2.tar.gz')
|
||||
version('1.3', '9db6f957b7f51fa01377a9537867a55c',
|
||||
url = 'http://www.vi-hps.org/upload/packages/scorep/scorep-1.3.tar.gz')
|
||||
url='http://www.vi-hps.org/upload/packages/scorep/scorep-1.3.tar.gz')
|
||||
|
||||
version('1.2.3', '4978084e7cbd05b94517aa8beaea0817')
|
||||
##########
|
||||
# Dependencies for SCORE-P are quite tight. See the homepage for more information.
|
||||
# SCOREP 1.4.2
|
||||
depends_on('otf2@1.5:1.6', when='@1.4.2')
|
||||
depends_on('opari2@1.1.4', when='@1.4.2')
|
||||
depends_on('cube@4.3:4.4', when='@1.4.2')
|
||||
# SCOREP 1.3
|
||||
depends_on("otf2@1.4", when='@1.3')
|
||||
depends_on("opari2@1.1.4", when='@1.3')
|
||||
depends_on("cube@4.2.3", when='@1.3')
|
||||
##########
|
||||
|
||||
depends_on("mpi")
|
||||
depends_on("papi")
|
||||
# depends_on("otf2@1.2:1.2.1") # only Score-P 1.2.x
|
||||
depends_on("otf2")
|
||||
depends_on("opari2")
|
||||
depends_on("cube@4.2:4.2.3")
|
||||
|
||||
backend_user_provided = """\
|
||||
CC=cc
|
||||
CXX=c++
|
||||
F77=f77
|
||||
FC=f90
|
||||
CFLAGS=-fPIC
|
||||
CXXFLAGS=-fPIC
|
||||
"""
|
||||
frontend_user_provided = """\
|
||||
CC_FOR_BUILD=cc
|
||||
CXX_FOR_BUILD=c++
|
||||
F77_FOR_BUILD=f70
|
||||
FC_FOR_BUILD=f90
|
||||
CFLAGS_FOR_BUILD=-fPIC
|
||||
CXXFLAGS_FOR_BUILD=-fPIC
|
||||
"""
|
||||
mpi_user_provided = """\
|
||||
MPICC=mpicc
|
||||
MPICXX=mpicxx
|
||||
MPIF77=mpif77
|
||||
MPIFC=mpif90
|
||||
MPI_CFLAGS=-fPIC
|
||||
MPI_CXXFLAGS=-fPIC
|
||||
"""
|
||||
def get_compiler_config_line(self):
|
||||
backend_user_provided = ['CC=%s' % self.compiler.cc_names[0],
|
||||
'CXX=%s' % self.compiler.cxx_names[0],
|
||||
'F77=%s' % self.compiler.f77_names[0] if len(self.compiler.f77_names) else "",
|
||||
'FC=%s' % self.compiler.fc_names[0] if len(self.compiler.fc_names) else "",
|
||||
'CFLAGS=-fPIC %s' % self.rpath_args,
|
||||
'CXXFLAGS=-fPIC %s'% self.rpath_args]
|
||||
return backend_user_provided
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Use a custom compiler configuration, otherwise the score-p
|
||||
# build system messes with spack's compiler settings.
|
||||
# Create these three files in the build directory
|
||||
with open("platform-backend-user-provided", "w") as backend_file:
|
||||
backend_file.write(self.backend_user_provided)
|
||||
with open("platform-frontend-user-provided", "w") as frontend_file:
|
||||
frontend_file.write(self.frontend_user_provided)
|
||||
with open("platform-mpi-user-provided", "w") as mpi_file:
|
||||
mpi_file.write(self.mpi_user_provided)
|
||||
|
||||
configure_args = ["--prefix=%s" % prefix,
|
||||
"--with-custom-compilers",
|
||||
"--with-otf2=%s" % spec['otf2'].prefix.bin,
|
||||
"--with-opari2=%s" % spec['opari2'].prefix.bin,
|
||||
"--with-cube=%s" % spec['cube'].prefix.bin,
|
||||
"--with-papi-header=%s" % spec['papi'].prefix.include,
|
||||
"--with-papi-lib=%s" % spec['papi'].prefix.lib,
|
||||
"--enable-shared"]
|
||||
|
||||
configure(*configure_args)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
configure = Executable( join_path(self.stage.source_path, 'configure') )
|
||||
with working_dir('spack-build', create=True):
|
||||
configure_args = ["--prefix=%s" % prefix,
|
||||
"--with-otf2=%s" % spec['otf2'].prefix.bin,
|
||||
"--with-opari2=%s" % spec['opari2'].prefix.bin,
|
||||
"--with-cube=%s" % spec['cube'].prefix.bin,
|
||||
"--with-papi-header=%s" % spec['papi'].prefix.include,
|
||||
"--with-papi-lib=%s" % spec['papi'].prefix.lib,
|
||||
"--enable-shared"]
|
||||
configure_args.extend(self.get_compiler_config_line())
|
||||
configure(*configure_args)
|
||||
make()
|
||||
make("install")
|
||||
|
@ -1,5 +1,4 @@
|
||||
from spack import *
|
||||
import glob
|
||||
import os
|
||||
|
||||
class Scotch(Package):
|
||||
@ -11,28 +10,115 @@ class Scotch(Package):
|
||||
|
||||
version('6.0.3', '10b0cc0f184de2de99859eafaca83cfc')
|
||||
|
||||
depends_on('mpi')
|
||||
variant('mpi', default=False, description='Activate the compilation of PT-Scotch')
|
||||
variant('compression', default=True, description='Activate the posibility to use compressed files')
|
||||
variant('esmumps', default=False, description='Activate the compilation of the lib esmumps needed by mumps')
|
||||
variant('shared', default=True, description='Build shared libraries')
|
||||
|
||||
depends_on('mpi', when='+mpi')
|
||||
depends_on('zlib', when='+compression')
|
||||
depends_on('flex')
|
||||
depends_on('bison')
|
||||
|
||||
def compiler_specifics(self, makefile_inc, defines):
|
||||
if self.compiler.name == 'gcc':
|
||||
defines.append('-Drestrict=__restrict')
|
||||
elif self.compiler.name == 'intel':
|
||||
defines.append('-restrict')
|
||||
|
||||
makefile_inc.append('CCS = $(CC)')
|
||||
|
||||
if '+mpi' in self.spec:
|
||||
makefile_inc.extend([
|
||||
'CCP = %s' % os.path.join(self.spec['mpi'].prefix.bin, 'mpicc'),
|
||||
'CCD = $(CCP)'
|
||||
])
|
||||
else:
|
||||
makefile_inc.extend([
|
||||
'CCP = mpicc', # It is set but not used
|
||||
'CCD = $(CCS)'
|
||||
])
|
||||
|
||||
|
||||
|
||||
def library_build_type(self, makefile_inc, defines):
|
||||
makefile_inc.extend([
|
||||
'LIB = .a',
|
||||
'CLIBFLAGS = ',
|
||||
'RANLIB = ranlib',
|
||||
'AR = ar',
|
||||
'ARFLAGS = -ruv '
|
||||
])
|
||||
|
||||
@when('+shared')
|
||||
def library_build_type(self, makefile_inc, defines):
|
||||
makefile_inc.extend([
|
||||
'LIB = .so',
|
||||
'CLIBFLAGS = -shared -fPIC',
|
||||
'RANLIB = echo',
|
||||
'AR = $(CC)',
|
||||
'ARFLAGS = -shared $(LDFLAGS) -o'
|
||||
])
|
||||
|
||||
def extra_features(self, makefile_inc, defines):
|
||||
ldflags = []
|
||||
|
||||
if '+compression' in self.spec:
|
||||
defines.append('-DCOMMON_FILE_COMPRESS_GZ')
|
||||
ldflags.append('-L%s -lz' % (self.spec['zlib'].prefix.lib))
|
||||
|
||||
defines.append('-DCOMMON_PTHREAD')
|
||||
ldflags.append('-lm -lrt -pthread')
|
||||
|
||||
makefile_inc.append('LDFLAGS = %s' % ' '.join(ldflags))
|
||||
|
||||
def patch(self):
|
||||
with working_dir('src/Make.inc'):
|
||||
makefiles = glob.glob('Makefile.inc.x86-64_pc_linux2*')
|
||||
filter_file(r'^CCS\s*=.*$', 'CCS = cc', *makefiles)
|
||||
filter_file(r'^CCD\s*=.*$', 'CCD = cc', *makefiles)
|
||||
makefile_inc = []
|
||||
defines = [
|
||||
'-DCOMMON_RANDOM_FIXED_SEED',
|
||||
'-DSCOTCH_DETERMINISTIC',
|
||||
'-DSCOTCH_RENAME',
|
||||
'-DIDXSIZE64' ]
|
||||
|
||||
self.library_build_type(makefile_inc, defines)
|
||||
self.compiler_specifics(makefile_inc, defines)
|
||||
self.extra_features(makefile_inc, defines)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Currently support gcc and icc on x86_64 (maybe others with
|
||||
# vanilla makefile)
|
||||
makefile = 'Make.inc/Makefile.inc.x86-64_pc_linux2'
|
||||
if spec.satisfies('%icc'):
|
||||
makefile += '.icc'
|
||||
makefile_inc.extend([
|
||||
'EXE =',
|
||||
'OBJ = .o',
|
||||
'MAKE = make',
|
||||
'CAT = cat',
|
||||
'LN = ln',
|
||||
'MKDIR = mkdir',
|
||||
'MV = mv',
|
||||
'CP = cp',
|
||||
'CFLAGS = -O3 %s' % (' '.join(defines)),
|
||||
'LEX = %s -Pscotchyy -olex.yy.c' % os.path.join(self.spec['flex'].prefix.bin , 'flex'),
|
||||
'YACC = %s -pscotchyy -y -b y' % os.path.join(self.spec['bison'].prefix.bin, 'bison'),
|
||||
'prefix = %s' % self.prefix,
|
||||
''
|
||||
])
|
||||
|
||||
with working_dir('src'):
|
||||
force_symlink(makefile, 'Makefile.inc')
|
||||
for app in ('scotch', 'ptscotch'):
|
||||
make(app)
|
||||
with open('Makefile.inc', 'w') as fh:
|
||||
fh.write('\n'.join(makefile_inc))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
targets = ['scotch']
|
||||
if '+mpi' in self.spec:
|
||||
targets.append('ptscotch')
|
||||
|
||||
if '+esmumps' in self.spec:
|
||||
targets.append('esmumps')
|
||||
if '+mpi' in self.spec:
|
||||
targets.append('ptesmumps')
|
||||
|
||||
with working_dir('src'):
|
||||
for app in targets:
|
||||
make(app, parallel=(not app=='ptesmumps'))
|
||||
|
||||
|
||||
install_tree('bin', prefix.bin)
|
||||
install_tree('lib', prefix.lib)
|
||||
install_tree('include', prefix.include)
|
||||
|
18
var/spack/packages/spot/package.py
Normal file
18
var/spack/packages/spot/package.py
Normal file
@ -0,0 +1,18 @@
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
class Spot(Package):
|
||||
"""Spot is a C++11 library for omega-automata manipulation and model checking."""
|
||||
homepage = "https://spot.lrde.epita.fr/index.html"
|
||||
url = "http://www.lrde.epita.fr/dload/spot/spot-1.99.3.tar.gz"
|
||||
|
||||
version('1.99.3', 'd53adcb2d0fe7c69f45d4e595a58254e')
|
||||
|
||||
#depends_on("gcc@4.8:")
|
||||
depends_on("python@3.2:")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix=%s' % prefix)
|
||||
|
||||
make()
|
||||
make("install")
|
@ -1,32 +1,135 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License (as published by
|
||||
# the Free Software Foundation) version 2.1 dated February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
import os
|
||||
import os.path
|
||||
|
||||
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,
|
||||
Java, Python."""
|
||||
"""
|
||||
A portable profiling and tracing toolkit for performance
|
||||
analysis of parallel programs written in Fortran, C, C++, UPC,
|
||||
Java, Python.
|
||||
"""
|
||||
homepage = "http://www.cs.uoregon.edu/research/tau"
|
||||
url = "http://www.cs.uoregon.edu/research/paracomp/tau/tauprofile/dist/tau-2.23.1.tar.gz"
|
||||
url = "https://www.cs.uoregon.edu/research/tau/tau_releases/tau-2.25.tar.gz"
|
||||
|
||||
version('2.25', '46cd48fa3f3c4ce0197017b3158a2b43')
|
||||
version('2.24.1', '6635ece6d1f08215b02f5d0b3c1e971b')
|
||||
version('2.24', '57ce33539c187f2e5ec68f0367c76db4')
|
||||
version('2.23.1', '6593b47ae1e7a838e632652f0426fe72')
|
||||
|
||||
# TODO : shmem variant missing
|
||||
variant('download', default=False, description='Downloads and builds various dependencies')
|
||||
variant('scorep', default=False, description='Activates SCOREP support')
|
||||
variant('openmp', default=True, description='Use OpenMP threads')
|
||||
variant('mpi', default=True, description='Specify use of TAU MPI wrapper library')
|
||||
variant('phase', default=True, description='Generate phase based profiles')
|
||||
variant('comm', default=True, description=' Generate profiles with MPI communicator info')
|
||||
|
||||
# TODO : Try to build direct OTF2 support? Some parts of the OTF support library in TAU are non-conformant,
|
||||
# TODO : and fail at compile-time. Further, SCOREP is compiled with OTF2 support.
|
||||
depends_on('pdt') # Required for TAU instrumentation
|
||||
depends_on('scorep', when='+scorep')
|
||||
depends_on('binutils', when='~download')
|
||||
depends_on('mpi', when='+mpi')
|
||||
|
||||
def set_compiler_options(self):
|
||||
|
||||
useropt = ["-O2", self.rpath_args]
|
||||
|
||||
##########
|
||||
# Selecting a compiler with TAU configure is quite tricky:
|
||||
# 1 - compilers are mapped to a given set of strings (and spack cc, cxx, etc. wrappers are not among them)
|
||||
# 2 - absolute paths are not allowed
|
||||
# 3 - the usual environment variables seems not to be checked ('CC', 'CXX' and 'FC')
|
||||
# 4 - if no -cc=<compiler> -cxx=<compiler> is passed tau is built with system compiler silently
|
||||
# (regardless of what %<compiler> is used in the spec)
|
||||
#
|
||||
# In the following we give TAU what he expects and put compilers into PATH
|
||||
compiler_path = os.path.dirname(self.compiler.cc)
|
||||
os.environ['PATH'] = ':'.join([compiler_path, os.environ['PATH']])
|
||||
compiler_options = ['-c++=%s' % self.compiler.cxx_names[0],
|
||||
'-cc=%s' % self.compiler.cc_names[0]]
|
||||
if self.compiler.fc:
|
||||
compiler_options.append('-fortran=%s' % self.compiler.fc_names[0])
|
||||
##########
|
||||
|
||||
# Construct the string of custom compiler flags and append it to compiler related options
|
||||
useropt = ' '.join(useropt)
|
||||
useropt = "-useropt=%s" % useropt
|
||||
compiler_options.append(useropt)
|
||||
return compiler_options
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# TAU isn't happy with directories that have '@' in the path. Sigh.
|
||||
change_sed_delimiter('@', ';', 'configure')
|
||||
change_sed_delimiter('@', ';', 'utils/FixMakefile')
|
||||
change_sed_delimiter('@', ';', 'utils/FixMakefile.sed.default')
|
||||
|
||||
# After that, it's relatively standard.
|
||||
configure("-prefix=%s" % prefix)
|
||||
# TAU configure, despite the name , seems to be a manually written script (nothing related to autotools).
|
||||
# As such it has a few #peculiarities# that make this build quite hackish.
|
||||
options = ["-prefix=%s" % prefix,
|
||||
"-iowrapper",
|
||||
"-pdt=%s" % spec['pdt'].prefix]
|
||||
# If download is active, download and build suggested dependencies
|
||||
if '+download' in spec:
|
||||
options.extend(['-bfd=download',
|
||||
'-unwind=download',
|
||||
'-asmdex=download'])
|
||||
else:
|
||||
options.extend(["-bfd=%s" % spec['binutils'].prefix])
|
||||
# TODO : unwind and asmdex are still missing
|
||||
|
||||
if '+scorep' in spec:
|
||||
options.append("-scorep=%s" % spec['scorep'].prefix)
|
||||
|
||||
if '+openmp' in spec:
|
||||
options.append('-openmp')
|
||||
|
||||
if '+mpi' in spec:
|
||||
options.append('-mpi')
|
||||
|
||||
if '+phase' in spec:
|
||||
options.append('-PROFILEPHASE')
|
||||
|
||||
if '+comm' in spec:
|
||||
options.append('-PROFILECOMMUNICATORS')
|
||||
|
||||
compiler_specific_options = self.set_compiler_options()
|
||||
options.extend(compiler_specific_options)
|
||||
configure(*options)
|
||||
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'):
|
||||
|
@ -5,7 +5,7 @@ class Tmuxinator(Package):
|
||||
homepage = "https://github.com/tmuxinator/tmuxinator"
|
||||
url = "https://github.com/tmuxinator/tmuxinator"
|
||||
|
||||
version('0.6.11',
|
||||
version('0.6.11',
|
||||
git='https://github.com/tmuxinator/tmuxinator',
|
||||
tag='v0.6.11')
|
||||
|
||||
@ -13,5 +13,4 @@ class Tmuxinator(Package):
|
||||
|
||||
def install(self, spec, prefix):
|
||||
gem('build', 'tmuxinator.gemspec')
|
||||
gem('install', 'tmuxinator-{}.gem'.format(self.version))
|
||||
|
||||
gem('install', 'tmuxinator-{0}.gem'.format(self.version))
|
||||
|
36
var/spack/packages/xerces-c/package.py
Normal file
36
var/spack/packages/xerces-c/package.py
Normal file
@ -0,0 +1,36 @@
|
||||
# FIXME:
|
||||
# This is a template package file for Spack. We've conveniently
|
||||
# put "FIXME" labels next to all the things you'll want to change.
|
||||
#
|
||||
# Once you've edited all the FIXME's, delete this whole message,
|
||||
# save this file, and test out your package like this:
|
||||
#
|
||||
# spack install xerces-c
|
||||
#
|
||||
# You can always get back here to change things with:
|
||||
#
|
||||
# spack edit xerces-c
|
||||
#
|
||||
# See the spack documentation for more information on building
|
||||
# packages.
|
||||
#
|
||||
from spack import *
|
||||
|
||||
class XercesC(Package):
|
||||
""" Xerces-C++ is a validating XML parser written in a portable subset of C++.
|
||||
Xerces-C++ makes it easy to give your application the ability to read and
|
||||
write XML data. A shared library is provided for parsing, generating,
|
||||
manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs.
|
||||
"""
|
||||
|
||||
homepage = "https://xerces.apache.org/xerces-c"
|
||||
url = "https://www.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.2.tar.gz"
|
||||
version('3.1.2', '9eb1048939e88d6a7232c67569b23985')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix,
|
||||
"--disable-network")
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
|
Loading…
Reference in New Issue
Block a user