Spack packages now PEP8 compliant.

This commit is contained in:
Todd Gamblin 2016-08-10 01:50:00 -07:00
parent 867121ca68
commit 240f1fd223
381 changed files with 2457 additions and 1617 deletions

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class A(Package): class A(Package):
"""Simple package with no dependencies""" """Simple package with no dependencies"""

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class B(Package): class B(Package):
"""Simple package with no dependencies""" """Simple package with no dependencies"""

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class C(Package): class C(Package):
"""Simple package with no dependencies""" """Simple package with no dependencies"""

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Callpath(Package): class Callpath(Package):
homepage = "https://github.com/tgamblin/callpath" homepage = "https://github.com/tgamblin/callpath"
url = "http://github.com/tgamblin/callpath-1.0.tar.gz" url = "http://github.com/tgamblin/callpath-1.0.tar.gz"

View file

@ -25,6 +25,7 @@
from spack import * from spack import *
import os import os
def check(condition, msg): def check(condition, msg):
"""Raise an install error if condition is False.""" """Raise an install error if condition is False."""
if not condition: if not condition:
@ -40,15 +41,14 @@ class CmakeClient(Package):
depends_on('cmake', type='build') depends_on('cmake', type='build')
def setup_environment(self, spack_env, run_env): def setup_environment(self, spack_env, run_env):
spack_cc # Ensure spack module-scope variable is avaiabl spack_cc # Ensure spack module-scope variable is avaiabl
check(from_cmake == "from_cmake", check(from_cmake == "from_cmake",
"setup_environment couldn't read global set by cmake.") "setup_environment couldn't read global set by cmake.")
check(self.spec['cmake'].link_arg == "test link arg", check(self.spec['cmake'].link_arg == "test link arg",
"link arg on dependency spec not readable from setup_environment.") "link arg on dependency spec not readable from "
"setup_environment.")
def setup_dependent_environment(self, spack_env, run_env, dspec): def setup_dependent_environment(self, spack_env, run_env, dspec):
spack_cc # Ensure spack module-scope variable is avaiable spack_cc # Ensure spack module-scope variable is avaiable
@ -56,8 +56,8 @@ def setup_dependent_environment(self, spack_env, run_env, dspec):
"setup_dependent_environment couldn't read global set by cmake.") "setup_dependent_environment couldn't read global set by cmake.")
check(self.spec['cmake'].link_arg == "test link arg", check(self.spec['cmake'].link_arg == "test link arg",
"link arg on dependency spec not readable from setup_dependent_environment.") "link arg on dependency spec not readable from "
"setup_dependent_environment.")
def setup_dependent_package(self, module, dspec): def setup_dependent_package(self, module, dspec):
spack_cc # Ensure spack module-scope variable is avaiable spack_cc # Ensure spack module-scope variable is avaiable
@ -65,9 +65,8 @@ def setup_dependent_package(self, module, dspec):
"setup_dependent_package couldn't read global set by cmake.") "setup_dependent_package couldn't read global set by cmake.")
check(self.spec['cmake'].link_arg == "test link arg", check(self.spec['cmake'].link_arg == "test link arg",
"link arg on dependency spec not readable from setup_dependent_package.") "link arg on dependency spec not readable from "
"setup_dependent_package.")
def install(self, spec, prefix): def install(self, spec, prefix):
# check that cmake is in the global scope. # check that cmake is in the global scope.

View file

@ -25,6 +25,7 @@
from spack import * from spack import *
import os import os
def check(condition, msg): def check(condition, msg):
"""Raise an install error if condition is False.""" """Raise an install error if condition is False."""
if not condition: if not condition:
@ -39,7 +40,6 @@ class Cmake(Package):
version('3.4.3', '4cb3ff35b2472aae70f542116d616e63', version('3.4.3', '4cb3ff35b2472aae70f542116d616e63',
url='https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz') url='https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz')
def setup_environment(self, spack_env, run_env): def setup_environment(self, spack_env, run_env):
spack_cc # Ensure spack module-scope variable is avaiable spack_cc # Ensure spack module-scope variable is avaiable
spack_env.set('for_install', 'for_install') spack_env.set('for_install', 'for_install')
@ -48,7 +48,6 @@ def setup_dependent_environment(self, spack_env, run_env, dspec):
spack_cc # Ensure spack module-scope variable is avaiable spack_cc # Ensure spack module-scope variable is avaiable
spack_env.set('from_cmake', 'from_cmake') spack_env.set('from_cmake', 'from_cmake')
def setup_dependent_package(self, module, dspec): def setup_dependent_package(self, module, dspec):
spack_cc # Ensure spack module-scope variable is avaiable spack_cc # Ensure spack module-scope variable is avaiable
@ -57,7 +56,6 @@ def setup_dependent_package(self, module, dspec):
self.spec.link_arg = "test link arg" self.spec.link_arg = "test link arg"
def install(self, spec, prefix): def install(self, spec, prefix):
mkdirp(prefix.bin) mkdirp(prefix.bin)

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class DirectMpich(Package): class DirectMpich(Package):
homepage = "http://www.example.com" homepage = "http://www.example.com"
url = "http://www.example.com/direct_mpich-1.0.tar.gz" url = "http://www.example.com/direct_mpich-1.0.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Dyninst(Package): class Dyninst(Package):
homepage = "https://paradyn.org" homepage = "https://paradyn.org"
url = "http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz" url = "http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class E(Package): class E(Package):
"""Simple package with no dependencies""" """Simple package with no dependencies"""

View file

@ -25,6 +25,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Externalmodule(Package): class Externalmodule(Package):
homepage = "http://somewhere.com" homepage = "http://somewhere.com"
url = "http://somewhere.com/module-1.0.tar.gz" url = "http://somewhere.com/module-1.0.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Externalprereq(Package): class Externalprereq(Package):
homepage = "http://somewhere.com" homepage = "http://somewhere.com"
url = "http://somewhere.com/prereq-1.0.tar.gz" url = "http://somewhere.com/prereq-1.0.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Externaltest(Package): class Externaltest(Package):
homepage = "http://somewhere.com" homepage = "http://somewhere.com"
url = "http://somewhere.com/test-1.0.tar.gz" url = "http://somewhere.com/test-1.0.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Externaltool(Package): class Externaltool(Package):
homepage = "http://somewhere.com" homepage = "http://somewhere.com"
url = "http://somewhere.com/tool-1.0.tar.gz" url = "http://somewhere.com/tool-1.0.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Externalvirtual(Package): class Externalvirtual(Package):
homepage = "http://somewhere.com" homepage = "http://somewhere.com"
url = "http://somewhere.com/stuff-1.0.tar.gz" url = "http://somewhere.com/stuff-1.0.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Fake(Package): class Fake(Package):
homepage = "http://www.fake-spack-example.org" homepage = "http://www.fake-spack-example.org"
url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz" url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class GitTest(Package): class GitTest(Package):
"""Mock package that uses git for fetching.""" """Mock package that uses git for fetching."""
homepage = "http://www.git-fetch-example.com" homepage = "http://www.git-fetch-example.com"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class HgTest(Package): class HgTest(Package):
"""Test package that does fetching with mercurial.""" """Test package that does fetching with mercurial."""
homepage = "http://www.hg-fetch-example.com" homepage = "http://www.hg-fetch-example.com"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Hypre(Package): class Hypre(Package):
"""Hypre is included here as an example of a package that depends on """Hypre is included here as an example of a package that depends on
both LAPACK and BLAS.""" both LAPACK and BLAS."""

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class IndirectMpich(Package): class IndirectMpich(Package):
"""Test case for a package that depends on MPI and one of its """Test case for a package that depends on MPI and one of its
dependencies requires a *particular version* of MPI. dependencies requires a *particular version* of MPI.

View file

@ -23,11 +23,11 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
from spack import * from spack import *
import os
# Only build certain parts of dwarf because the other ones break. # Only build certain parts of dwarf because the other ones break.
dwarf_dirs = ['libdwarf', 'dwarfdump2'] dwarf_dirs = ['libdwarf', 'dwarfdump2']
class Libdwarf(Package): class Libdwarf(Package):
homepage = "http://www.prevanders.net/dwarf.html" homepage = "http://www.prevanders.net/dwarf.html"
url = "http://www.prevanders.net/libdwarf-20130729.tar.gz" url = "http://www.prevanders.net/libdwarf-20130729.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Libelf(Package): class Libelf(Package):
homepage = "http://www.mr511.de/software/english.html" homepage = "http://www.mr511.de/software/english.html"
url = "http://www.mr511.de/software/libelf-0.8.13.tar.gz" url = "http://www.mr511.de/software/libelf-0.8.13.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Mpich(Package): class Mpich(Package):
homepage = "http://www.mpich.org" homepage = "http://www.mpich.org"
url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Mpich2(Package): class Mpich2(Package):
homepage = "http://www.mpich.org" homepage = "http://www.mpich.org"
url = "http://www.mpich.org/static/downloads/1.5/mpich2-1.5.tar.gz" url = "http://www.mpich.org/static/downloads/1.5/mpich2-1.5.tar.gz"

View file

@ -22,12 +22,10 @@
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
import imp
from llnl.util.filesystem import join_path
from spack.util.naming import mod_to_class
from spack import * from spack import *
import spack.architecture import spack.architecture
class Multimethod(Package): class Multimethod(Package):
"""This package is designed for use with Spack's multimethod test. """This package is designed for use with Spack's multimethod test.
It has a bunch of test cases for the @when decorator that the It has a bunch of test cases for the @when decorator that the
@ -52,7 +50,6 @@ def no_version_2(self):
def no_version_2(self): def no_version_2(self):
return 4 return 4
# #
# These functions overlap, so there is ambiguity, but we'll take # These functions overlap, so there is ambiguity, but we'll take
# the first one. # the first one.
@ -65,7 +62,6 @@ def version_overlap(self):
def version_overlap(self): def version_overlap(self):
return 2 return 2
# #
# More complicated case with cascading versions. # More complicated case with cascading versions.
# #
@ -84,7 +80,6 @@ def mpi_version(self):
def mpi_version(self): def mpi_version(self):
return 1 return 1
# #
# Use these to test whether the default method is called when no # Use these to test whether the default method is called when no
# match is found. This also tests whether we can switch methods # match is found. This also tests whether we can switch methods
@ -101,8 +96,6 @@ def has_a_default(self):
def has_a_default(self): def has_a_default(self):
return 'intel' return 'intel'
# #
# Make sure we can switch methods on different target # Make sure we can switch methods on different target
# #
@ -112,15 +105,16 @@ def has_a_default(self):
targets = targets[:-1] targets = targets[:-1]
for target in targets: for target in targets:
@when('target='+target.name) @when('target=' + target.name)
def different_by_target(self): def different_by_target(self):
if isinstance(self.spec.architecture.target,basestring): if isinstance(self.spec.architecture.target, basestring):
return self.spec.architecture.target return self.spec.architecture.target
else: else:
return self.spec.architecture.target.name return self.spec.architecture.target.name
# #
# Make sure we can switch methods on different dependencies # Make sure we can switch methods on different dependencies
# #
@when('^mpich') @when('^mpich')
def different_by_dep(self): def different_by_dep(self):
return 'mpich' return 'mpich'
@ -129,7 +123,6 @@ def different_by_dep(self):
def different_by_dep(self): def different_by_dep(self):
return 'zmpi' return 'zmpi'
# #
# Make sure we can switch on virtual dependencies # Make sure we can switch on virtual dependencies
# #

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class NetlibBlas(Package): class NetlibBlas(Package):
homepage = "http://www.netlib.org/lapack/" homepage = "http://www.netlib.org/lapack/"
url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz" url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class NetlibLapack(Package): class NetlibLapack(Package):
homepage = "http://www.netlib.org/lapack/" homepage = "http://www.netlib.org/lapack/"
url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz" url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class OpenblasWithLapack(Package): class OpenblasWithLapack(Package):
"""Dummy version of OpenBLAS that also provides LAPACK, for testing.""" """Dummy version of OpenBLAS that also provides LAPACK, for testing."""
homepage = "http://www.openblas.net" homepage = "http://www.openblas.net"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Openblas(Package): class Openblas(Package):
"""OpenBLAS: An optimized BLAS library""" """OpenBLAS: An optimized BLAS library"""
homepage = "http://www.openblas.net" homepage = "http://www.openblas.net"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class OptionalDepTest2(Package): class OptionalDepTest2(Package):
"""Depends on the optional-dep-test package""" """Depends on the optional-dep-test package"""

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class OptionalDepTest3(Package): class OptionalDepTest3(Package):
"""Depends on the optional-dep-test package""" """Depends on the optional-dep-test package"""

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class OptionalDepTest(Package): class OptionalDepTest(Package):
"""Description""" """Description"""

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Python(Package): class Python(Package):
"""Dummy Python package to demonstrate preferred versions.""" """Dummy Python package to demonstrate preferred versions."""
homepage = "http://www.python.org" homepage = "http://www.python.org"
@ -40,4 +41,3 @@ class Python(Package):
def install(self, spec, prefix): def install(self, spec, prefix):
pass pass

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class SvnTest(Package): class SvnTest(Package):
"""Mock package that uses svn for fetching.""" """Mock package that uses svn for fetching."""
url = "http://www.example.com/svn-test-1.0.tar.gz" url = "http://www.example.com/svn-test-1.0.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class TrivialInstallTestPackage(Package): class TrivialInstallTestPackage(Package):
"""This package is a stub with a trivial install method. It allows us """This package is a stub with a trivial install method. It allows us
to test the install and uninstall logic of spack.""" to test the install and uninstall logic of spack."""

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Zmpi(Package): class Zmpi(Package):
"""This is a fake MPI package used to demonstrate virtual package providers """This is a fake MPI package used to demonstrate virtual package providers
with dependencies.""" with dependencies."""

View file

@ -25,6 +25,7 @@
import os import os
from spack import * from spack import *
class Luajit(Package): class Luajit(Package):
"""Flast flexible JITed lua""" """Flast flexible JITed lua"""
homepage = "http://www.luajit.org" homepage = "http://www.luajit.org"

View file

@ -24,12 +24,14 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Samrai(Package): class Samrai(Package):
"""SAMRAI (Structured Adaptive Mesh Refinement Application Infrastructure) """SAMRAI (Structured Adaptive Mesh Refinement Application Infrastructure)
is an object-oriented C++ software library enables exploration of numerical, is an object-oriented C++ software library enables exploration of
algorithmic, parallel computing, and software issues associated with applying numerical, algorithmic, parallel computing, and software issues
structured adaptive mesh refinement (SAMR) technology in large-scale parallel associated with applying structured adaptive mesh refinement
application development. (SAMR) technology in large-scale parallel application development.
""" """
homepage = "https://computation.llnl.gov/project/SAMRAI/" homepage = "https://computation.llnl.gov/project/SAMRAI/"
url = "https://computation.llnl.gov/project/SAMRAI/download/SAMRAI-v3.9.1.tar.gz" url = "https://computation.llnl.gov/project/SAMRAI/download/SAMRAI-v3.9.1.tar.gz"

View file

@ -24,8 +24,10 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Activeharmony(Package): class Activeharmony(Package):
"""Active Harmony: a framework for auto-tuning (the automated search for values to improve the performance of a target application).""" """Active Harmony: a framework for auto-tuning (the automated search for
values to improve the performance of a target application)."""
homepage = "http://www.dyninst.org/harmony" homepage = "http://www.dyninst.org/harmony"
url = "http://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz" url = "http://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz"
@ -34,6 +36,3 @@ class Activeharmony(Package):
def install(self, spec, prefix): def install(self, spec, prefix):
make("CFLAGS=-O3") make("CFLAGS=-O3")
make("install", 'PREFIX=%s' % prefix) make("install", 'PREFIX=%s' % prefix)
from spack import *

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class AdeptUtils(Package): class AdeptUtils(Package):
"""Utility libraries for LLNL performance tools.""" """Utility libraries for LLNL performance tools."""

View file

@ -23,21 +23,24 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
from spack import * from spack import *
import sys
class AdolC(Package): class AdolC(Package):
"""A package for the automatic differentiation of first and higher derivatives of vector functions in C and C++ programs by operator overloading.""" """A package for the automatic differentiation of first and higher
derivatives of vector functions in C and C++ programs by operator
overloading."""
homepage = "https://projects.coin-or.org/ADOL-C" homepage = "https://projects.coin-or.org/ADOL-C"
url = "http://www.coin-or.org/download/source/ADOL-C/ADOL-C-2.6.1.tgz" url = "http://www.coin-or.org/download/source/ADOL-C/ADOL-C-2.6.1.tgz"
version('head', svn='https://projects.coin-or.org/svn/ADOL-C/trunk/') version('head', svn='https://projects.coin-or.org/svn/ADOL-C/trunk/')
version('2.6.1', '1032b28427d6e399af4610e78c0f087b') version('2.6.1', '1032b28427d6e399af4610e78c0f087b')
variant('doc', default=True, description='Install documentation') variant('doc', default=True, description='Install documentation')
variant('openmp', default=False, description='Enable OpenMP support') variant('openmp', default=False, description='Enable OpenMP support')
variant('sparse', default=False, description='Enable sparse drivers') variant('sparse', default=False, description='Enable sparse drivers')
variant('tests', default=True, description='Build all included examples as a test case') variant('tests', default=True,
description='Build all included examples as a test case')
patch('openmp_exam.patch') patch('openmp_exam.patch')
def install(self, spec, prefix): def install(self, spec, prefix):
@ -49,10 +52,14 @@ def install(self, spec, prefix):
if '+openmp' in spec: if '+openmp' in spec:
if spec.satisfies('%gcc'): if spec.satisfies('%gcc'):
make_args.extend([ make_args.extend([
'--with-openmp-flag=-fopenmp' # FIXME: Is this required? -I <path to omp.h> -L <LLVM OpenMP library path> # FIXME: Is this required? -I <path to omp.h> -L <LLVM
# OpenMP library path>
'--with-openmp-flag=-fopenmp'
]) ])
else: else:
raise InstallError("OpenMP flags for compilers other than GCC are not implemented.") raise InstallError(
"OpenMP flags for compilers other than GCC "
"are not implemented.")
if '+sparse' in spec: if '+sparse' in spec:
make_args.extend([ make_args.extend([
@ -63,7 +70,7 @@ def install(self, spec, prefix):
# whether Adol-C works as expected # whether Adol-C works as expected
if '+tests' in spec: if '+tests' in spec:
make_args.extend([ make_args.extend([
'--enable-docexa', # Documeted examples '--enable-docexa', # Documeted examples
'--enable-addexa' # Additional examples '--enable-addexa' # Additional examples
]) ])
if '+openmp' in spec: if '+openmp' in spec:
@ -74,31 +81,36 @@ def install(self, spec, prefix):
configure(*make_args) configure(*make_args)
make() make()
make("install") make("install")
# Copy the config.h file, as some packages might require it # Copy the config.h file, as some packages might require it
source_directory = self.stage.source_path source_directory = self.stage.source_path
config_h = join_path(source_directory,'ADOL-C','src','config.h') config_h = join_path(source_directory, 'ADOL-C', 'src', 'config.h')
install(config_h, join_path(prefix.include,'adolc')) install(config_h, join_path(prefix.include, 'adolc'))
# Install documentation to {prefix}/share # Install documentation to {prefix}/share
if '+doc' in spec: if '+doc' in spec:
install_tree(join_path('ADOL-C','doc'), install_tree(join_path('ADOL-C', 'doc'),
join_path(prefix.share,'doc')) join_path(prefix.share, 'doc'))
# Install examples to {prefix}/share # Install examples to {prefix}/share
if '+tests' in spec: if '+tests' in spec:
install_tree(join_path('ADOL-C','examples'), install_tree(join_path('ADOL-C', 'examples'),
join_path(prefix.share,'examples')) join_path(prefix.share, 'examples'))
# Run some examples that don't require user input # Run some examples that don't require user input
# TODO: Check that bundled examples produce the correct results # TODO: Check that bundled examples produce the correct results
with working_dir(join_path(source_directory,'ADOL-C','examples')): with working_dir(join_path(
source_directory, 'ADOL-C', 'examples')):
Executable('./tapeless_scalar')() Executable('./tapeless_scalar')()
Executable('./tapeless_vector')() Executable('./tapeless_vector')()
with working_dir(join_path(source_directory,'ADOL-C','examples','additional_examples')): with working_dir(join_path(
source_directory,
'ADOL-C', 'examples', 'additional_examples')):
Executable('./checkpointing/checkpointing')() Executable('./checkpointing/checkpointing')()
if '+openmp' in spec: if '+openmp' in spec:
with working_dir(join_path(source_directory,'ADOL-C','examples','additional_examples')): with working_dir(join_path(
source_directory,
'ADOL-C', 'examples', 'additional_examples')):
Executable('./checkpointing/checkpointing')() Executable('./checkpointing/checkpointing')()

View file

@ -24,8 +24,9 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Antlr(Package): class Antlr(Package):
homepage = "http://www.antlr.org" homepage = "http://www.antlr.org"
url = "https://github.com/antlr/antlr/tarball/v2.7.7" url = "https://github.com/antlr/antlr/tarball/v2.7.7"
@ -41,22 +42,23 @@ class Antlr(Package):
# CharScanner.hpp must include this line: #include <cstring> or else # CharScanner.hpp must include this line: #include <cstring> or else
# ncap2 will not compile (this tarball is already patched). # ncap2 will not compile (this tarball is already patched).
version('2.7.7', '914865e853fe8e1e61a9f23d045cb4ab', version('2.7.7', '914865e853fe8e1e61a9f23d045cb4ab',
# Patched version as described above # Patched version as described above
url='http://dust.ess.uci.edu/tmp/antlr-2.7.7.tar.gz') url='http://dust.ess.uci.edu/tmp/antlr-2.7.7.tar.gz')
# Unpatched version # Unpatched version
# url='http://dust.ess.uci.edu/nco/antlr-2.7.7.tar.gz') # url='http://dust.ess.uci.edu/nco/antlr-2.7.7.tar.gz')
variant('cxx', default=False, description='Enable ANTLR for C++') variant('cxx', default=False, description='Enable ANTLR for C++')
variant('java', default=False, description='Enable ANTLR for Java') variant('java', default=False, description='Enable ANTLR for Java')
variant('python', default=False, description='Enable ANTLR for Python') variant('python', default=False, description='Enable ANTLR for Python')
variant('csharp', default=False, description='Enable ANTLR for Csharp') variant('csharp', default=False, description='Enable ANTLR for Csharp')
def install(self, spec, prefix): def install(self, spec, prefix):
# Check for future enabling of variants # Check for future enabling of variants
for v in ('+java', '+python', '+csharp'): for v in ('+java', '+python', '+csharp'):
if v in spec: if v in spec:
raise Error('Illegal variant %s; for now, Spack only knows how to build antlr or antlr+cxx') raise Error(
('Illegal variant %s; ' % v) + 'for now, '
'Spack only knows how to build antlr or antlr+cxx')
config_args = [ config_args = [
'--prefix=%s' % prefix, '--prefix=%s' % prefix,

View file

@ -25,6 +25,7 @@
from spack import * from spack import *
from spack.util.environment import * from spack.util.environment import *
class Apex(Package): class Apex(Package):
homepage = "http://github.com/khuck/xpress-apex" homepage = "http://github.com/khuck/xpress-apex"
url = "http://github.com/khuck/xpress-apex/archive/v0.1.tar.gz" url = "http://github.com/khuck/xpress-apex/archive/v0.1.tar.gz"
@ -39,17 +40,17 @@ class Apex(Package):
def install(self, spec, prefix): def install(self, spec, prefix):
path=get_path("PATH") path = get_path("PATH")
path.remove(spec["binutils"].prefix.bin) path.remove(spec["binutils"].prefix.bin)
path_set("PATH", path) path_set("PATH", path)
with working_dir("build", create=True): with working_dir("build", create=True):
cmake('-DBOOST_ROOT=%s' % spec['boost'].prefix, cmake('-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DUSE_BFD=TRUE', '-DUSE_BFD=TRUE',
'-DBFD_ROOT=%s' % spec['binutils'].prefix, '-DBFD_ROOT=%s' % spec['binutils'].prefix,
'-DUSE_ACTIVEHARMONY=TRUE', '-DUSE_ACTIVEHARMONY=TRUE',
'-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix, '-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
'-DUSE_OMPT=TRUE', '-DUSE_OMPT=TRUE',
'-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix, '-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
'..', *std_cmake_args) '..', *std_cmake_args)
make() make()
make("install") make("install")

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class AprUtil(Package): class AprUtil(Package):
"""Apache Portable Runtime Utility""" """Apache Portable Runtime Utility"""
homepage = 'https://apr.apache.org/' homepage = 'https://apr.apache.org/'

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Apr(Package): class Apr(Package):
"""Apache portable runtime.""" """Apache portable runtime."""
homepage = 'https://apr.apache.org/' homepage = 'https://apr.apache.org/'

View file

@ -59,7 +59,8 @@ class ArpackNg(Package):
version('3.4.0', 'ae9ca13f2143a7ea280cb0e2fd4bfae4') version('3.4.0', 'ae9ca13f2143a7ea280cb0e2fd4bfae4')
version('3.3.0', 'ed3648a23f0a868a43ef44c97a21bad5') version('3.3.0', 'ed3648a23f0a868a43ef44c97a21bad5')
variant('shared', default=True, description='Enables the build of shared libraries') variant('shared', default=True,
description='Enables the build of shared libraries')
variant('mpi', default=False, description='Activates MPI support') variant('mpi', default=False, description='Activates MPI support')
# The function pdlamch10 does not set the return variable. # The function pdlamch10 does not set the return variable.

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Asciidoc(Package): class Asciidoc(Package):
""" A presentable text document format for writing articles, UNIX man """ A presentable text document format for writing articles, UNIX man
pages and other small to medium sized documents.""" pages and other small to medium sized documents."""

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Atop(Package): class Atop(Package):
"""Atop is an ASCII full-screen performance monitor for Linux""" """Atop is an ASCII full-screen performance monitor for Linux"""
homepage = "http://www.atoptool.nl/index.php" homepage = "http://www.atoptool.nl/index.php"
@ -37,4 +38,4 @@ def install(self, spec, prefix):
install("atop", join_path(prefix.bin, "atop")) install("atop", join_path(prefix.bin, "atop"))
mkdirp(join_path(prefix.man, "man1")) mkdirp(join_path(prefix.man, "man1"))
install(join_path("man", "atop.1"), install(join_path("man", "atop.1"),
join_path(prefix.man, "man1", "atop.1")) join_path(prefix.man, "man1", "atop.1"))

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Automaded(Package): class Automaded(Package):
"""AutomaDeD (Automata-based Debugging for Dissimilar parallel """AutomaDeD (Automata-based Debugging for Dissimilar parallel
tasks) is a tool for automatic diagnosis of performance and tasks) is a tool for automatic diagnosis of performance and

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Bash(Package): class Bash(Package):
"""The GNU Project's Bourne Again SHell.""" """The GNU Project's Bourne Again SHell."""

View file

@ -24,18 +24,22 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Bbcp(Package): class Bbcp(Package):
"""Securely and quickly copy data from source to target""" """Securely and quickly copy data from source to target"""
homepage = "http://www.slac.stanford.edu/~abh/bbcp/" homepage = "http://www.slac.stanford.edu/~abh/bbcp/"
version('git', git='http://www.slac.stanford.edu/~abh/bbcp/bbcp.git', branch="master") version('git', git='http://www.slac.stanford.edu/~abh/bbcp/bbcp.git',
branch="master")
def install(self, spec, prefix): def install(self, spec, prefix):
cd("src") cd("src")
make() make()
# BBCP wants to build the executable in a directory whose name depends on the system type # BBCP wants to build the executable in a directory whose name depends
# on the system type
makesname = Executable("../MakeSname") makesname = Executable("../MakeSname")
bbcp_executable_path = "../bin/%s/bbcp" % makesname(output=str).rstrip("\n") bbcp_executable_path = "../bin/%s/bbcp" % makesname(
output=str).rstrip("\n")
destination_path = "%s/bin/" % prefix destination_path = "%s/bin/" % prefix
mkdirp(destination_path) mkdirp(destination_path)
install(bbcp_executable_path, destination_path) install(bbcp_executable_path, destination_path)

View file

@ -34,7 +34,8 @@ class BdwGc(Package):
version('7.4.4', '96d18b0448a841c88d56e4ab3d180297') version('7.4.4', '96d18b0448a841c88d56e4ab3d180297')
variant('libatomic-ops', default=True, description='Use external libatomic-ops') variant('libatomic-ops', default=True,
description='Use external libatomic-ops')
depends_on('libatomic-ops', when='+libatomic-ops') depends_on('libatomic-ops', when='+libatomic-ops')

View file

@ -24,8 +24,10 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Bear(Package): class Bear(Package):
"""Bear is a tool that generates a compilation database for clang tooling from non-cmake build systems.""" """Bear is a tool that generates a compilation database for clang tooling
from non-cmake build systems."""
homepage = "https://github.com/rizsotto/Bear" homepage = "https://github.com/rizsotto/Bear"
url = "https://github.com/rizsotto/Bear/archive/2.0.4.tar.gz" url = "https://github.com/rizsotto/Bear/archive/2.0.4.tar.gz"

View file

@ -25,10 +25,11 @@
from spack import * from spack import *
from glob import glob from glob import glob
class Bib2xhtml(Package): class Bib2xhtml(Package):
"""bib2xhtml is a program that converts BibTeX files into HTML.""" """bib2xhtml is a program that converts BibTeX files into HTML."""
homepage = "http://www.spinellis.gr/sw/textproc/bib2xhtml/" homepage = "http://www.spinellis.gr/sw/textproc/bib2xhtml/"
url='http://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-15-gf506.tar.gz' url = 'http://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-15-gf506.tar.gz'
version('3.0-15-gf506', 'a26ba02fe0053bbbf2277bdf0acf8645') version('3.0-15-gf506', 'a26ba02fe0053bbbf2277bdf0acf8645')

View file

@ -24,9 +24,10 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Bison(Package): class Bison(Package):
"""Bison is a general-purpose parser generator that converts """Bison is a general-purpose parser generator that converts
an annotated context-free grammar into a deterministic LR or an annotated context-free grammar into a deterministic LR or
generalized LR (GLR) parser employing LALR(1) parser tables.""" generalized LR (GLR) parser employing LALR(1) parser tables."""
homepage = "http://www.gnu.org/software/bison/" homepage = "http://www.gnu.org/software/bison/"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Blitz(Package): class Blitz(Package):
"""N-dimensional arrays for C++""" """N-dimensional arrays for C++"""
homepage = "http://github.com/blitzpp/blitz" homepage = "http://github.com/blitzpp/blitz"

View file

@ -102,13 +102,18 @@ class Boost(Package):
for lib in all_libs: for lib in all_libs:
variant(lib, default=(lib not in default_noinstall_libs), variant(lib, default=(lib not in default_noinstall_libs),
description="Compile with {0} library".format(lib)) description="Compile with {0} library".format(lib))
variant('debug', default=False, description='Switch to the debug version of Boost') variant('debug', default=False,
variant('shared', default=True, description="Additionally build shared libraries") description='Switch to the debug version of Boost')
variant('multithreaded', default=True, description="Build multi-threaded versions of libraries") variant('shared', default=True,
variant('singlethreaded', default=True, description="Build single-threaded versions of libraries") description="Additionally build shared libraries")
variant('icu_support', default=False, description="Include ICU support (for regex/locale libraries)") variant('multithreaded', default=True,
description="Build multi-threaded versions of libraries")
variant('singlethreaded', default=True,
description="Build single-threaded versions of libraries")
variant('icu_support', default=False,
description="Include ICU support (for regex/locale libraries)")
variant('graph', default=False, description="Build the Boost Graph library") variant('graph', default=False, description="Build the Boost Graph library")
depends_on('icu', when='+icu_support') depends_on('icu', when='+icu_support')
@ -128,8 +133,7 @@ def url_for_version(self, version):
parts = [str(p) for p in Version(version)] parts = [str(p) for p in Version(version)]
dots = ".".join(parts) dots = ".".join(parts)
underscores = "_".join(parts) underscores = "_".join(parts)
return "http://downloads.sourceforge.net/project/boost" \ return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (dots, underscores)
"/boost/%s/boost_%s.tar.bz2" % (dots, underscores)
def determine_toolset(self, spec): def determine_toolset(self, spec):
if spec.satisfies("platform=darwin"): if spec.satisfies("platform=darwin"):
@ -158,7 +162,7 @@ def determine_bootstrap_options(self, spec, withLibs, options):
with open('user-config.jam', 'w') as f: with open('user-config.jam', 'w') as f:
compiler_wrapper = join_path(spack.build_env_path, 'c++') compiler_wrapper = join_path(spack.build_env_path, 'c++')
f.write("using {0} : : {1} ;\n".format(boostToolsetId, f.write("using {0} : : {1} ;\n".format(boostToolsetId,
compiler_wrapper)) compiler_wrapper))
if '+mpi' in spec: if '+mpi' in spec:
f.write('using mpi : %s ;\n' % f.write('using mpi : %s ;\n' %

View file

@ -24,12 +24,15 @@
############################################################################## ##############################################################################
from spack import * from spack import *
from glob import glob from glob import glob
class Bowtie2(Package): class Bowtie2(Package):
"""Description""" """Description"""
homepage = "bowtie-bio.sourceforge.net/bowtie2/index.shtml" homepage = "bowtie-bio.sourceforge.net/bowtie2/index.shtml"
version('2.2.5','51fa97a862d248d7ee660efc1147c75f', url = "http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.2.5/bowtie2-2.2.5-source.zip") version('2.2.5', '51fa97a862d248d7ee660efc1147c75f',
url="http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.2.5/bowtie2-2.2.5-source.zip")
patch('bowtie2-2.5.patch',when='@2.2.5', level=0) patch('bowtie2-2.5.patch', when='@2.2.5', level=0)
def install(self, spec, prefix): def install(self, spec, prefix):
make() make()
@ -45,4 +48,3 @@ def install(self, spec, prefix):
# install('bowtie2-inspect',prefix.bin) # install('bowtie2-inspect',prefix.bin)
# install('bowtie2-inspect-l',prefix.bin) # install('bowtie2-inspect-l',prefix.bin)
# install('bowtie2-inspect-s',prefix.bin) # install('bowtie2-inspect-s',prefix.bin)

View file

@ -24,12 +24,13 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Boxlib(Package): class Boxlib(Package):
"""BoxLib, a software framework for massively parallel """BoxLib, a software framework for massively parallel
block-structured adaptive mesh refinement (AMR) codes.""" block-structured adaptive mesh refinement (AMR) codes."""
homepage = "https://ccse.lbl.gov/BoxLib/" homepage = "https://ccse.lbl.gov/BoxLib/"
url = "https://ccse.lbl.gov/pub/Downloads/BoxLib.git"; url = "https://ccse.lbl.gov/pub/Downloads/BoxLib.git"
# TODO: figure out how best to version this. No tags in the repo! # TODO: figure out how best to version this. No tags in the repo!
version('master', git='https://ccse.lbl.gov/pub/Downloads/BoxLib.git') version('master', git='https://ccse.lbl.gov/pub/Downloads/BoxLib.git')
@ -47,4 +48,3 @@ def install(self, spec, prefix):
cmake('.', *args) cmake('.', *args)
make() make()
make("install") make("install")

View file

@ -27,6 +27,7 @@
from spack import * from spack import *
class CBlosc(Package): class CBlosc(Package):
"""Blosc, an extremely fast, multi-threaded, meta-compressor library""" """Blosc, an extremely fast, multi-threaded, meta-compressor library"""
homepage = "http://www.blosc.org" homepage = "http://www.blosc.org"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Caliper(Package): class Caliper(Package):
""" """
Caliper is a generic context annotation system. It gives programmers the Caliper is a generic context annotation system. It gives programmers the
@ -44,7 +45,7 @@ class Caliper(Package):
depends_on('cmake', type='build') depends_on('cmake', type='build')
def install(self, spec, prefix): def install(self, spec, prefix):
with working_dir('build', create=True): with working_dir('build', create=True):
cmake('..', *std_cmake_args) cmake('..', *std_cmake_args)
make() make()
make("install") make("install")

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Callpath(Package): class Callpath(Package):
"""Library for representing callpaths consistently in """Library for representing callpaths consistently in
distributed-memory performance tools.""" distributed-memory performance tools."""

View file

@ -35,11 +35,16 @@ class Cantera(Package):
version('2.2.1', '9d1919bdef39ddec54485fc8a741a3aa') version('2.2.1', '9d1919bdef39ddec54485fc8a741a3aa')
variant('lapack', default=True, description='Build with external BLAS/LAPACK libraries') variant('lapack', default=True,
variant('threadsafe', default=True, description='Build threadsafe, requires Boost') description='Build with external BLAS/LAPACK libraries')
variant('sundials', default=True, description='Build with external Sundials') variant('threadsafe', default=True,
variant('python', default=False, description='Build the Cantera Python module') description='Build threadsafe, requires Boost')
variant('matlab', default=False, description='Build the Cantera Matlab toolbox') variant('sundials', default=True,
description='Build with external Sundials')
variant('python', default=False,
description='Build the Cantera Python module')
variant('matlab', default=False,
description='Build the Cantera Matlab toolbox')
# Required dependencies # Required dependencies
depends_on('scons', type='build') depends_on('scons', type='build')

View file

@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
from spack import * from spack import *
import os
class Cblas(Package): class Cblas(Package):
"""The BLAS (Basic Linear Algebra Subprograms) are routines that """The BLAS (Basic Linear Algebra Subprograms) are routines that
@ -42,11 +42,11 @@ class Cblas(Package):
def patch(self): def patch(self):
mf = FileFilter('Makefile.in') mf = FileFilter('Makefile.in')
mf.filter('^BLLIB =.*', 'BLLIB = %s/libblas.a' % self.spec['blas'].prefix.lib) mf.filter('^BLLIB =.*', 'BLLIB = %s/libblas.a' %
self.spec['blas'].prefix.lib)
mf.filter('^CC =.*', 'CC = cc') mf.filter('^CC =.*', 'CC = cc')
mf.filter('^FC =.*', 'FC = f90') mf.filter('^FC =.*', 'FC = f90')
def install(self, spec, prefix): def install(self, spec, prefix):
make('all') make('all')
mkdirp(prefix.lib) mkdirp(prefix.lib)
@ -54,6 +54,5 @@ def install(self, spec, prefix):
# Rename the generated lib file to libcblas.a # Rename the generated lib file to libcblas.a
install('./lib/cblas_LINUX.a', '%s/libcblas.a' % prefix.lib) install('./lib/cblas_LINUX.a', '%s/libcblas.a' % prefix.lib)
install('./include/cblas.h','%s' % prefix.include) install('./include/cblas.h', '%s' % prefix.include)
install('./include/cblas_f77.h','%s' % prefix.include) install('./include/cblas_f77.h', '%s' % prefix.include)

View file

@ -22,7 +22,7 @@
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
################################################################################ ##########################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved. # Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
# #
# This program is free software; you can redistribute it and/or modify it under # This program is free software; you can redistribute it and/or modify it under
@ -38,20 +38,24 @@
# You should have received a copy of the GNU General Public License along with # 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 # this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA # Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################ ##########################################################################
from spack import * from spack import *
class CbtfArgonavis(Package): class CbtfArgonavis(Package):
"""CBTF Argo Navis project contains the CUDA collector and supporting """CBTF Argo Navis project contains the CUDA collector and supporting
libraries that was done as a result of a DOE SBIR grant.""" libraries that was done as a result of a DOE SBIR grant.
"""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
# Mirror access template example # Mirror access template example
#url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/cbtf-argonavis-1.6.tar.gz" # url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/cbtf-argonavis-1.6.tar.gz"
#version('1.6', '0fafa0008478405c2c2319450f174ed4') # version('1.6', '0fafa0008478405c2c2319450f174ed4')
version('1.6', branch='master', git='https://github.com/OpenSpeedShop/cbtf-argonavis.git') version('1.6', branch='master',
git='https://github.com/OpenSpeedShop/cbtf-argonavis.git')
depends_on("cmake@3.0.2", type='build') depends_on("cmake@3.0.2", type='build')
depends_on("boost@1.50.0:") depends_on("boost@1.50.0:")
@ -60,17 +64,19 @@ class CbtfArgonavis(Package):
depends_on("cbtf") depends_on("cbtf")
depends_on("cbtf-krell") depends_on("cbtf-krell")
depends_on("cuda@6.0.37") depends_on("cuda@6.0.37")
#depends_on("cuda") # depends_on("cuda")
parallel = False parallel = False
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions): def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
# Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings # Sets build type parameters into cmakeOptions the options that will
# enable the cbtf-krell built type settings
compile_flags="-O2 -g" compile_flags = "-O2 -g"
BuildTypeOptions = [] BuildTypeOptions = []
# Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
# stdcmakeargs
for word in cmakeOptions[:]: for word in cmakeOptions[:]:
if word.startswith('-DCMAKE_BUILD_TYPE'): if word.startswith('-DCMAKE_BUILD_TYPE'):
cmakeOptions.remove(word) cmakeOptions.remove(word)
@ -81,50 +87,54 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'): if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
cmakeOptions.remove(word) cmakeOptions.remove(word)
BuildTypeOptions.extend([ BuildTypeOptions.extend([
'-DCMAKE_VERBOSE_MAKEFILE=ON', '-DCMAKE_VERBOSE_MAKEFILE=ON',
'-DCMAKE_BUILD_TYPE=None', '-DCMAKE_BUILD_TYPE=None',
'-DCMAKE_CXX_FLAGS=%s' % compile_flags, '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
'-DCMAKE_C_FLAGS=%s' % compile_flags '-DCMAKE_C_FLAGS=%s' % compile_flags
]) ])
cmakeOptions.extend(BuildTypeOptions) cmakeOptions.extend(BuildTypeOptions)
def install(self, spec, prefix): def install(self, spec, prefix):
# Look for package installation information in the cbtf and cbtf-krell prefixes # Look for package installation information in the cbtf and cbtf-krell
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix) # prefixes
cmake_prefix_path = join_path(
spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
with working_dir('CUDA'): with working_dir('CUDA'):
with working_dir('build', create=True): with working_dir('build', create=True):
cmakeOptions = [] cmakeOptions = []
cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix, cmakeOptions.extend(
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path, ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCUDA_DIR=%s' % spec['cuda'].prefix, '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
'-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix, '-DCUDA_DIR=%s' % spec['cuda'].prefix,
'-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix, '-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
'-DCUPTI_DIR=%s' % join_path(spec['cuda'].prefix + '/extras/CUPTI'), '-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
'-DCUPTI_ROOT=%s' % join_path(spec['cuda'].prefix + '/extras/CUPTI'), '-DCUPTI_DIR=%s' % join_path(
'-DPAPI_ROOT=%s' % spec['papi'].prefix, spec['cuda'].prefix + '/extras/CUPTI'),
'-DCBTF_DIR=%s' % spec['cbtf'].prefix, '-DCUPTI_ROOT=%s' % join_path(
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, spec['cuda'].prefix + '/extras/CUPTI'),
'-DBOOST_ROOT=%s' % spec['boost'].prefix, '-DPAPI_ROOT=%s' % spec['papi'].prefix,
'-DBoost_DIR=%s' % spec['boost'].prefix, '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib, '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix, '-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DBoost_NO_SYSTEM_PATHS=ON' '-DBoost_DIR=%s' % spec['boost'].prefix,
]) '-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DBoost_NO_SYSTEM_PATHS=ON'])
# Add in the standard cmake arguments # Add in the standard cmake arguments
cmakeOptions.extend(std_cmake_args) cmakeOptions.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build type, etc to be # Adjust the standard cmake arguments to what we want the build
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions) # type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
# Invoke cmake
cmake('..', *cmakeOptions)
make("clean") # Invoke cmake
make() cmake('..', *cmakeOptions)
make("install")
make("clean")
make()
make("install")

View file

@ -22,7 +22,7 @@
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
################################################################################ ##########################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved. # Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
# #
# This program is free software; you can redistribute it and/or modify it under # This program is free software; you can redistribute it and/or modify it under
@ -38,30 +38,40 @@
# You should have received a copy of the GNU General Public License along with # 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 # this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA # Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################ ##########################################################################
from spack import * from spack import *
class CbtfKrell(Package): class CbtfKrell(Package):
"""CBTF Krell project contains the Krell Institute contributions to the CBTF project. """CBTF Krell project contains the Krell Institute contributions to the
These contributions include many performance data collectors and support CBTF project. These contributions include many performance data
libraries as well as some example tools that drive the data collection at collectors and support libraries as well as some example tools
HPC levels of scale.""" that drive the data collection at HPC levels of scale.
"""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
# optional mirror access template # optional mirror access template
#url = "file:/home/jeg/cbtf-krell-1.6.tar.gz" # url = "file:/home/jeg/cbtf-krell-1.6.tar.gz"
#version('1.6', 'edeb61cd488f16e7b124f77db9ce762d') # version('1.6', 'edeb61cd488f16e7b124f77db9ce762d')
version('1.6', branch='master', git='https://github.com/OpenSpeedShop/cbtf-krell.git') version('1.6', branch='master',
git='https://github.com/OpenSpeedShop/cbtf-krell.git')
# MPI variants # MPI variants
variant('openmpi', default=False, description="Build mpi experiment collector for openmpi MPI when this variant is enabled.") variant('openmpi', default=False,
variant('mpt', default=False, description="Build mpi experiment collector for SGI MPT MPI when this variant is enabled.") description="Build mpi experiment collector for openmpi MPI..")
variant('mvapich2', default=False, description="Build mpi experiment collector for mvapich2 MPI when this variant is enabled.") variant('mpt', default=False,
variant('mvapich', default=False, description="Build mpi experiment collector for mvapich MPI when this variant is enabled.") description="Build mpi experiment collector for SGI MPT MPI.")
variant('mpich2', default=False, description="Build mpi experiment collector for mpich2 MPI when this variant is enabled.") variant('mvapich2', default=False,
variant('mpich', default=False, description="Build mpi experiment collector for mpich MPI when this variant is enabled.") description="Build mpi experiment collector for mvapich2 MPI.")
variant('mvapich', default=False,
description="Build mpi experiment collector for mvapich MPI.")
variant('mpich2', default=False,
description="Build mpi experiment collector for mpich2 MPI.")
variant('mpich', default=False,
description="Build mpi experiment collector for mpich MPI.")
# Dependencies for cbtf-krell # Dependencies for cbtf-krell
depends_on("cmake@3.0.2", type='build') depends_on("cmake@3.0.2", type='build')
@ -83,7 +93,8 @@ class CbtfKrell(Package):
depends_on("papi") depends_on("papi")
# MPI Installations # MPI Installations
# These have not worked either for build or execution, commenting out for now # These have not worked either for build or execution, commenting out for
# now
depends_on("openmpi", when='+openmpi') depends_on("openmpi", when='+openmpi')
depends_on("mpich", when='+mpich') depends_on("mpich", when='+mpich')
depends_on("mpich2", when='+mpich2') depends_on("mpich2", when='+mpich2')
@ -94,11 +105,13 @@ class CbtfKrell(Package):
parallel = False parallel = False
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions): def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
# Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings # Sets build type parameters into cmakeOptions the options that will
# enable the cbtf-krell built type settings
compile_flags="-O2 -g"
compile_flags = "-O2 -g"
BuildTypeOptions = [] BuildTypeOptions = []
# Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
# stdcmakeargs
for word in cmakeOptions[:]: for word in cmakeOptions[:]:
if word.startswith('-DCMAKE_BUILD_TYPE'): if word.startswith('-DCMAKE_BUILD_TYPE'):
cmakeOptions.remove(word) cmakeOptions.remove(word)
@ -109,75 +122,76 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'): if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
cmakeOptions.remove(word) cmakeOptions.remove(word)
BuildTypeOptions.extend([ BuildTypeOptions.extend([
'-DCMAKE_VERBOSE_MAKEFILE=ON', '-DCMAKE_VERBOSE_MAKEFILE=ON',
'-DCMAKE_BUILD_TYPE=None', '-DCMAKE_BUILD_TYPE=None',
'-DCMAKE_CXX_FLAGS=%s' % compile_flags, '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
'-DCMAKE_C_FLAGS=%s' % compile_flags '-DCMAKE_C_FLAGS=%s' % compile_flags
]) ])
cmakeOptions.extend(BuildTypeOptions) cmakeOptions.extend(BuildTypeOptions)
def set_mpi_cmakeOptions(self, spec, cmakeOptions): def set_mpi_cmakeOptions(self, spec, cmakeOptions):
# Appends to cmakeOptions the options that will enable the appropriate MPI implementations # Appends to cmakeOptions the options that will enable the appropriate
# MPI implementations
MPIOptions = [] MPIOptions = []
# openmpi # openmpi
if '+openmpi' in spec: if '+openmpi' in spec:
MPIOptions.extend([ MPIOptions.extend([
'-DOPENMPI_DIR=%s' % spec['openmpi'].prefix '-DOPENMPI_DIR=%s' % spec['openmpi'].prefix
]) ])
# mpich # mpich
if '+mpich' in spec: if '+mpich' in spec:
MPIOptions.extend([ MPIOptions.extend([
'-DMPICH_DIR=%s' % spec['mpich'].prefix '-DMPICH_DIR=%s' % spec['mpich'].prefix
]) ])
# mpich2 # mpich2
if '+mpich2' in spec: if '+mpich2' in spec:
MPIOptions.extend([ MPIOptions.extend([
'-DMPICH2_DIR=%s' % spec['mpich2'].prefix '-DMPICH2_DIR=%s' % spec['mpich2'].prefix
]) ])
# mvapich # mvapich
if '+mvapich' in spec: if '+mvapich' in spec:
MPIOptions.extend([ MPIOptions.extend([
'-DMVAPICH_DIR=%s' % spec['mvapich'].prefix '-DMVAPICH_DIR=%s' % spec['mvapich'].prefix
]) ])
# mvapich2 # mvapich2
if '+mvapich2' in spec: if '+mvapich2' in spec:
MPIOptions.extend([ MPIOptions.extend([
'-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix '-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix
]) ])
# mpt # mpt
if '+mpt' in spec: if '+mpt' in spec:
MPIOptions.extend([ MPIOptions.extend([
'-DMPT_DIR=%s' % spec['mpt'].prefix '-DMPT_DIR=%s' % spec['mpt'].prefix
]) ])
cmakeOptions.extend(MPIOptions) cmakeOptions.extend(MPIOptions)
def install(self, spec, prefix): def install(self, spec, prefix):
# Add in paths for finding package config files that tell us where to find these packages # Add in paths for finding package config files that tell us
#cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['dyninst'].prefix) # where to find these packages
#'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path # cmake_prefix_path = \
# join_path(spec['cbtf'].prefix) + ':' + \
# join_path(spec['dyninst'].prefix)
# '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path
# Build cbtf-krell with cmake # Build cbtf-krell with cmake
with working_dir('build_cbtf_krell', create=True): with working_dir('build_cbtf_krell', create=True):
cmakeOptions = [] cmakeOptions = []
cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix, cmakeOptions.extend(
'-DCBTF_DIR=%s' % spec['cbtf'].prefix, ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix, '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix, '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix, '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
'-DPAPI_DIR=%s' % spec['papi'].prefix, '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
'-DBOOST_DIR=%s' % spec['boost'].prefix, '-DPAPI_DIR=%s' % spec['papi'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix, '-DBOOST_DIR=%s' % spec['boost'].prefix,
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix, '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
]) '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix])
# Add any MPI implementations coming from variant settings # Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmakeOptions) self.set_mpi_cmakeOptions(spec, cmakeOptions)
@ -185,9 +199,10 @@ def install(self, spec, prefix):
# Add in the standard cmake arguments # Add in the standard cmake arguments
cmakeOptions.extend(std_cmake_args) cmakeOptions.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build type, etc to be # Adjust the standard cmake arguments to what we want the build
# type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions) self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
# Invoke cmake # Invoke cmake
cmake('..', *cmakeOptions) cmake('..', *cmakeOptions)
@ -195,56 +210,54 @@ def install(self, spec, prefix):
make() make()
make("install") make("install")
# if '+cray' in spec:
# if 'cray' in self.spec.architecture:
#if '+cray' in spec:
#if 'cray' in self.spec.architecture:
# if '+runtime' in spec: # if '+runtime' in spec:
# with working_dir('build_cbtf_cray_runtime', create=True): # with working_dir('build_cbtf_cray_runtime', create=True):
# python_vers='%d.%d' % spec['python'].version[:2] # python_vers='%d.%d' % spec['python'].version[:2]
# cmake .. \ # cmake .. \
# -DCMAKE_BUILD_TYPE=Debug \ # -DCMAKE_BUILD_TYPE=Debug \
# -DTARGET_OS="cray" \ # -DTARGET_OS="cray" \
# -DRUNTIME_ONLY="true" \ # -DRUNTIME_ONLY="true" \
# -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \ # -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
# -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \ # -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
# -DCBTF_DIR=${CBTF_ROOT} \ # -DCBTF_DIR=${CBTF_ROOT} \
# -DBOOST_ROOT=${BOOST_INSTALL_PREFIX} \ # -DBOOST_ROOT=${BOOST_INSTALL_PREFIX} \
# -DXERCESC_DIR=${XERCESC_INSTALL_PREFIX} \ # -DXERCESC_DIR=${XERCESC_INSTALL_PREFIX} \
# -DBINUTILS_DIR=${KRELL_ROOT} \ # -DBINUTILS_DIR=${KRELL_ROOT} \
# -DLIBMONITOR_DIR=${KRELL_ROOT_COMPUTE} \ # -DLIBMONITOR_DIR=${KRELL_ROOT_COMPUTE} \
# -DLIBUNWIND_DIR=${KRELL_ROOT_COMPUTE} \ # -DLIBUNWIND_DIR=${KRELL_ROOT_COMPUTE} \
# -DPAPI_DIR=${PAPI_ROOT} \ # -DPAPI_DIR=${PAPI_ROOT} \
# -DDYNINST_DIR=${DYNINST_CN_ROOT} \ # -DDYNINST_DIR=${DYNINST_CN_ROOT} \
# -DMRNET_DIR=${MRNET_INSTALL_PREFIX} \ # -DMRNET_DIR=${MRNET_INSTALL_PREFIX} \
# -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48 # -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
# else: # else:
# with working_dir('build_cbtf_cray_frontend', create=True): # with working_dir('build_cbtf_cray_frontend', create=True):
# python_vers='%d.%d' % spec['python'].version[:2] # python_vers='%d.%d' % spec['python'].version[:2]
# cmake .. \ # cmake .. \
# -DCMAKE_BUILD_TYPE=Debug \ # -DCMAKE_BUILD_TYPE=Debug \
# -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \ # -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
# -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \ # -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
# -DCBTF_DIR=${CBTF_ROOT} \ # -DCBTF_DIR=${CBTF_ROOT} \
# -DRUNTIME_TARGET_OS="cray" \ # -DRUNTIME_TARGET_OS="cray" \
# -DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_RUNTIME_ROOT} \ # -DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_RUNTIME_ROOT} \
# -DCBTF_CN_RUNTIME_DIR=${CBTF_CN_RUNTIME_ROOT} \ # -DCBTF_CN_RUNTIME_DIR=${CBTF_CN_RUNTIME_ROOT} \
# -DLIBMONITOR_CN_RUNTIME_DIR=${LIBMONITOR_CN_ROOT} \ # -DLIBMONITOR_CN_RUNTIME_DIR=${LIBMONITOR_CN_ROOT} \
# -DLIBUNWIND_CN_RUNTIME_DIR=${LIBUNWIND_CN_ROOT} \ # -DLIBUNWIND_CN_RUNTIME_DIR=${LIBUNWIND_CN_ROOT} \
# -DPAPI_CN_RUNTIME_DIR=${PAPI_CN_ROOT} \ # -DPAPI_CN_RUNTIME_DIR=${PAPI_CN_ROOT} \
# -DXERCESC_CN_RUNTIME_DIR=/${XERCESC_CN_ROOT} \ # -DXERCESC_CN_RUNTIME_DIR=/${XERCESC_CN_ROOT} \
# -DMRNET_CN_RUNTIME_DIR=${MRNET_CN_ROOT} \ # -DMRNET_CN_RUNTIME_DIR=${MRNET_CN_ROOT} \
# -DBOOST_CN_RUNTIME_DIR=${BOOST_CN_ROOT} \ # -DBOOST_CN_RUNTIME_DIR=${BOOST_CN_ROOT} \
# -DDYNINST_CN_RUNTIME_DIR=${DYNINST_CN_ROOT} \ # -DDYNINST_CN_RUNTIME_DIR=${DYNINST_CN_ROOT} \
# -DBOOST_ROOT=/${KRELL_ROOT} \ # -DBOOST_ROOT=/${KRELL_ROOT} \
# -DXERCESC_DIR=/${KRELL_ROOT} \ # -DXERCESC_DIR=/${KRELL_ROOT} \
# -DBINUTILS_DIR=/${KRELL_ROOT} \ # -DBINUTILS_DIR=/${KRELL_ROOT} \
# -DLIBMONITOR_DIR=${KRELL_ROOT} \ # -DLIBMONITOR_DIR=${KRELL_ROOT} \
# -DLIBUNWIND_DIR=${KRELL_ROOT} \ # -DLIBUNWIND_DIR=${KRELL_ROOT} \
# -DPAPI_DIR=${PAPI_ROOT} \ # -DPAPI_DIR=${PAPI_ROOT} \
# -DDYNINST_DIR=${KRELL_ROOT} \ # -DDYNINST_DIR=${KRELL_ROOT} \
# -DMRNET_DIR=${KRELL_ROOT} \ # -DMRNET_DIR=${KRELL_ROOT} \
# -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48 # -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
# fi # fi
# #
# make("clean") # make("clean")
@ -264,22 +277,22 @@ def install(self, spec, prefix):
# fi # fi
# #
# else: # else:
# # Build cbtf-krell with cmake # # Build cbtf-krell with cmake
# with working_dir('build_cbtf_krell', create=True): # with working_dir('build_cbtf_krell', create=True):
# cmake('..', # cmake('..',
# '-DCMAKE_BUILD_TYPE=Debug', # '-DCMAKE_BUILD_TYPE=Debug',
# '-DCMAKE_INSTALL_PREFIX=%s' % prefix, # '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
# '-DCBTF_DIR=%s' % spec['cbtf'].prefix, # '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
# '-DBINUTILS_DIR=%s' % spec['binutils'].prefix, # '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
# '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix, # '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
# '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix, # '-DLIBUNWIND_DIR=%s'% spec['libunwind'].prefix,
# '-DPAPI_DIR=%s' % spec['papi'].prefix, # '-DPAPI_DIR=%s' % spec['papi'].prefix,
# '-DBOOST_DIR=%s' % spec['boost'].prefix, # '-DBOOST_DIR=%s' % spec['boost'].prefix,
# '-DMRNET_DIR=%s' % spec['mrnet'].prefix, # '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
# '-DDYNINST_DIR=%s' % spec['dyninst'].prefix, # '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
# '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix, # '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
# '-DOPENMPI_DIR=%s' % openmpi_prefix_path, # '-DOPENMPI_DIR=%s' % openmpi_prefix_path,
# '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path, # '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
# *std_cmake_args) # *std_cmake_args)
# #
# make("clean") # make("clean")

View file

@ -22,7 +22,7 @@
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
################################################################################ ##########################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved. # Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
# #
# This program is free software; you can redistribute it and/or modify it under # This program is free software; you can redistribute it and/or modify it under
@ -38,20 +38,22 @@
# You should have received a copy of the GNU General Public License along with # 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 # this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA # Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################ ##########################################################################
from spack import * from spack import *
class CbtfLanl(Package): class CbtfLanl(Package):
"""CBTF LANL project contains a memory tool and data center type system command monitoring tool.""" """CBTF LANL project contains a memory tool and data center type system
command monitoring tool."""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
# Mirror access template example # Mirror access template example
#url = "file:/g/g24/jeg/cbtf-lanl-1.5.tar.gz" # url = "file:/g/g24/jeg/cbtf-lanl-1.5.tar.gz"
#version('1.5', 'c3f78f967b0a42c6734ce4be0e602426') # version('1.5', 'c3f78f967b0a42c6734ce4be0e602426')
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl') version('1.6', branch='master',
git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl')
depends_on("cmake@3.0.2", type='build') depends_on("cmake@3.0.2", type='build')
# Dependencies for cbtf-krell # Dependencies for cbtf-krell
@ -63,11 +65,13 @@ class CbtfLanl(Package):
parallel = False parallel = False
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions): def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
# Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings # Sets build type parameters into cmakeOptions the options that will
# enable the cbtf-krell built type settings
compile_flags="-O2 -g" compile_flags = "-O2 -g"
BuildTypeOptions = [] BuildTypeOptions = []
# Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
# stdcmakeargs
for word in cmakeOptions[:]: for word in cmakeOptions[:]:
if word.startswith('-DCMAKE_BUILD_TYPE'): if word.startswith('-DCMAKE_BUILD_TYPE'):
cmakeOptions.remove(word) cmakeOptions.remove(word)
@ -78,40 +82,43 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'): if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
cmakeOptions.remove(word) cmakeOptions.remove(word)
BuildTypeOptions.extend([ BuildTypeOptions.extend([
'-DCMAKE_VERBOSE_MAKEFILE=ON', '-DCMAKE_VERBOSE_MAKEFILE=ON',
'-DCMAKE_BUILD_TYPE=None', '-DCMAKE_BUILD_TYPE=None',
'-DCMAKE_CXX_FLAGS=%s' % compile_flags, '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
'-DCMAKE_C_FLAGS=%s' % compile_flags '-DCMAKE_C_FLAGS=%s' % compile_flags
]) ])
cmakeOptions.extend(BuildTypeOptions) cmakeOptions.extend(BuildTypeOptions)
def install(self, spec, prefix): def install(self, spec, prefix):
# Add in paths for finding package config files that tell us where to find these packages # Add in paths for finding package config files that tell us where to
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix) # find these packages
cmake_prefix_path = join_path(
spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
with working_dir('build', create=True): with working_dir('build', create=True):
cmakeOptions = [] cmakeOptions = []
cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix, cmakeOptions.extend(
'-DCBTF_DIR=%s' % spec['cbtf'].prefix, ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix, '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix, '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path, '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DCMAKE_MODULE_PATH=%s' % join_path(prefix.share,'KrellInstitute','cmake') '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
]) '-DCMAKE_MODULE_PATH=%s' % join_path(
prefix.share, 'KrellInstitute', 'cmake')])
# Add in the standard cmake arguments # Add in the standard cmake arguments
cmakeOptions.extend(std_cmake_args) cmakeOptions.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build type, etc to be # Adjust the standard cmake arguments to what we want the build
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions) # type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
# Invoke cmake
cmake('..', *cmakeOptions)
make("clean") # Invoke cmake
make() cmake('..', *cmakeOptions)
make("install")
make("clean")
make()
make("install")

View file

@ -22,7 +22,7 @@
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
################################################################################ ##########################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved. # Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
# #
# This program is free software; you can redistribute it and/or modify it under # This program is free software; you can redistribute it and/or modify it under
@ -38,24 +38,30 @@
# You should have received a copy of the GNU General Public License along with # 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 # this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA # Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################ ##########################################################################
from spack import * from spack import *
class Cbtf(Package): class Cbtf(Package):
"""CBTF project contains the base code for CBTF that supports creating components, """CBTF project contains the base code for CBTF that supports creating
component networks and the support to connect these components and component components, component networks and the support to connect these
networks into sequential and distributed network tools.""" components and component networks into sequential and distributed
network tools.
"""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home" homepage = "http://sourceforge.net/p/cbtf/wiki/Home"
# Mirror access template example # Mirror access template example
#url = "file:/home/jeg/cbtf-1.6.tar.gz" # url = "file:/home/jeg/cbtf-1.6.tar.gz"
#version('1.6', 'c1ef4e5aa4e470dffb042abdba0b9987') # version('1.6', 'c1ef4e5aa4e470dffb042abdba0b9987')
# Use when the git repository is available # Use when the git repository is available
version('1.6', branch='master', git='https://github.com/OpenSpeedShop/cbtf.git') version('1.6', branch='master',
git='https://github.com/OpenSpeedShop/cbtf.git')
variant('runtime', default=False, description="build only the runtime libraries and collectors.") variant('runtime', default=False,
description="build only the runtime libraries and collectors.")
depends_on("cmake@3.0.2", type='build') depends_on("cmake@3.0.2", type='build')
depends_on("boost@1.50.0:") depends_on("boost@1.50.0:")
@ -67,11 +73,13 @@ class Cbtf(Package):
parallel = False parallel = False
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions): def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
# Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings # Sets build type parameters into cmakeOptions the options that will
# enable the cbtf-krell built type settings
compile_flags="-O2 -g"
compile_flags = "-O2 -g"
BuildTypeOptions = [] BuildTypeOptions = []
# Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
# stdcmakeargs
for word in cmakeOptions[:]: for word in cmakeOptions[:]:
if word.startswith('-DCMAKE_BUILD_TYPE'): if word.startswith('-DCMAKE_BUILD_TYPE'):
cmakeOptions.remove(word) cmakeOptions.remove(word)
@ -80,61 +88,66 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
if word.startswith('-DCMAKE_C_FLAGS'): if word.startswith('-DCMAKE_C_FLAGS'):
cmakeOptions.remove(word) cmakeOptions.remove(word)
BuildTypeOptions.extend([ BuildTypeOptions.extend([
'-DCMAKE_BUILD_TYPE=None', '-DCMAKE_BUILD_TYPE=None',
'-DCMAKE_CXX_FLAGS=%s' % compile_flags, '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
'-DCMAKE_C_FLAGS=%s' % compile_flags '-DCMAKE_C_FLAGS=%s' % compile_flags
]) ])
cmakeOptions.extend(BuildTypeOptions) cmakeOptions.extend(BuildTypeOptions)
def install(self, spec, prefix): def install(self, spec, prefix):
with working_dir('build', create=True): with working_dir('build', create=True):
# Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching # Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching
# in system paths (or other locations outside of BOOST_ROOT # in system paths (or other locations outside of BOOST_ROOT
# or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT. # or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
# Defaults to OFF. # Defaults to OFF.
if '+runtime' in spec: if '+runtime' in spec:
# Install message tag include file for use in Intel MIC cbtf-krell build # Install message tag include file for use in Intel MIC
# FIXME # cbtf-krell build
cmakeOptions = [] # FIXME
cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix, cmakeOptions = []
'-DBoost_NO_SYSTEM_PATHS=TRUE', cmakeOptions.extend(
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix, ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DBOOST_ROOT=%s' % spec['boost'].prefix, '-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DMRNET_DIR=%s' % spec['mrnet'].prefix, '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DCMAKE_MODULE_PATH=%s' % join_path(prefix.share,'KrellInstitute','cmake') '-DBOOST_ROOT=%s' % spec['boost'].prefix,
]) '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DCMAKE_MODULE_PATH=%s' % join_path(
prefix.share, 'KrellInstitute', 'cmake')])
# Add in the standard cmake arguments # Add in the standard cmake arguments
cmakeOptions.extend(std_cmake_args) cmakeOptions.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build type, etc to be # Adjust the standard cmake arguments to what we want the build
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions) # type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
# Invoke cmake
cmake('..', *cmakeOptions)
else: # Invoke cmake
cmakeOptions = [] cmake('..', *cmakeOptions)
cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-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')
])
# Add in the standard cmake arguments else:
cmakeOptions.extend(std_cmake_args) cmakeOptions = []
cmakeOptions.extend(
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-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')])
# Adjust the standard cmake arguments to what we want the build type, etc to be # Add in the standard cmake arguments
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions) cmakeOptions.extend(std_cmake_args)
# Invoke cmake
cmake('..', *cmakeOptions)
make("clean") # Adjust the standard cmake arguments to what we want the build
make() # type, etc to be
make("install") self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
# Invoke cmake
cmake('..', *cmakeOptions)
make("clean")
make()
make("install")

View file

@ -26,8 +26,16 @@
import os import os
import shutil import shutil
class Cereal(Package): class Cereal(Package):
"""cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal was designed to be fast, light-weight, and easy to extend - it has no external dependencies and can be easily bundled with other code or used standalone.""" """cereal is a header-only C++11 serialization library. cereal takes
arbitrary data types and reversibly turns them into different
representations, such as compact binary encodings, XML, or
JSON. cereal was designed to be fast, light-weight, and easy to
extend - it has no external dependencies and can be easily bundled
with other code or used standalone.
"""
homepage = "http://uscilab.github.io/cereal/" homepage = "http://uscilab.github.io/cereal/"
url = "https://github.com/USCiLab/cereal/archive/v1.1.2.tar.gz" url = "https://github.com/USCiLab/cereal/archive/v1.1.2.tar.gz"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Cfitsio(Package): class Cfitsio(Package):
""" """
CFITSIO is a library of C and Fortran subroutines for reading and writing CFITSIO is a library of C and Fortran subroutines for reading and writing

View file

@ -27,10 +27,12 @@
class Cgal(Package): class Cgal(Package):
""" """CGAL is a software project that provides easy access to efficient and
CGAL is a software project that provides easy access to efficient and reliable geometric algorithms in the form of reliable geometric algorithms in the form of a C++ library. CGAL
a C++ library. CGAL is used in various areas needing geometric computation, such as geographic information systems, is used in various areas needing geometric computation, such as
computer aided design, molecular biology, medical imaging, computer graphics, and robotics. geographic information systems, computer aided design, molecular
biology, medical imaging, computer graphics, and robotics.
""" """
homepage = 'http://www.cgal.org/' homepage = 'http://www.cgal.org/'
url = 'https://github.com/CGAL/cgal/archive/releases/CGAL-4.7.tar.gz' url = 'https://github.com/CGAL/cgal/archive/releases/CGAL-4.7.tar.gz'
@ -38,9 +40,12 @@ class Cgal(Package):
version('4.7', '4826714810f3b4c65cac96b90fb03b67') version('4.7', '4826714810f3b4c65cac96b90fb03b67')
version('4.6.3', 'e8ee2ecc8d2b09b94a121c09257b576d') version('4.6.3', 'e8ee2ecc8d2b09b94a121c09257b576d')
# Installation instructions : http://doc.cgal.org/latest/Manual/installation.html # Installation instructions :
variant('shared', default=True, description='Enables the build of shared libraries') # http://doc.cgal.org/latest/Manual/installation.html
variant('debug', default=False, description='Builds a debug version of the libraries') variant('shared', default=True,
description='Enables the build of shared libraries')
variant('debug', default=False,
description='Builds a debug version of the libraries')
depends_on('boost') depends_on('boost')
depends_on('mpfr') depends_on('mpfr')
@ -55,7 +60,8 @@ def install(self, spec, prefix):
options = [] options = []
options.extend(std_cmake_args) options.extend(std_cmake_args)
# CGAL supports only Release and Debug build type. Any other build type will raise an error at configure time # CGAL supports only Release and Debug build type. Any other build type
# will raise an error at configure time
if '+debug' in spec: if '+debug' in spec:
options.append('-DCMAKE_BUILD_TYPE:STRING=Debug') options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
else: else:

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Cgm(Package): class Cgm(Package):
"""The Common Geometry Module, Argonne (CGMA) is a code library """The Common Geometry Module, Argonne (CGMA) is a code library
which provides geometry functionality used for mesh generation and which provides geometry functionality used for mesh generation and
@ -33,7 +34,7 @@ class Cgm(Package):
version('13.1.1', '4e8dbc4ba8f65767b29f985f7a23b01f') version('13.1.1', '4e8dbc4ba8f65767b29f985f7a23b01f')
version('13.1.0', 'a6c7b22660f164ce893fb974f9cb2028') version('13.1.0', 'a6c7b22660f164ce893fb974f9cb2028')
version('13.1' , '95f724bda04919fc76818a5b7bc0b4ed') version('13.1', '95f724bda04919fc76818a5b7bc0b4ed')
depends_on("mpi") depends_on("mpi")
@ -42,7 +43,6 @@ def patch(self):
'//\1', '//\1',
'geom/parallel/CGMReadParallel.cpp') 'geom/parallel/CGMReadParallel.cpp')
def install(self, spec, prefix): def install(self, spec, prefix):
configure("--with-mpi", configure("--with-mpi",
"--prefix=%s" % prefix, "--prefix=%s" % prefix,

View file

@ -25,16 +25,18 @@
from spack import * from spack import *
from spack.util.environment import * from spack.util.environment import *
class Cityhash(Package): class Cityhash(Package):
homepage = "https://github.com/google/cityhash" homepage = "https://github.com/google/cityhash"
url = "https://github.com/google/cityhash" url = "https://github.com/google/cityhash"
version('2013-07-31', git='https://github.com/google/cityhash.git', commit='8af9b8c2b889d80c22d6bc26ba0df1afb79a30db') version('2013-07-31', git='https://github.com/google/cityhash.git',
version('master', branch='master', git='https://github.com/google/cityhash.git') commit='8af9b8c2b889d80c22d6bc26ba0df1afb79a30db')
version('master', branch='master',
git='https://github.com/google/cityhash.git')
def install(self, spec, prefix): def install(self, spec, prefix):
configure('--enable-sse4.2', '--prefix=%s' % prefix) configure('--enable-sse4.2', '--prefix=%s' % prefix)
make() make()
make("install") make("install")

View file

@ -24,18 +24,21 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Cleverleaf(Package): class Cleverleaf(Package):
""" """CleverLeaf is a hydrodynamics mini-app that extends CloverLeaf with
CleverLeaf is a hydrodynamics mini-app that extends CloverLeaf with Adaptive Adaptive Mesh Refinement using the SAMRAI toolkit from Lawrence
Mesh Refinement using the SAMRAI toolkit from Lawrence Livermore National Livermore National Laboratory. The primary goal of CleverLeaf is
Laboratory. The primary goal of CleverLeaf is to evaluate the application of to evaluate the application of AMR to the Lagrangian-Eulerian
AMR to the Lagrangian-Eulerian hydrodynamics scheme used by CloverLeaf. hydrodynamics scheme used by CloverLeaf.
""" """
homepage = "http://uk-mac.github.io/CleverLeaf/" homepage = "http://uk-mac.github.io/CleverLeaf/"
url = "https://github.com/UK-MAC/CleverLeaf/tarball/master" url = "https://github.com/UK-MAC/CleverLeaf/tarball/master"
version('develop', git='https://github.com/UK-MAC/CleverLeaf_ref.git', branch='develop') version('develop', git='https://github.com/UK-MAC/CleverLeaf_ref.git',
branch='develop')
depends_on("SAMRAI@3.8.0:") depends_on("SAMRAI@3.8.0:")
depends_on("hdf5+mpi") depends_on("hdf5+mpi")

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Cloog(Package): class Cloog(Package):
"""CLooG is a free software and library to generate code for """CLooG is a free software and library to generate code for
scanning Z-polyhedra. That is, it finds a code (e.g. in C, scanning Z-polyhedra. That is, it finds a code (e.g. in C,

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Cmake(Package): class Cmake(Package):
"""A cross-platform, open-source build system. CMake is a family of """A cross-platform, open-source build system. CMake is a family of
tools designed to build, test and package software.""" tools designed to build, test and package software."""
@ -40,10 +41,13 @@ class Cmake(Package):
version('3.0.2', 'db4c687a31444a929d2fdc36c4dfb95f') version('3.0.2', 'db4c687a31444a929d2fdc36c4dfb95f')
version('2.8.10.2', '097278785da7182ec0aea8769d06860c') version('2.8.10.2', '097278785da7182ec0aea8769d06860c')
variant('ncurses', default=True, description='Enables the build of the ncurses gui') variant('ncurses', default=True,
variant('openssl', default=True, description="Enables CMake's OpenSSL features") description='Enables the build of the ncurses gui')
variant('openssl', default=True,
description="Enables CMake's OpenSSL features")
variant('qt', default=False, description='Enables the build of cmake-gui') variant('qt', default=False, description='Enables the build of cmake-gui')
variant('doc', default=False, description='Enables the generation of html and man page documentation') variant('doc', default=False,
description='Enables the generation of html and man page docs')
depends_on('ncurses', when='+ncurses') depends_on('ncurses', when='+ncurses')
depends_on('openssl', when='+openssl') depends_on('openssl', when='+openssl')
@ -53,7 +57,8 @@ class Cmake(Package):
def url_for_version(self, version): def url_for_version(self, version):
"""Handle CMake's version-based custom URLs.""" """Handle CMake's version-based custom URLs."""
return 'https://cmake.org/files/v%s/cmake-%s.tar.gz' % (version.up_to(2), version) return 'https://cmake.org/files/v%s/cmake-%s.tar.gz' % (
version.up_to(2), version)
def validate(self, spec): def validate(self, spec):
""" """

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Cmocka(Package): class Cmocka(Package):
"""Unit-testing framework in pure C""" """Unit-testing framework in pure C"""
homepage = "https://cmocka.org/" homepage = "https://cmocka.org/"
@ -36,7 +37,7 @@ class Cmocka(Package):
def install(self, spec, prefix): def install(self, spec, prefix):
with working_dir('spack-build', create=True): with working_dir('spack-build', create=True):
cmake('..', *std_cmake_args) cmake('..', *std_cmake_args)
make() make()
make("install") make("install")

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Cnmem(Package): class Cnmem(Package):
"""CNMem mempool for CUDA devices""" """CNMem mempool for CUDA devices"""
homepage = "https://github.com/NVIDIA/cnmem" homepage = "https://github.com/NVIDIA/cnmem"
@ -31,6 +32,6 @@ class Cnmem(Package):
version('git', git='https://github.com/NVIDIA/cnmem.git', branch="master") version('git', git='https://github.com/NVIDIA/cnmem.git', branch="master")
def install(self, spec, prefix): def install(self, spec, prefix):
cmake('.',*std_cmake_args) cmake('.', *std_cmake_args)
make() make()
make('install') make('install')

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Coreutils(Package): class Coreutils(Package):
"""The GNU Core Utilities are the basic file, shell and text """The GNU Core Utilities are the basic file, shell and text
manipulation utilities of the GNU operating system. These are manipulation utilities of the GNU operating system. These are

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Cppcheck(Package): class Cppcheck(Package):
"""A tool for static C/C++ code analysis.""" """A tool for static C/C++ code analysis."""
homepage = "http://cppcheck.sourceforge.net/" homepage = "http://cppcheck.sourceforge.net/"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Cram(Package): class Cram(Package):
"""Cram runs many small MPI jobs inside one large MPI job.""" """Cram runs many small MPI jobs inside one large MPI job."""
homepage = "https://github.com/llnl/cram" homepage = "https://github.com/llnl/cram"

View file

@ -25,12 +25,15 @@
import glob import glob
from spack import * from spack import *
class Cryptopp(Package): class Cryptopp(Package):
"""Crypto++ is an open-source C++ library of cryptographic schemes. The """Crypto++ is an open-source C++ library of cryptographic schemes. The
library supports a number of different cryptography algorithms, including library supports a number of different cryptography algorithms,
authenticated encryption schemes (GCM, CCM), hash functions (SHA-1, SHA2), including authenticated encryption schemes (GCM, CCM), hash
public-key encryption (RSA, DSA), and a few obsolete/historical encryption functions (SHA-1, SHA2), public-key encryption (RSA, DSA), and a
algorithms (MD5, Panama).""" few obsolete/historical encryption algorithms (MD5, Panama).
"""
homepage = "http://www.cryptopp.com" homepage = "http://www.cryptopp.com"
base_url = "http://www.cryptopp.com" base_url = "http://www.cryptopp.com"

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Cscope(Package): class Cscope(Package):
"""Cscope is a developer's tool for browsing source code.""" """Cscope is a developer's tool for browsing source code."""
homepage = "http://http://cscope.sourceforge.net/" homepage = "http://http://cscope.sourceforge.net/"

View file

@ -26,22 +26,27 @@
from glob import glob from glob import glob
import os import os
class Cuda(Package): class Cuda(Package):
"""CUDA is a parallel computing platform and programming model invented by """CUDA is a parallel computing platform and programming model invented
NVIDIA. It enables dramatic increases in computing performance by harnessing by NVIDIA. It enables dramatic increases in computing performance by
the power of the graphics processing unit (GPU). harnessing the power of the graphics processing unit (GPU).
Note: NVIDIA does not provide a download URL for CUDA so you will need to Note: NVIDIA does not provide a download URL for CUDA so you will
download it yourself. Go to https://developer.nvidia.com/cuda-downloads need to download it yourself. Go to
and select your Operating System, Architecture, Distribution, and Version. https://developer.nvidia.com/cuda-downloads and select your Operating
For the Installer Type, select runfile and click Download. Spack will search System, Architecture, Distribution, and Version. For the Installer
your current directory for this file. Alternatively, add this file to a Type, select runfile and click Download. Spack will search your
mirror so that Spack can find it. For instructions on how to set up a mirror, current directory for this file. Alternatively, add this file to a
see http://software.llnl.gov/spack/mirrors.html mirror so that Spack can find it. For instructions on how to set up a
mirror, see http://software.llnl.gov/spack/mirrors.html
Note: This package does not currently install the drivers necessary to run Note: This package does not currently install the drivers necessary
CUDA. These will need to be installed manually. See: to run CUDA. These will need to be installed manually. See:
http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux for details.""" http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux for
details.
"""
homepage = "http://www.nvidia.com/object/cuda_home_new.html" homepage = "http://www.nvidia.com/object/cuda_home_new.html"
@ -50,15 +55,15 @@ class Cuda(Package):
version('6.5.14', '90b1b8f77313600cc294d9271741f4da', expand=False, version('6.5.14', '90b1b8f77313600cc294d9271741f4da', expand=False,
url="file://%s/cuda_6.5.14_linux_64.run" % os.getcwd()) url="file://%s/cuda_6.5.14_linux_64.run" % os.getcwd())
def install(self, spec, prefix): def install(self, spec, prefix):
runfile = glob(os.path.join(self.stage.path, 'cuda*.run'))[0] runfile = glob(os.path.join(self.stage.path, 'cuda*.run'))[0]
chmod = which('chmod') chmod = which('chmod')
chmod('+x', runfile) chmod('+x', runfile)
runfile = which(runfile) runfile = which(runfile)
# Note: NVIDIA does not officially support many newer versions of compilers. # Note: NVIDIA does not officially support many newer versions of
# For example, on CentOS 6, you must use GCC 4.4.7 or older. See: # compilers. For example, on CentOS 6, you must use GCC 4.4.7 or
# older. See:
# http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#system-requirements # http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#system-requirements
# for details. # for details.
@ -68,4 +73,3 @@ def install(self, spec, prefix):
'--toolkit', # install CUDA Toolkit '--toolkit', # install CUDA Toolkit
'--toolkitpath=%s' % prefix '--toolkitpath=%s' % prefix
) )

View file

@ -25,12 +25,14 @@
from spack import * from spack import *
import os import os
class Czmq(Package): class Czmq(Package):
""" A C interface to the ZMQ library """ """ A C interface to the ZMQ library """
homepage = "http://czmq.zeromq.org" homepage = "http://czmq.zeromq.org"
url = "https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz" url = "https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz"
version('3.0.2', '23e9885f7ee3ce88d99d0425f52e9be1', url='https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz') version('3.0.2', '23e9885f7ee3ce88d99d0425f52e9be1',
url='https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz')
depends_on('libtool', type='build') depends_on('libtool', type='build')
depends_on('automake', type='build') depends_on('automake', type='build')
@ -39,19 +41,21 @@ class Czmq(Package):
depends_on('zeromq') depends_on('zeromq')
def install(self, spec, prefix): def install(self, spec, prefix):
bash = which("bash")
# Work around autogen.sh oddities # Work around autogen.sh oddities
# bash = which("bash")
# bash("./autogen.sh") # bash("./autogen.sh")
mkdirp("config") mkdirp("config")
autoreconf = which("autoreconf") autoreconf = which("autoreconf")
autoreconf("--install", "--verbose", "--force", autoreconf("--install", "--verbose", "--force",
"-I", "config", "-I", "config",
"-I", os.path.join(spec['pkg-config'].prefix, "share", "aclocal"), "-I", os.path.join(spec['pkg-config'].prefix,
"-I", os.path.join(spec['automake'].prefix, "share", "aclocal"), "share", "aclocal"),
"-I", os.path.join(spec['libtool'].prefix, "share", "aclocal"), "-I", os.path.join(spec['automake'].prefix,
) "share", "aclocal"),
"-I", os.path.join(spec['libtool'].prefix,
"share", "aclocal"),
)
configure("--prefix=%s" % prefix) configure("--prefix=%s" % prefix)
make() make()
make("install") make("install")

View file

@ -26,17 +26,22 @@
class Dakota(Package): class Dakota(Package):
""" """The Dakota toolkit provides a flexible, extensible interface between
The Dakota toolkit provides a flexible, extensible interface between analysis codes and iterative systems analysis codes and iterative systems analysis methods. Dakota
analysis methods. Dakota contains algorithms for: contains algorithms for:
- optimization with gradient and non gradient-based methods; - optimization with gradient and non gradient-based methods;
- uncertainty quantification with sampling, reliability, stochastic expansion, and epistemic methods; - uncertainty quantification with sampling, reliability, stochastic
- expansion, and epistemic methods;
- parameter estimation with nonlinear least squares methods; - parameter estimation with nonlinear least squares methods;
- sensitivity/variance analysis with design of experiments and parameter study methods. - sensitivity/variance analysis with design of experiments and
- parameter study methods.
These capabilities may be used on their own or as components within
advanced strategies such as hybrid optimization, surrogate-based
optimization, mixed integer nonlinear programming, or optimization
under uncertainty.
These capabilities may be used on their own or as components within advanced strategies such as hybrid optimization,
surrogate-based optimization, mixed integer nonlinear programming, or optimization under uncertainty.
""" """
homepage = 'https://dakota.sandia.gov/' homepage = 'https://dakota.sandia.gov/'
@ -45,8 +50,10 @@ class Dakota(Package):
version('6.3', '05a58d209fae604af234c894c3f73f6d') version('6.3', '05a58d209fae604af234c894c3f73f6d')
variant('debug', default=False, description='Builds a debug version of the libraries') variant('debug', default=False,
variant('shared', default=True, description='Enables the build of shared libraries') description='Builds a debug version of the libraries')
variant('shared', default=True,
description='Enables the build of shared libraries')
variant('mpi', default=True, description='Activates MPI support') variant('mpi', default=True, description='Activates MPI support')
depends_on('blas') depends_on('blas')
@ -64,12 +71,17 @@ def install(self, spec, prefix):
options = [] options = []
options.extend(std_cmake_args) options.extend(std_cmake_args)
options.extend(['-DCMAKE_BUILD_TYPE:STRING=%s' % ('Debug' if '+debug' in spec else 'Release'), options.extend([
'-DBUILD_SHARED_LIBS:BOOL=%s' % ('ON' if '+shared' in spec else 'OFF')]) '-DCMAKE_BUILD_TYPE:STRING=%s' % (
'Debug' if '+debug' in spec else 'Release'),
'-DBUILD_SHARED_LIBS:BOOL=%s' % (
'ON' if '+shared' in spec else 'OFF')])
if '+mpi' in spec: if '+mpi' in spec:
options.extend(['-DDAKOTA_HAVE_MPI:BOOL=ON', options.extend([
'-DMPI_CXX_COMPILER:STRING=%s' % join_path(spec['mpi'].prefix.bin, 'mpicxx')]) '-DDAKOTA_HAVE_MPI:BOOL=ON',
'-DMPI_CXX_COMPILER:STRING=%s' % join_path(
spec['mpi'].prefix.bin, 'mpicxx')])
build_directory = join_path(self.stage.path, 'spack-build') build_directory = join_path(self.stage.path, 'spack-build')
source_directory = self.stage.source_path source_directory = self.stage.source_path

View file

@ -24,17 +24,19 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Damselfly(Package): class Damselfly(Package):
"""Damselfly is a model-based parallel network simulator.""" """Damselfly is a model-based parallel network simulator."""
homepage = "https://github.com/llnl/damselfly" homepage = "https://github.com/llnl/damselfly"
url = "https://github.com/llnl/damselfly" url = "https://github.com/llnl/damselfly"
version('1.0', '05cf7e2d8ece4408c0f2abb7ab63fd74c0d62895', git='https://github.com/llnl/damselfly.git', tag='v1.0') version('1.0', '05cf7e2d8ece4408c0f2abb7ab63fd74c0d62895',
git='https://github.com/llnl/damselfly.git', tag='v1.0')
depends_on('cmake', type='build') depends_on('cmake', type='build')
def install(self, spec, prefix): def install(self, spec, prefix):
with working_dir('spack-build', create=True): with working_dir('spack-build', create=True):
cmake('-DCMAKE_BUILD_TYPE=release', '..', *std_cmake_args) cmake('-DCMAKE_BUILD_TYPE=release', '..', *std_cmake_args)
make() make()
make('install') make('install')

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Dbus(Package): class Dbus(Package):
"""D-Bus is a message bus system, a simple way for applications to """D-Bus is a message bus system, a simple way for applications to
talk to one another. D-Bus supplies both a system daemon (for talk to one another. D-Bus supplies both a system daemon (for

View file

@ -40,18 +40,27 @@ class Dealii(Package):
version('develop', git='https://github.com/dealii/dealii.git') version('develop', git='https://github.com/dealii/dealii.git')
variant('mpi', default=True, description='Compile with MPI') variant('mpi', default=True, description='Compile with MPI')
variant('arpack', default=True, description='Compile with Arpack and PArpack (only with MPI)') variant('arpack', default=True,
variant('doc', default=False, description='Compile with documentation') description='Compile with Arpack and PArpack (only with MPI)')
variant('doc', default=False,
description='Compile with documentation')
variant('gsl', default=True, description='Compile with GSL') variant('gsl', default=True, description='Compile with GSL')
variant('hdf5', default=True, description='Compile with HDF5 (only with MPI)') variant('hdf5', default=True,
description='Compile with HDF5 (only with MPI)')
variant('metis', default=True, description='Compile with Metis') variant('metis', default=True, description='Compile with Metis')
variant('netcdf', default=True, description='Compile with Netcdf (only with MPI)') variant('netcdf', default=True,
description='Compile with Netcdf (only with MPI)')
variant('oce', default=True, description='Compile with OCE') variant('oce', default=True, description='Compile with OCE')
variant('p4est', default=True, description='Compile with P4est (only with MPI)') variant('p4est', default=True,
variant('petsc', default=True, description='Compile with Petsc (only with MPI)') description='Compile with P4est (only with MPI)')
variant('slepc', default=True, description='Compile with Slepc (only with Petsc and MPI)') variant('petsc', default=True,
variant('trilinos', default=True, description='Compile with Trilinos (only with MPI)') description='Compile with Petsc (only with MPI)')
variant('python', default=True, description='Compile with Python bindings') variant('slepc', default=True,
description='Compile with Slepc (only with Petsc and MPI)')
variant('trilinos', default=True,
description='Compile with Trilinos (only with MPI)')
variant('python', default=True,
description='Compile with Python bindings')
# required dependencies, light version # required dependencies, light version
depends_on("blas") depends_on("blas")
@ -59,13 +68,20 @@ class Dealii(Package):
# https://github.com/dealii/dealii/issues/1591 # https://github.com/dealii/dealii/issues/1591
# Require at least 1.59 # Require at least 1.59
# +python won't affect @:8.4.1 # +python won't affect @:8.4.1
depends_on("boost@1.59.0:+thread+system+serialization+iostreams", when='@:8.4.1~mpi') depends_on("boost@1.59.0:+thread+system+serialization+iostreams",
depends_on("boost@1.59.0:+thread+system+serialization+iostreams+mpi", when='@:8.4.1+mpi') when='@:8.4.1~mpi')
depends_on("boost@1.59.0:+thread+system+serialization+iostreams+mpi",
when='@:8.4.1+mpi')
# since @8.5.0: (and @develop) python bindings are introduced: # since @8.5.0: (and @develop) python bindings are introduced:
depends_on("boost@1.59.0:+thread+system+serialization+iostreams", when='@8.5.0:~mpi~python') depends_on("boost@1.59.0:+thread+system+serialization+iostreams",
depends_on("boost@1.59.0:+thread+system+serialization+iostreams+mpi", when='@8.5.0:+mpi~python') when='@8.5.0:~mpi~python')
depends_on("boost@1.59.0:+thread+system+serialization+iostreams+python", when='@8.5.0:~mpi+python') depends_on("boost@1.59.0:+thread+system+serialization+iostreams+mpi",
depends_on("boost@1.59.0:+thread+system+serialization+iostreams+mpi+python", when='@8.5.0:+mpi+python') when='@8.5.0:+mpi~python')
depends_on("boost@1.59.0:+thread+system+serialization+iostreams+python",
when='@8.5.0:~mpi+python')
depends_on(
"boost@1.59.0:+thread+system+serialization+iostreams+mpi+python",
when='@8.5.0:+mpi+python')
depends_on("bzip2") depends_on("bzip2")
depends_on("cmake", type='build') depends_on("cmake", type='build')
depends_on("lapack") depends_on("lapack")

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Dia(Package): class Dia(Package):
"""Dia is a program for drawing structured diagrams.""" """Dia is a program for drawing structured diagrams."""
homepage = 'https://wiki.gnome.org/Apps/Dia' homepage = 'https://wiki.gnome.org/Apps/Dia'
@ -34,7 +35,7 @@ class Dia(Package):
depends_on('intltool', type='build') depends_on('intltool', type='build')
depends_on('gtkplus@2.6.0:') depends_on('gtkplus@2.6.0:')
depends_on('cairo') depends_on('cairo')
#depends_on('libart') # optional dependency, not yet supported by spack. # depends_on('libart') # optional dependency, not yet supported by spack.
depends_on('libpng') depends_on('libpng')
depends_on('libxslt') depends_on('libxslt')
depends_on('python') depends_on('python')

View file

@ -24,8 +24,6 @@
############################################################################## ##############################################################################
from spack import * from spack import *
import sys
class Doxygen(Package): class Doxygen(Package):
"""Doxygen is the de facto standard tool for generating documentation """Doxygen is the de facto standard tool for generating documentation
@ -41,7 +39,8 @@ class Doxygen(Package):
version('1.8.10', '79767ccd986f12a0f949015efb5f058f') version('1.8.10', '79767ccd986f12a0f949015efb5f058f')
# graphviz appears to be a run-time optional dependency # graphviz appears to be a run-time optional dependency
variant('graphviz', default=True, description='Build with dot command support from Graphviz.') # NOQA: ignore=E501 variant('graphviz', default=True,
description='Build with dot command support from Graphviz.')
depends_on("cmake@2.8.12:", type='build') depends_on("cmake@2.8.12:", type='build')
depends_on("flex", type='build') depends_on("flex", type='build')

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Dri2proto(Package): class Dri2proto(Package):
"""DRI2 Protocol Headers.""" """DRI2 Protocol Headers."""
homepage = "http://http://cgit.freedesktop.org/xorg/proto/dri2proto/" homepage = "http://http://cgit.freedesktop.org/xorg/proto/dri2proto/"

View file

@ -22,9 +22,9 @@
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
import os
from spack import * from spack import *
class Dtcmp(Package): class Dtcmp(Package):
"""The Datatype Comparison Library provides comparison operations and """The Datatype Comparison Library provides comparison operations and
parallel sort algorithms for MPI applications.""" parallel sort algorithms for MPI applications."""

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Dyninst(Package): class Dyninst(Package):
"""API for dynamic binary instrumentation. Modify programs while they """API for dynamic binary instrumentation. Modify programs while they
are executing without recompiling, re-linking, or re-executing.""" are executing without recompiling, re-linking, or re-executing."""
@ -55,16 +56,18 @@ def install(self, spec, prefix):
'-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include, '-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include,
'-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib, '-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib,
'-DBoost_NO_SYSTEM_PATHS=TRUE', '-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DLIBELF_INCLUDE_DIR=%s' % join_path(libelf.include, 'libelf'), '-DLIBELF_INCLUDE_DIR=%s' % join_path(
'-DLIBELF_LIBRARIES=%s' % join_path(libelf.lib, 'libelf.so'), libelf.include, 'libelf'),
'-DLIBELF_LIBRARIES=%s' % join_path(
libelf.lib, 'libelf.so'),
'-DLIBDWARF_INCLUDE_DIR=%s' % libdwarf.include, '-DLIBDWARF_INCLUDE_DIR=%s' % libdwarf.include,
'-DLIBDWARF_LIBRARIES=%s' % join_path(libdwarf.lib, 'libdwarf.so'), '-DLIBDWARF_LIBRARIES=%s' % join_path(
libdwarf.lib, 'libdwarf.so'),
*std_cmake_args) *std_cmake_args)
make() make()
make("install") make("install")
@when('@:8.1') @when('@:8.1')
def install(self, spec, prefix): def install(self, spec, prefix):
configure("--prefix=" + prefix) configure("--prefix=" + prefix)

View file

@ -22,7 +22,6 @@
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
from spack import * from spack import *
@ -36,15 +35,19 @@ class Eigen(Package):
homepage = 'http://eigen.tuxfamily.org/' homepage = 'http://eigen.tuxfamily.org/'
url = 'http://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2' url = 'http://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2'
version('3.2.7', 'cc1bacbad97558b97da6b77c9644f184', url='http://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2') version('3.2.7', 'cc1bacbad97558b97da6b77c9644f184',
url='http://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2')
variant('debug', default=False, description='Builds the library in debug mode') variant('debug', default=False,
description='Builds the library in debug mode')
variant('metis', default=True, description='Enables metis backend') variant('metis', default=True, description='Enables metis backend')
variant('scotch', default=True, description='Enables scotch backend') variant('scotch', default=True, description='Enables scotch backend')
variant('fftw', default=True, description='Enables FFTW backend') variant('fftw', default=True, description='Enables FFTW backend')
variant('suitesparse', default=True, description='Enables SuiteSparse support') variant('suitesparse', default=True,
variant('mpfr', default=True, description='Enables support for multi-precisions floating points via mpfr') description='Enables SuiteSparse support')
variant('mpfr', default=True,
description='Enables support for multi-precisions FP via mpfr')
# TODO : dependency on googlehash, superlu, adolc missing # TODO : dependency on googlehash, superlu, adolc missing
depends_on('cmake', type='build') depends_on('cmake', type='build')

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Elfutils(Package): class Elfutils(Package):
"""elfutils is a collection of various binary tools such as """elfutils is a collection of various binary tools such as
eu-objdump, eu-readelf, and other utilities that allow you to eu-objdump, eu-readelf, and other utilities that allow you to
@ -47,4 +48,3 @@ def install(self, spec, prefix):
configure('--prefix=%s' % prefix, '--enable-maintainer-mode') configure('--prefix=%s' % prefix, '--enable-maintainer-mode')
make() make()
make("install") make("install")

View file

@ -34,7 +34,8 @@ class Elpa(Package):
homepage = 'http://elpa.mpcdf.mpg.de/' homepage = 'http://elpa.mpcdf.mpg.de/'
url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz' url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz'
version('2015.11.001', 'de0f35b7ee7c971fd0dca35c900b87e6', url='http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz') version('2015.11.001', 'de0f35b7ee7c971fd0dca35c900b87e6',
url='http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz')
variant('openmp', default=False, description='Activates OpenMP support') variant('openmp', default=False, description='Activates OpenMP support')

View file

@ -35,7 +35,8 @@ class Emacs(Package):
version('24.5', 'd74b597503a68105e61b5b9f6d065b44') version('24.5', 'd74b597503a68105e61b5b9f6d065b44')
variant('X', default=True, description="Enable a X toolkit (GTK+)") variant('X', default=True, description="Enable a X toolkit (GTK+)")
variant('gtkplus', default=False, description="Enable a GTK+ as X toolkit (this variant is ignored if ~X)") variant('gtkplus', default=False,
description="Enable a GTK+ as X toolkit (ignored if ~X)")
depends_on('ncurses') depends_on('ncurses')
depends_on('libtiff', when='+X') depends_on('libtiff', when='+X')

View file

@ -46,17 +46,18 @@ def install(self, spec, prefix):
"--without-tclx", "--without-tclx",
"--with-tclx-ver=0.0", "--with-tclx-ver=0.0",
"--prefix=%s" % prefix, "--prefix=%s" % prefix,
"--with-tcl=%s" % join_path(tcl_spec.prefix, 'lib'), # It looks for tclConfig.sh # It looks for tclConfig.sh
"--with-tcl-ver=%d.%d" % (tcl_spec.version.version[0], tcl_spec.version.version[1]), "--with-tcl=%s" % join_path(tcl_spec.prefix, 'lib'),
"--with-tcl-ver=%d.%d" % (tcl_spec.version.version[
0], tcl_spec.version.version[1]),
'--disable-debug', '--disable-debug',
'--disable-dependency-tracking', '--disable-dependency-tracking',
'--disable-silent-rules', '--disable-silent-rules',
'--disable-versioning', '--disable-versioning',
'--datarootdir=%s' % prefix.share, '--datarootdir=%s' % prefix.share,
'CPPFLAGS=%s' % ' '.join(CPPFLAGS) 'CPPFLAGS=%s' % ' '.join(CPPFLAGS)
] ]
configure(*config_args) configure(*config_args)
make() make()
make('install') make('install')

View file

@ -32,17 +32,22 @@
# TODO: Create installation options for NetCDF that support larger page size # TODO: Create installation options for NetCDF that support larger page size
# TODO: suggested by Exodus (see the repository "README" file). # TODO: suggested by Exodus (see the repository "README" file).
class Exodusii(Package): class Exodusii(Package):
"""Exodus II is a C++/Fortran library developed to store and retrieve data for """Exodus II is a C++/Fortran library developed to store and retrieve
finite element analyses. It's used for preprocessing (problem definition), data for finite element analyses. It's used for preprocessing
postprocessing (results visualization), and data transfer between codes. (problem definition), postprocessing (results visualization), and
An Exodus II data file is a random access, machine independent, binary data transfer between codes. An Exodus II data file is a random
file that is written and read via C, C++, or Fortran API routines.""" access, machine independent, binary file that is written and read
via C, C++, or Fortran API routines.
"""
homepage = "https://github.com/gsjaardema/seacas" homepage = "https://github.com/gsjaardema/seacas"
url = "https://github.com/gsjaardema/seacas/archive/master.zip" url = "https://github.com/gsjaardema/seacas/archive/master.zip"
version('2016-02-08', git='https://github.com/gsjaardema/seacas.git', commit='dcf3529') version('2016-02-08',
git='https://github.com/gsjaardema/seacas.git', commit='dcf3529')
depends_on('cmake@2.8.7:', type='build') depends_on('cmake@2.8.7:', type='build')
depends_on('hdf5~shared~mpi') depends_on('hdf5~shared~mpi')
@ -54,11 +59,14 @@ def patch(self):
ff = FileFilter('cmake-exodus') ff = FileFilter('cmake-exodus')
ff.filter('CMAKE_INSTALL_PREFIX:PATH=${ACCESS}', ff.filter('CMAKE_INSTALL_PREFIX:PATH=${ACCESS}',
'CMAKE_INSTALL_PREFIX:PATH=%s' % self.spec.prefix, string=True) 'CMAKE_INSTALL_PREFIX:PATH=%s' % self.spec.prefix,
string=True)
ff.filter('NetCDF_DIR:PATH=${TPL}', ff.filter('NetCDF_DIR:PATH=${TPL}',
'NetCDF_DIR:PATH=%s' % self.spec['netcdf'].prefix, string=True) 'NetCDF_DIR:PATH=%s' % self.spec['netcdf'].prefix,
string=True)
ff.filter('HDF5_ROOT:PATH=${TPL}', ff.filter('HDF5_ROOT:PATH=${TPL}',
'HDF5_ROOT:PATH=%s' % self.spec['hdf5'].prefix, string=True) 'HDF5_ROOT:PATH=%s' % self.spec['hdf5'].prefix,
string=True)
def install(self, spec, prefix): def install(self, spec, prefix):
mkdirp('build') mkdirp('build')

View file

@ -24,6 +24,7 @@
############################################################################## ##############################################################################
from spack import * from spack import *
class Expat(Package): class Expat(Package):
"""<eXpat/> is an XML parser library written in C""" """<eXpat/> is an XML parser library written in C"""
homepage = "http://expat.sourceforge.net/" homepage = "http://expat.sourceforge.net/"
@ -39,4 +40,3 @@ def install(self, spec, prefix):
cmake('..', *std_cmake_args) cmake('..', *std_cmake_args)
make() make()
make('install') make('install')

Some files were not shown because too many files have changed in this diff Show more