Merge branch 'develop' into eschnett/sympol
This commit is contained in:
@@ -51,7 +51,7 @@ class Imagemagick(Package):
|
||||
url="http://sourceforge.net/projects/imagemagick/files/old-sources/6.x/6.8/ImageMagick-6.8.9-10.tar.gz/download")
|
||||
|
||||
depends_on('jpeg')
|
||||
depends_on('libtool')
|
||||
depends_on('libtool', type='build')
|
||||
depends_on('libpng')
|
||||
depends_on('freetype')
|
||||
depends_on('fontconfig')
|
||||
|
@@ -25,6 +25,7 @@
|
||||
import os
|
||||
from spack import *
|
||||
|
||||
|
||||
class Luajit(Package):
|
||||
"""Flast flexible JITed lua"""
|
||||
homepage = "http://www.luajit.org"
|
||||
|
@@ -41,6 +41,7 @@ class Mitos(Package):
|
||||
depends_on('dyninst@8.2.1:')
|
||||
depends_on('hwloc')
|
||||
depends_on('mpi')
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
with working_dir('spack-build', create=True):
|
||||
|
@@ -22,30 +22,25 @@
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
import functools
|
||||
import glob
|
||||
import inspect
|
||||
import os
|
||||
import re
|
||||
from contextlib import closing
|
||||
|
||||
import spack
|
||||
from llnl.util.lang import match_predicate
|
||||
from spack import *
|
||||
from spack.util.environment import *
|
||||
import shutil
|
||||
|
||||
|
||||
class R(Package):
|
||||
"""
|
||||
R is 'GNU S', a freely available language and environment for statistical computing and graphics which provides a
|
||||
wide variety of statistical and graphical techniques: linear and nonlinear modelling, statistical tests, time series
|
||||
analysis, classification, clustering, etc. Please consult the R project homepage for further information.
|
||||
"""
|
||||
"""R is 'GNU S', a freely available language and environment for
|
||||
statistical computing and graphics which provides a wide variety of
|
||||
statistical and graphical techniques: linear and nonlinear modelling,
|
||||
statistical tests, time series analysis, classification, clustering, etc.
|
||||
Please consult the R project homepage for further information."""
|
||||
|
||||
homepage = "https://www.r-project.org"
|
||||
url = "http://cran.cnr.berkeley.edu/src/base/R-3/R-3.1.2.tar.gz"
|
||||
|
||||
|
||||
extendable = True
|
||||
|
||||
version('3.3.1', 'f50a659738b73036e2f5635adbd229c5')
|
||||
version('3.3.0', '5a7506c8813432d1621c9725e86baf7a')
|
||||
version('3.2.3', '1ba3dac113efab69e706902810cc2970')
|
||||
version('3.2.2', '57cef5c2e210a5454da1979562a10e5b')
|
||||
version('3.2.1', 'c2aac8b40f84e08e7f8c9068de9239a3')
|
||||
@@ -53,7 +48,8 @@ class R(Package):
|
||||
version('3.1.3', '53a85b884925aa6b5811dfc361d73fc4')
|
||||
version('3.1.2', '3af29ec06704cbd08d4ba8d69250ae74')
|
||||
|
||||
variant('external-lapack', default=False, description='Links to externally installed BLAS/LAPACK')
|
||||
variant('external-lapack', default=False,
|
||||
description='Links to externally installed BLAS/LAPACK')
|
||||
|
||||
# Virtual dependencies
|
||||
depends_on('blas', when='+external-lapack')
|
||||
@@ -65,6 +61,7 @@ class R(Package):
|
||||
depends_on('icu')
|
||||
depends_on('glib')
|
||||
depends_on('zlib')
|
||||
depends_on('bzip2')
|
||||
depends_on('libtiff')
|
||||
depends_on('jpeg')
|
||||
depends_on('cairo')
|
||||
@@ -72,59 +69,107 @@ class R(Package):
|
||||
depends_on('freetype')
|
||||
depends_on('tcl')
|
||||
depends_on('tk')
|
||||
depends_on('curl')
|
||||
depends_on('pcre')
|
||||
depends_on('jdk')
|
||||
|
||||
@property
|
||||
def etcdir(self):
|
||||
return join_path(prefix, 'rlib', 'R', 'etc')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
rlibdir = join_path(prefix, 'rlib')
|
||||
options = ['--prefix=%s' % prefix,
|
||||
'--libdir=%s' % rlibdir,
|
||||
'--enable-R-shlib',
|
||||
'--enable-BLAS-shlib',
|
||||
'--enable-R-framework=no']
|
||||
configure_args = ['--prefix=%s' % prefix,
|
||||
'--libdir=%s' % rlibdir,
|
||||
'--enable-R-shlib',
|
||||
'--enable-BLAS-shlib',
|
||||
'--enable-R-framework=no']
|
||||
if '+external-lapack' in spec:
|
||||
options.extend(['--with-blas', '--with-lapack'])
|
||||
configure_args.extend(['--with-blas', '--with-lapack'])
|
||||
|
||||
configure(*options)
|
||||
configure(*configure_args)
|
||||
make()
|
||||
make('install')
|
||||
|
||||
# Make a copy of Makeconf because it will be needed to properly build R
|
||||
# dependencies in Spack.
|
||||
src_makeconf = join_path(self.etcdir, 'Makeconf')
|
||||
dst_makeconf = join_path(self.etcdir, 'Makeconf.spack')
|
||||
shutil.copy(src_makeconf, dst_makeconf)
|
||||
|
||||
self.filter_compilers(spec, prefix)
|
||||
|
||||
def filter_compilers(self, spec, prefix):
|
||||
"""Run after install to tell the configuration files and Makefiles
|
||||
to use the compilers that Spack built the package with.
|
||||
|
||||
If this isn't done, they'll have CC and CXX set to Spack's generic
|
||||
cc and c++. We want them to be bound to whatever compiler
|
||||
they were built with."""
|
||||
|
||||
kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
|
||||
|
||||
filter_file(env['CC'], self.compiler.cc,
|
||||
join_path(self.etcdir, 'Makeconf'), **kwargs)
|
||||
filter_file(env['CXX'], self.compiler.cxx,
|
||||
join_path(self.etcdir, 'Makeconf'), **kwargs)
|
||||
filter_file(env['F77'], self.compiler.f77,
|
||||
join_path(self.etcdir, 'Makeconf'), **kwargs)
|
||||
filter_file(env['FC'], self.compiler.fc,
|
||||
join_path(self.etcdir, 'Makeconf'), **kwargs)
|
||||
|
||||
# ========================================================================
|
||||
# Set up environment to make install easy for R extensions.
|
||||
# ========================================================================
|
||||
|
||||
@property
|
||||
def r_lib_dir(self):
|
||||
return os.path.join('rlib', 'R', 'library')
|
||||
return join_path('rlib', 'R', 'library')
|
||||
|
||||
def setup_dependent_environment(self, spack_env, run_env, extension_spec):
|
||||
# Set R_LIBS to include the library dir for the
|
||||
# extension and any other R extensions it depends on.
|
||||
r_libs_path = []
|
||||
for d in extension_spec.traverse():
|
||||
for d in extension_spec.traverse(deptype=nolink, deptype_query='run'):
|
||||
if d.package.extends(self.spec):
|
||||
r_libs_path.append(os.path.join(d.prefix, self.r_lib_dir))
|
||||
r_libs_path.append(join_path(d.prefix, self.r_lib_dir))
|
||||
|
||||
r_libs_path = ':'.join(r_libs_path)
|
||||
spack_env.set('R_LIBS', r_libs_path)
|
||||
spack_env.set('R_MAKEVARS_SITE',
|
||||
join_path(self.etcdir, 'Makeconf.spack'))
|
||||
|
||||
# For run time environment set only the path for extension_spec and prepend it to R_LIBS
|
||||
# Use the number of make_jobs set in spack. The make program will
|
||||
# determine how many jobs can actually be started.
|
||||
spack_env.set('MAKEFLAGS', '-j{0}'.format(make_jobs))
|
||||
|
||||
# For run time environment set only the path for extension_spec and
|
||||
# prepend it to R_LIBS
|
||||
if extension_spec.package.extends(self.spec):
|
||||
run_env.prepend_path('R_LIBS', os.path.join(extension_spec.prefix, self.r_lib_dir))
|
||||
run_env.prepend_path('R_LIBS', join_path(
|
||||
extension_spec.prefix, self.r_lib_dir))
|
||||
|
||||
def setup_environment(self, spack_env, run_env):
|
||||
run_env.prepend_path('LIBRARY_PATH',
|
||||
join_path(self.prefix, 'rlib', 'R', 'lib'))
|
||||
run_env.prepend_path('LD_LIBRARY_PATH',
|
||||
join_path(self.prefix, 'rlib', 'R', 'lib'))
|
||||
run_env.prepend_path('CPATH',
|
||||
join_path(self.prefix, 'rlib', 'R', 'include'))
|
||||
|
||||
def setup_dependent_package(self, module, ext_spec):
|
||||
"""
|
||||
Called before R modules' install() methods.
|
||||
"""Called before R modules' install() methods. In most cases,
|
||||
extensions will only need to have one line:
|
||||
R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir),
|
||||
self.stage.source_path)"""
|
||||
|
||||
In most cases, extensions will only need to have one line::
|
||||
|
||||
R('CMD', 'INSTALL', '--library=%s' % self.module.r_lib_dir, '%s' % self.stage.archive_file)
|
||||
"""
|
||||
# R extension builds can have a global R executable function
|
||||
module.R = Executable(join_path(self.spec.prefix.bin, 'R'))
|
||||
|
||||
# Add variable for library directry
|
||||
module.r_lib_dir = os.path.join(ext_spec.prefix, self.r_lib_dir)
|
||||
module.r_lib_dir = join_path(ext_spec.prefix, self.r_lib_dir)
|
||||
|
||||
# Make the site packages directory for extensions, if it does not exist already.
|
||||
# Make the site packages directory for extensions, if it does not exist
|
||||
# already.
|
||||
if ext_spec.package.is_extension:
|
||||
mkdirp(module.r_lib_dir)
|
||||
|
@@ -24,12 +24,14 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Samrai(Package):
|
||||
"""SAMRAI (Structured Adaptive Mesh Refinement Application Infrastructure)
|
||||
is an object-oriented C++ software library enables exploration of numerical,
|
||||
algorithmic, parallel computing, and software issues associated with applying
|
||||
structured adaptive mesh refinement (SAMR) technology in large-scale parallel
|
||||
application development.
|
||||
is an object-oriented C++ software library enables exploration of
|
||||
numerical, algorithmic, parallel computing, and software issues
|
||||
associated with applying structured adaptive mesh refinement
|
||||
(SAMR) technology in large-scale parallel application development.
|
||||
|
||||
"""
|
||||
homepage = "https://computation.llnl.gov/project/SAMRAI/"
|
||||
url = "https://computation.llnl.gov/project/SAMRAI/download/SAMRAI-v3.9.1.tar.gz"
|
||||
|
51
var/spack/repos/builtin/packages/ack/package.py
Normal file
51
var/spack/repos/builtin/packages/ack/package.py
Normal file
@@ -0,0 +1,51 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Ack(Package):
|
||||
"""ack 2.14 is a tool like grep, optimized for programmers.
|
||||
|
||||
Designed for programmers with large heterogeneous trees of
|
||||
source code, ack is written purely in portable Perl 5 and takes
|
||||
advantage of the power of Perl's regular expressions."""
|
||||
|
||||
homepage = "http://beyondgrep.com/"
|
||||
url = "http://beyondgrep.com/ack-2.14-single-file"
|
||||
|
||||
version('2.14', 'e74150a1609d28a70b450ef9cc2ed56b', expand=False)
|
||||
|
||||
depends_on('perl')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
mkdirp(prefix.bin)
|
||||
ack = 'ack-{0}-single-file'.format(self.version)
|
||||
|
||||
# rewrite the script's #! line to call the perl dependency
|
||||
shbang = '#!' + join_path(spec['perl'].prefix.bin, 'perl')
|
||||
filter_file(r'^#!/usr/bin/env perl', shbang, ack)
|
||||
|
||||
install(ack, join_path(prefix.bin, "ack"))
|
||||
set_executable(join_path(prefix.bin, "ack"))
|
@@ -24,8 +24,10 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
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"
|
||||
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):
|
||||
make("CFLAGS=-O3")
|
||||
make("install", 'PREFIX=%s' % prefix)
|
||||
|
||||
from spack import *
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class AdeptUtils(Package):
|
||||
"""Utility libraries for LLNL performance tools."""
|
||||
|
||||
@@ -35,6 +36,7 @@ class AdeptUtils(Package):
|
||||
|
||||
depends_on("boost")
|
||||
depends_on("mpi")
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake(*std_cmake_args)
|
||||
|
41
var/spack/repos/builtin/packages/adios/package.py
Normal file
41
var/spack/repos/builtin/packages/adios/package.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import os
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Adios(Package):
|
||||
"""
|
||||
The Adaptable IO System (ADIOS) provides a simple,
|
||||
flexible way for scientists to describe the
|
||||
data in their code that may need to be written,
|
||||
read, or processed outside of the running simulation
|
||||
"""
|
||||
|
||||
homepage = "http://www.olcf.ornl.gov/center-projects/adios/"
|
||||
url = "https://github.com/ornladios/ADIOS/archive/v1.9.0.tar.gz"
|
||||
|
||||
version('1.9.0', '310ff02388bbaa2b1c1710ee970b5678')
|
||||
|
||||
# Lots of setting up here for this package
|
||||
# module swap PrgEnv-intel PrgEnv-$COMP
|
||||
# module load cray-netcdf/4.3.3.1
|
||||
# module load cray-hdf5/1.8.14
|
||||
# module load python/2.7.10
|
||||
depends_on('hdf5')
|
||||
depends_on('mxml')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure_args = ["--prefix=%s" % prefix,
|
||||
"--with-mxml=%s" % spec['mxml'].prefix,
|
||||
"--with-hdf5=%s" % spec['hdf5'].prefix,
|
||||
"--with-netcdf=%s" % os.environ["NETCDF_DIR"],
|
||||
"--with-infiniband=no",
|
||||
"MPICC=cc", "MPICXX=CC", "MPIFC=ftn",
|
||||
"CPPFLAGS=-DMPICH_IGNORE_CXX_SEEK"]
|
||||
|
||||
if spec.satisfies('%gcc'):
|
||||
configure_args.extend(["CC=gcc", "CXX=g++", "FC=gfortran"])
|
||||
|
||||
configure(*configure_args)
|
||||
make()
|
||||
make("install")
|
@@ -23,21 +23,24 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import sys
|
||||
|
||||
|
||||
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"
|
||||
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('2.6.1', '1032b28427d6e399af4610e78c0f087b')
|
||||
|
||||
|
||||
variant('doc', default=True, description='Install documentation')
|
||||
variant('openmp', default=False, description='Enable OpenMP support')
|
||||
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')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
@@ -49,10 +52,14 @@ def install(self, spec, prefix):
|
||||
if '+openmp' in spec:
|
||||
if spec.satisfies('%gcc'):
|
||||
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:
|
||||
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:
|
||||
make_args.extend([
|
||||
@@ -63,7 +70,7 @@ def install(self, spec, prefix):
|
||||
# whether Adol-C works as expected
|
||||
if '+tests' in spec:
|
||||
make_args.extend([
|
||||
'--enable-docexa', # Documeted examples
|
||||
'--enable-docexa', # Documeted examples
|
||||
'--enable-addexa' # Additional examples
|
||||
])
|
||||
if '+openmp' in spec:
|
||||
@@ -74,31 +81,36 @@ def install(self, spec, prefix):
|
||||
configure(*make_args)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
||||
# Copy the config.h file, as some packages might require it
|
||||
source_directory = self.stage.source_path
|
||||
config_h = join_path(source_directory,'ADOL-C','src','config.h')
|
||||
install(config_h, join_path(prefix.include,'adolc'))
|
||||
|
||||
config_h = join_path(source_directory, 'ADOL-C', 'src', 'config.h')
|
||||
install(config_h, join_path(prefix.include, 'adolc'))
|
||||
|
||||
# Install documentation to {prefix}/share
|
||||
if '+doc' in spec:
|
||||
install_tree(join_path('ADOL-C','doc'),
|
||||
join_path(prefix.share,'doc'))
|
||||
|
||||
install_tree(join_path('ADOL-C', 'doc'),
|
||||
join_path(prefix.share, 'doc'))
|
||||
|
||||
# Install examples to {prefix}/share
|
||||
if '+tests' in spec:
|
||||
install_tree(join_path('ADOL-C','examples'),
|
||||
join_path(prefix.share,'examples'))
|
||||
|
||||
install_tree(join_path('ADOL-C', 'examples'),
|
||||
join_path(prefix.share, 'examples'))
|
||||
|
||||
# Run some examples that don't require user input
|
||||
# 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_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')()
|
||||
|
||||
|
||||
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')()
|
||||
|
@@ -24,8 +24,9 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Antlr(Package):
|
||||
|
||||
|
||||
homepage = "http://www.antlr.org"
|
||||
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
|
||||
# ncap2 will not compile (this tarball is already patched).
|
||||
version('2.7.7', '914865e853fe8e1e61a9f23d045cb4ab',
|
||||
# Patched version as described above
|
||||
url='http://dust.ess.uci.edu/tmp/antlr-2.7.7.tar.gz')
|
||||
# Unpatched version
|
||||
# url='http://dust.ess.uci.edu/nco/antlr-2.7.7.tar.gz')
|
||||
# Patched version as described above
|
||||
url='http://dust.ess.uci.edu/tmp/antlr-2.7.7.tar.gz')
|
||||
# Unpatched version
|
||||
# url='http://dust.ess.uci.edu/nco/antlr-2.7.7.tar.gz')
|
||||
|
||||
variant('cxx', default=False, description='Enable ANTLR for C++')
|
||||
variant('java', default=False, description='Enable ANTLR for Java')
|
||||
variant('python', default=False, description='Enable ANTLR for Python')
|
||||
variant('csharp', default=False, description='Enable ANTLR for Csharp')
|
||||
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Check for future enabling of variants
|
||||
for v in ('+java', '+python', '+csharp'):
|
||||
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 = [
|
||||
'--prefix=%s' % prefix,
|
||||
|
55
var/spack/repos/builtin/packages/ape/package.py
Normal file
55
var/spack/repos/builtin/packages/ape/package.py
Normal file
@@ -0,0 +1,55 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Ape(Package):
|
||||
"""A tool for generating atomic pseudopotentials within a Density-Functional
|
||||
Theory framework"""
|
||||
|
||||
homepage = "http://www.tddft.org/programs/APE/"
|
||||
url = "http://www.tddft.org/programs/APE/sites/default/files/ape-2.2.1.tar.gz"
|
||||
|
||||
version('2.2.1', 'ab81da85bd749c0c136af088c7f9ad58')
|
||||
|
||||
depends_on('gsl')
|
||||
depends_on('libxc')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
args = []
|
||||
args.extend([
|
||||
'--prefix=%s' % prefix,
|
||||
'--with-gsl-prefix=%s' % spec['gsl'].prefix,
|
||||
'--with-libxc-prefix=%s' % spec['libxc'].prefix
|
||||
])
|
||||
|
||||
if spec.satisfies('%clang') or spec.satisfies('%gcc'):
|
||||
args.extend([
|
||||
'FCFLAGS=-O2 -ffree-line-length-none'
|
||||
])
|
||||
|
||||
configure(*args)
|
||||
make()
|
||||
make('install')
|
@@ -25,6 +25,7 @@
|
||||
from spack import *
|
||||
from spack.util.environment import *
|
||||
|
||||
|
||||
class Apex(Package):
|
||||
homepage = "http://github.com/khuck/xpress-apex"
|
||||
url = "http://github.com/khuck/xpress-apex/archive/v0.1.tar.gz"
|
||||
@@ -33,23 +34,23 @@ class Apex(Package):
|
||||
|
||||
depends_on("binutils+libiberty")
|
||||
depends_on("boost@1.54:")
|
||||
depends_on("cmake@2.8.12:")
|
||||
depends_on('cmake@2.8.12:', type='build')
|
||||
depends_on("activeharmony@4.5:")
|
||||
depends_on("ompt-openmp")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
path=get_path("PATH")
|
||||
path = get_path("PATH")
|
||||
path.remove(spec["binutils"].prefix.bin)
|
||||
path_set("PATH", path)
|
||||
with working_dir("build", create=True):
|
||||
cmake('-DBOOST_ROOT=%s' % spec['boost'].prefix,
|
||||
'-DUSE_BFD=TRUE',
|
||||
'-DBFD_ROOT=%s' % spec['binutils'].prefix,
|
||||
'-DUSE_ACTIVEHARMONY=TRUE',
|
||||
'-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
|
||||
'-DUSE_OMPT=TRUE',
|
||||
'-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
|
||||
'..', *std_cmake_args)
|
||||
'-DUSE_BFD=TRUE',
|
||||
'-DBFD_ROOT=%s' % spec['binutils'].prefix,
|
||||
'-DUSE_ACTIVEHARMONY=TRUE',
|
||||
'-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
|
||||
'-DUSE_OMPT=TRUE',
|
||||
'-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
|
||||
'..', *std_cmake_args)
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class AprUtil(Package):
|
||||
"""Apache Portable Runtime Utility"""
|
||||
homepage = 'https://apr.apache.org/'
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Apr(Package):
|
||||
"""Apache portable runtime."""
|
||||
homepage = 'https://apr.apache.org/'
|
||||
|
69
var/spack/repos/builtin/packages/armadillo/package.py
Normal file
69
var/spack/repos/builtin/packages/armadillo/package.py
Normal file
@@ -0,0 +1,69 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Armadillo(Package):
|
||||
"""Armadillo is a high quality linear algebra library (matrix maths)
|
||||
for the C++ language, aiming towards a good balance between speed and
|
||||
ease of use."""
|
||||
|
||||
homepage = "http://arma.sourceforge.net/"
|
||||
url = "http://sourceforge.net/projects/arma/files/armadillo-7.200.1.tar.xz"
|
||||
|
||||
version('7.200.2', 'b21585372d67a8876117fd515d8cf0a2')
|
||||
version('7.200.1', 'ed86d6df0058979e107502e1fe3e469e')
|
||||
|
||||
variant('hdf5', default=False, description='Include HDF5 support')
|
||||
|
||||
depends_on('cmake@2.8:', type='build')
|
||||
depends_on('arpack-ng') # old arpack causes undefined symbols
|
||||
depends_on('blas')
|
||||
depends_on('lapack')
|
||||
depends_on('superlu@5.2:')
|
||||
depends_on('hdf5', when='+hdf5')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake_args = [
|
||||
# ARPACK support
|
||||
'-DARPACK_LIBRARY={0}/libarpack.{1}'.format(
|
||||
spec['arpack-ng'].prefix.lib, dso_suffix),
|
||||
# BLAS support
|
||||
'-DBLAS_LIBRARY={0}'.format(spec['blas'].blas_shared_lib),
|
||||
# LAPACK support
|
||||
'-DLAPACK_LIBRARY={0}'.format(spec['lapack'].lapack_shared_lib),
|
||||
# SuperLU support
|
||||
'-DSuperLU_INCLUDE_DIR={0}'.format(spec['superlu'].prefix.include),
|
||||
'-DSuperLU_LIBRARY={0}/libsuperlu.a'.format(
|
||||
spec['superlu'].prefix.lib64),
|
||||
# HDF5 support
|
||||
'-DDETECT_HDF5={0}'.format('ON' if '+hdf5' in spec else 'OFF')
|
||||
]
|
||||
|
||||
cmake_args.extend(std_cmake_args)
|
||||
cmake('.', *cmake_args)
|
||||
|
||||
make()
|
||||
make('install')
|
@@ -0,0 +1,24 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 607d221..50426c3 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -389,3 +389,19 @@ target_link_libraries(bug_1323 arpack ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
|
||||
add_test(bug_1323 Tests/bug_1323)
|
||||
|
||||
add_dependencies(check dnsimp_test bug_1315_single bug_1315_double bug_1323)
|
||||
+
|
||||
+############################
|
||||
+# install
|
||||
+############################
|
||||
+# 'make install' to the correct location
|
||||
+install(TARGETS arpack
|
||||
+ ARCHIVE DESTINATION lib
|
||||
+ LIBRARY DESTINATION lib
|
||||
+ RUNTIME DESTINATION bin)
|
||||
+
|
||||
+if (MPI)
|
||||
+ install(TARGETS parpack
|
||||
+ ARCHIVE DESTINATION lib
|
||||
+ LIBRARY DESTINATION lib
|
||||
+ RUNTIME DESTINATION bin)
|
||||
+endif ()
|
@@ -27,7 +27,8 @@
|
||||
|
||||
class ArpackNg(Package):
|
||||
"""
|
||||
ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.
|
||||
ARPACK-NG is a collection of Fortran77 subroutines designed to solve large
|
||||
scale eigenvalue problems.
|
||||
|
||||
Important Features:
|
||||
|
||||
@@ -38,43 +39,85 @@ class ArpackNg(Package):
|
||||
Generalized Problems.
|
||||
* Routines for Banded Matrices - Standard or Generalized Problems.
|
||||
* Routines for The Singular Value Decomposition.
|
||||
* Example driver routines that may be used as templates to implement numerous
|
||||
Shift-Invert strategies for all problem types, data types and precision.
|
||||
* Example driver routines that may be used as templates to implement
|
||||
numerous Shift-Invert strategies for all problem types, data types and
|
||||
precision.
|
||||
|
||||
This project is a joint project between Debian, Octave and Scilab in order to
|
||||
provide a common and maintained version of arpack.
|
||||
This project is a joint project between Debian, Octave and Scilab in order
|
||||
to provide a common and maintained version of arpack.
|
||||
|
||||
Indeed, no single release has been published by Rice university for the last
|
||||
few years and since many software (Octave, Scilab, R, Matlab...) forked it and
|
||||
implemented their own modifications, arpack-ng aims to tackle this by providing
|
||||
a common repository and maintained versions.
|
||||
Indeed, no single release has been published by Rice university for the
|
||||
last few years and since many software (Octave, Scilab, R, Matlab...)
|
||||
forked it and implemented their own modifications, arpack-ng aims to tackle
|
||||
this by providing a common repository and maintained versions.
|
||||
|
||||
arpack-ng is replacing arpack almost everywhere.
|
||||
"""
|
||||
homepage = 'https://github.com/opencollab/arpack-ng'
|
||||
url = 'https://github.com/opencollab/arpack-ng/archive/3.3.0.tar.gz'
|
||||
|
||||
version('3.4.0', 'ae9ca13f2143a7ea280cb0e2fd4bfae4')
|
||||
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')
|
||||
|
||||
# The function pdlamch10 does not set the return variable. This is fixed upstream
|
||||
# The function pdlamch10 does not set the return variable.
|
||||
# This is fixed upstream
|
||||
# see https://github.com/opencollab/arpack-ng/issues/34
|
||||
patch('pdlamch10.patch', when='@3.3:')
|
||||
patch('pdlamch10.patch', when='@3.3.0')
|
||||
|
||||
patch('make_install.patch', when='@3.4.0')
|
||||
patch('parpack_cmake.patch', when='@3.4.0')
|
||||
|
||||
depends_on('blas')
|
||||
depends_on('lapack')
|
||||
depends_on('automake')
|
||||
depends_on('autoconf')
|
||||
depends_on('libtool@2.4.2:')
|
||||
depends_on('automake', when='@3.3.0', type='build')
|
||||
depends_on('autoconf', when='@3.3.0', type='build')
|
||||
depends_on('libtool@2.4.2:', when='@3.3.0', type='build')
|
||||
depends_on('cmake@2.8.6:', when='@3.4.0:', type='build')
|
||||
|
||||
depends_on('mpi', when='+mpi')
|
||||
|
||||
@when('@3.4.0:')
|
||||
def install(self, spec, prefix):
|
||||
|
||||
options = ['-DEXAMPLES=ON']
|
||||
options.extend(std_cmake_args)
|
||||
options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
|
||||
|
||||
# Make sure we use Spack's blas/lapack:
|
||||
options.extend([
|
||||
'-DLAPACK_FOUND=true',
|
||||
'-DLAPACK_INCLUDE_DIRS=%s' % spec['lapack'].prefix.include,
|
||||
'-DLAPACK_LIBRARIES=%s' % (
|
||||
spec['lapack'].lapack_shared_lib if '+shared' in spec else
|
||||
spec['lapack'].lapack_static_lib),
|
||||
'-DBLAS_FOUND=true',
|
||||
'-DBLAS_INCLUDE_DIRS=%s' % spec['blas'].prefix.include,
|
||||
'-DBLAS_LIBRARIES=%s' % (
|
||||
spec['blas'].blas_shared_lib if '+shared' in spec else
|
||||
spec['blas'].blas_static_lib)
|
||||
])
|
||||
|
||||
if '+mpi' in spec:
|
||||
options.append('-DMPI=ON')
|
||||
|
||||
# TODO: -DINTERFACE64=ON
|
||||
|
||||
if '+shared' in spec:
|
||||
options.append('-DBUILD_SHARED_LIBS=ON')
|
||||
|
||||
cmake('.', *options)
|
||||
make()
|
||||
if self.run_tests:
|
||||
make('test')
|
||||
make('install')
|
||||
|
||||
@when('@3.3.0')
|
||||
def install(self, spec, prefix):
|
||||
# Apparently autotools are not bootstrapped
|
||||
# TODO: switch to use the CMake build in the next version
|
||||
# rather than bootstrapping.
|
||||
which('libtoolize')()
|
||||
bootstrap = Executable('./bootstrap')
|
||||
|
||||
@@ -83,13 +126,26 @@ def install(self, spec, prefix):
|
||||
if '+mpi' in spec:
|
||||
options.extend([
|
||||
'--enable-mpi',
|
||||
'F77=mpif77' #FIXME: avoid hardcoding MPI wrapper names
|
||||
'F77=%s' % spec['mpi'].mpif77
|
||||
])
|
||||
|
||||
if '~shared' in spec:
|
||||
options.append('--enable-shared=no')
|
||||
if '+shared' in spec:
|
||||
options.extend([
|
||||
'--with-blas=%s' % to_link_flags(
|
||||
spec['blas'].blas_shared_lib),
|
||||
'--with-lapack=%s' % to_link_flags(
|
||||
spec['lapack'].lapack_shared_lib)
|
||||
])
|
||||
else:
|
||||
options.extend([
|
||||
'--with-blas=%s' % spec['blas'].blas_static_lib,
|
||||
'--with-lapack=%s' % spec['lapack'].lapack_static_lib,
|
||||
'--enable-shared=no'
|
||||
])
|
||||
|
||||
bootstrap()
|
||||
configure(*options)
|
||||
make()
|
||||
if self.run_tests:
|
||||
make('check')
|
||||
make('install')
|
||||
|
@@ -0,0 +1,18 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 607d221..345b7fc 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -113,11 +113,12 @@ set_target_properties(arpack PROPERTIES OUTPUT_NAME arpack${LIBSUFFIX})
|
||||
|
||||
if (MPI)
|
||||
# add_library(parpack SHARED
|
||||
- add_library(parpack
|
||||
+ add_library(parpack
|
||||
${parpacksrc_STAT_SRCS}
|
||||
${parpackutil_STAT_SRCS})
|
||||
|
||||
target_link_libraries(parpack ${MPI_Fortran_LIBRARIES})
|
||||
+ target_link_libraries(parpack arpack)
|
||||
set_target_properties(parpack PROPERTIES OUTPUT_NAME parpack${LIBSUFFIX})
|
||||
endif ()
|
||||
|
@@ -24,12 +24,12 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import os
|
||||
import shutil
|
||||
|
||||
|
||||
class Arpack(Package):
|
||||
"""A collection of Fortran77 subroutines designed to solve large scale
|
||||
eigenvalue problems.
|
||||
"""
|
||||
eigenvalue problems."""
|
||||
|
||||
homepage = "http://www.caam.rice.edu/software/ARPACK/"
|
||||
url = "http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz"
|
||||
|
||||
@@ -39,27 +39,35 @@ class Arpack(Package):
|
||||
depends_on('lapack')
|
||||
|
||||
def patch(self):
|
||||
# Filter the cray makefile to make a spack one.
|
||||
shutil.move('ARMAKES/ARmake.CRAY', 'ARmake.inc')
|
||||
makefile = FileFilter('ARmake.inc')
|
||||
|
||||
# Be sure to use Spack F77 wrapper
|
||||
makefile.filter('^FC.*', 'FC = f77')
|
||||
makefile.filter('^FFLAGS.*', 'FFLAGS = -O2 -g')
|
||||
# Section 1: Paths and Libraries
|
||||
|
||||
# Set up some variables.
|
||||
makefile.filter('^PLAT.*', 'PLAT = ')
|
||||
makefile.filter('^home.*', 'home = %s' % os.getcwd())
|
||||
makefile.filter('^BLASdir.*', 'BLASdir = %s' % self.spec['blas'].prefix)
|
||||
makefile.filter('^LAPACKdir.*', 'LAPACKdir = %s' % self.spec['lapack'].prefix)
|
||||
# Change the build directory
|
||||
makefile.filter('^home.*', 'home = %s' % os.getcwd())
|
||||
|
||||
# build the library in our own prefix.
|
||||
makefile.filter('^ARPACKLIB.*', 'ARPACKLIB = %s/libarpack.a' % os.getcwd())
|
||||
# Use external BLAS/LAPACK
|
||||
makefile.filter('^BLASdir.*',
|
||||
'BLASdir = %s' % self.spec['blas'].prefix)
|
||||
makefile.filter('^LAPACKdir.*',
|
||||
'LAPACKdir = %s' % self.spec['lapack'].prefix)
|
||||
|
||||
# Do not include the platform in the library name
|
||||
makefile.filter('^PLAT.*', 'PLAT = ')
|
||||
makefile.filter('^ARPACKLIB.*', 'ARPACKLIB = $(home)/libarpack.a')
|
||||
|
||||
# Section 2: Compilers
|
||||
|
||||
# Be sure to use the Spack compiler wrapper
|
||||
makefile.filter('^FC.*', 'FC = {0}'.format(os.environ['F77']))
|
||||
makefile.filter('^FFLAGS.*', 'FFLAGS = -O2 -g -fPIC')
|
||||
|
||||
if not which('ranlib'):
|
||||
makefile.filter('^RANLIB.*', 'RANLIB = touch')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
with working_dir('SRC'):
|
||||
make('all')
|
||||
|
||||
mkdirp(prefix.lib)
|
||||
mkdir(prefix.lib)
|
||||
install('libarpack.a', prefix.lib)
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Asciidoc(Package):
|
||||
""" A presentable text document format for writing articles, UNIX man
|
||||
pages and other small to medium sized documents."""
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Atk(Package):
|
||||
"""ATK provides the set of accessibility interfaces that are
|
||||
implemented by other toolkits and applications. Using the ATK
|
||||
@@ -32,9 +33,16 @@ class Atk(Package):
|
||||
homepage = "https://developer.gnome.org/atk/"
|
||||
url = "http://ftp.gnome.org/pub/gnome/sources/atk/2.14/atk-2.14.0.tar.xz"
|
||||
|
||||
version('2.20.0', '5187b0972f4d3905f285540b31395e20')
|
||||
version('2.14.0', 'ecb7ca8469a5650581b1227d78051b8b')
|
||||
|
||||
depends_on("glib")
|
||||
depends_on('glib')
|
||||
depends_on('pkg-config', type='build')
|
||||
|
||||
def url_for_version(self, version):
|
||||
"""Handle atk's version-based custom URLs."""
|
||||
url = 'http://ftp.gnome.org/pub/gnome/sources/atk'
|
||||
return 'url+/%s/atk-%s.tar.xz' % (version.up_to(2), version)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
|
@@ -23,20 +23,24 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
from spack.package_test import *
|
||||
from spack.util.executable import Executable
|
||||
import os.path
|
||||
|
||||
|
||||
class Atlas(Package):
|
||||
"""
|
||||
Automatically Tuned Linear Algebra Software, generic shared ATLAS is an approach for the automatic generation and
|
||||
optimization of numerical software. Currently ATLAS supplies optimized versions for the complete set of linear
|
||||
algebra kernels known as the Basic Linear Algebra Subroutines (BLAS), and a subset of the linear algebra routines
|
||||
in the LAPACK library.
|
||||
"""Automatically Tuned Linear Algebra Software, generic shared ATLAS is an
|
||||
approach for the automatic generation and optimization of numerical
|
||||
software. Currently ATLAS supplies optimized versions for the complete set
|
||||
of linear algebra kernels known as the Basic Linear Algebra Subroutines
|
||||
(BLAS), and a subset of the linear algebra routines in the LAPACK library.
|
||||
"""
|
||||
homepage = "http://math-atlas.sourceforge.net/"
|
||||
|
||||
version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da',
|
||||
url='http://downloads.sourceforge.net/project/math-atlas/Stable/3.10.2/atlas3.10.2.tar.bz2', preferred=True)
|
||||
url='https://sourceforge.net/projects/math-atlas/files/Stable/3.10.2/atlas3.10.2.tar.bz2', preferred=True)
|
||||
# not all packages (e.g. Trilinos@12.6.3) stopped using deprecated in 3.6.0
|
||||
# Lapack routines. Stick with 3.5.0 until this is fixed.
|
||||
resource(name='lapack',
|
||||
url='http://www.netlib.org/lapack/lapack-3.5.0.tgz',
|
||||
md5='b1d3e3e425b2e44a06760ff173104bdf',
|
||||
@@ -44,7 +48,7 @@ class Atlas(Package):
|
||||
when='@3:')
|
||||
|
||||
version('3.11.34', '0b6c5389c095c4c8785fd0f724ec6825',
|
||||
url='http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.11.34/atlas3.11.34.tar.bz2/download')
|
||||
url='http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.11.34/atlas3.11.34.tar.bz2')
|
||||
|
||||
variant('shared', default=True, description='Builds shared library')
|
||||
|
||||
@@ -66,9 +70,24 @@ def install(self, spec, prefix):
|
||||
|
||||
options = []
|
||||
if '+shared' in spec:
|
||||
options.append('--shared')
|
||||
options.extend([
|
||||
'--shared'
|
||||
])
|
||||
# TODO: for non GNU add '-Fa', 'alg', '-fPIC' ?
|
||||
|
||||
# Lapack resource
|
||||
# configure for 64-bit build
|
||||
options.extend([
|
||||
'-b', '64'
|
||||
])
|
||||
|
||||
# set compilers:
|
||||
options.extend([
|
||||
'-C', 'ic', spack_cc,
|
||||
'-C', 'if', spack_f77
|
||||
])
|
||||
|
||||
# Lapack resource to provide full lapack build. Note that
|
||||
# ATLAS only provides a few LAPACK routines natively.
|
||||
lapack_stage = self.stage[1]
|
||||
lapack_tarfile = os.path.basename(lapack_stage.fetcher.url)
|
||||
lapack_tarfile_path = join_path(lapack_stage.path, lapack_tarfile)
|
||||
@@ -81,4 +100,35 @@ def install(self, spec, prefix):
|
||||
make('check')
|
||||
make('ptcheck')
|
||||
make('time')
|
||||
if '+shared' in spec:
|
||||
with working_dir('lib'):
|
||||
make('shared_all')
|
||||
|
||||
make("install")
|
||||
self.install_test()
|
||||
|
||||
def setup_dependent_package(self, module, dspec):
|
||||
# libsatlas.[so,dylib,dll ] contains all serial APIs (serial lapack,
|
||||
# serial BLAS), and all ATLAS symbols needed to support them. Whereas
|
||||
# libtatlas.[so,dylib,dll ] is parallel (multithreaded) version.
|
||||
name = 'libsatlas.%s' % dso_suffix
|
||||
libdir = find_library_path(name,
|
||||
self.prefix.lib64,
|
||||
self.prefix.lib)
|
||||
|
||||
if '+shared' in self.spec:
|
||||
self.spec.blas_shared_lib = join_path(libdir, name)
|
||||
self.spec.lapack_shared_lib = self.spec.blas_shared_lib
|
||||
|
||||
def install_test(self):
|
||||
source_file = join_path(os.path.dirname(self.module.__file__),
|
||||
'test_cblas_dgemm.c')
|
||||
blessed_file = join_path(os.path.dirname(self.module.__file__),
|
||||
'test_cblas_dgemm.output')
|
||||
|
||||
include_flags = ["-I%s" % join_path(self.spec.prefix, "include")]
|
||||
link_flags = ["-L%s" % join_path(self.spec.prefix, "lib"),
|
||||
"-lsatlas"]
|
||||
|
||||
output = compile_c_and_execute(source_file, include_flags, link_flags)
|
||||
compare_output_file(output, blessed_file)
|
||||
|
49
var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c
Normal file
49
var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c
Normal file
@@ -0,0 +1,49 @@
|
||||
#include <cblas.h>
|
||||
#include <stdio.h>
|
||||
|
||||
double m[] = {
|
||||
3, 1, 3,
|
||||
1, 5, 9,
|
||||
2, 6, 5
|
||||
};
|
||||
|
||||
double x[] = {
|
||||
-1, 3, -3
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void dgesv_(int *n, int *nrhs, double *a, int *lda,
|
||||
int *ipivot, double *b, int *ldb, int *info);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(void) {
|
||||
int i;
|
||||
// blas:
|
||||
double A[6] = {1.0, 2.0, 1.0, -3.0, 4.0, -1.0};
|
||||
double B[6] = {1.0, 2.0, 1.0, -3.0, 4.0, -1.0};
|
||||
double C[9] = {.5, .5, .5, .5, .5, .5, .5, .5, .5};
|
||||
cblas_dgemm(CblasColMajor, CblasNoTrans, CblasTrans,
|
||||
3, 3, 2, 1, A, 3, B, 3, 2, C, 3);
|
||||
for (i = 0; i < 9; i++)
|
||||
printf("%f\n", C[i]);
|
||||
|
||||
// lapack:
|
||||
int ipiv[3];
|
||||
int j;
|
||||
int info;
|
||||
int n = 1;
|
||||
int nrhs = 1;
|
||||
int lda = 3;
|
||||
int ldb = 3;
|
||||
dgesv_(&n,&nrhs, &m[0], &lda, ipiv, &x[0], &ldb, &info);
|
||||
for (i=0; i<3; ++i)
|
||||
printf("%5.1f\n", x[i]);
|
||||
|
||||
return 0;
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
11.000000
|
||||
-9.000000
|
||||
5.000000
|
||||
-9.000000
|
||||
21.000000
|
||||
-1.000000
|
||||
5.000000
|
||||
-1.000000
|
||||
3.000000
|
||||
-0.3
|
||||
3.0
|
||||
-3.0
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Atop(Package):
|
||||
"""Atop is an ASCII full-screen performance monitor for Linux"""
|
||||
homepage = "http://www.atoptool.nl/index.php"
|
||||
@@ -37,4 +38,4 @@ def install(self, spec, prefix):
|
||||
install("atop", join_path(prefix.bin, "atop"))
|
||||
mkdirp(join_path(prefix.man, "man1"))
|
||||
install(join_path("man", "atop.1"),
|
||||
join_path(prefix.man, "man1", "atop.1"))
|
||||
join_path(prefix.man, "man1", "atop.1"))
|
||||
|
@@ -24,18 +24,36 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Autoconf(Package):
|
||||
"""Autoconf -- system configuration part of autotools"""
|
||||
homepage = "https://www.gnu.org/software/autoconf/"
|
||||
url = "http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz"
|
||||
"""
|
||||
Autoconf -- system configuration part of autotools
|
||||
"""
|
||||
homepage = 'https://www.gnu.org/software/autoconf/'
|
||||
url = 'http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz'
|
||||
|
||||
version('2.69', '82d05e03b93e45f5a39b828dc9c6c29b')
|
||||
version('2.62', '6c1f3b3734999035d77da5024aab4fbd')
|
||||
|
||||
depends_on("m4")
|
||||
depends_on('m4', type='build')
|
||||
|
||||
def _make_executable(self, name):
|
||||
return Executable(join_path(self.prefix.bin, name))
|
||||
|
||||
def setup_dependent_package(self, module, dependent_spec):
|
||||
# Autoconf is very likely to be a build dependency,
|
||||
# so we add the tools it provides to the dependent module
|
||||
executables = ['autoconf',
|
||||
'autoheader',
|
||||
'autom4te',
|
||||
'autoreconf',
|
||||
'autoscan',
|
||||
'autoupdate',
|
||||
'ifnames']
|
||||
for name in executables:
|
||||
setattr(module, name, self._make_executable(name))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Automaded(Package):
|
||||
"""AutomaDeD (Automata-based Debugging for Dissimilar parallel
|
||||
tasks) is a tool for automatic diagnosis of performance and
|
||||
@@ -44,6 +45,7 @@ class Automaded(Package):
|
||||
depends_on('mpi')
|
||||
depends_on('boost')
|
||||
depends_on('callpath')
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake("-DSTATE_TRACKER_WITH_CALLPATH=ON", *std_cmake_args)
|
||||
|
@@ -24,10 +24,13 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Automake(Package):
|
||||
"""Automake -- make file builder part of autotools"""
|
||||
homepage = "http://www.gnu.org/software/automake/"
|
||||
url = "http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz"
|
||||
"""
|
||||
Automake -- make file builder part of autotools
|
||||
"""
|
||||
homepage = 'http://www.gnu.org/software/automake/'
|
||||
url = 'http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz'
|
||||
|
||||
version('1.15', '716946a105ca228ab545fc37a70df3a3')
|
||||
version('1.14.1', 'd052a3e884631b9c7892f2efce542d75')
|
||||
@@ -35,8 +38,17 @@ class Automake(Package):
|
||||
|
||||
depends_on('autoconf')
|
||||
|
||||
def _make_executable(self, name):
|
||||
return Executable(join_path(self.prefix.bin, name))
|
||||
|
||||
def setup_dependent_package(self, module, dependent_spec):
|
||||
# Automake is very likely to be a build dependency,
|
||||
# so we add the tools it provides to the dependent module
|
||||
executables = ['aclocal', 'automake']
|
||||
for name in executables:
|
||||
setattr(module, name, self._make_executable(name))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bash(Package):
|
||||
"""The GNU Project's Bourne Again SHell."""
|
||||
|
||||
|
@@ -24,18 +24,22 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bbcp(Package):
|
||||
"""Securely and quickly copy data from source to target"""
|
||||
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):
|
||||
cd("src")
|
||||
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")
|
||||
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
|
||||
mkdirp(destination_path)
|
||||
install(bbcp_executable_path, destination_path)
|
||||
|
43
var/spack/repos/builtin/packages/bcftools/package.py
Normal file
43
var/spack/repos/builtin/packages/bcftools/package.py
Normal file
@@ -0,0 +1,43 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bcftools(Package):
|
||||
"""BCFtools is a set of utilities that manipulate variant calls in the
|
||||
Variant Call Format (VCF) and its binary counterpart BCF. All
|
||||
commands work transparently with both VCFs and BCFs, both
|
||||
uncompressed and BGZF-compressed."""
|
||||
|
||||
homepage = "http://samtools.github.io/bcftools/"
|
||||
url = "https://github.com/samtools/bcftools/releases/download/1.3.1/bcftools-1.3.1.tar.bz2"
|
||||
|
||||
version('1.3.1', '575001e9fca37cab0c7a7287ad4b1cdb')
|
||||
|
||||
depends_on('zlib')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make("prefix=%s" % prefix, "all")
|
||||
make("prefix=%s" % prefix, "install")
|
53
var/spack/repos/builtin/packages/bdw-gc/package.py
Normal file
53
var/spack/repos/builtin/packages/bdw-gc/package.py
Normal file
@@ -0,0 +1,53 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class BdwGc(Package):
|
||||
"""The Boehm-Demers-Weiser conservative garbage collector is a garbage
|
||||
collecting replacement for C malloc or C++ new."""
|
||||
|
||||
homepage = "http://www.hboehm.info/gc/"
|
||||
url = "http://www.hboehm.info/gc/gc_source/gc-7.4.4.tar.gz"
|
||||
|
||||
version('7.4.4', '96d18b0448a841c88d56e4ab3d180297')
|
||||
|
||||
variant('libatomic-ops', default=True,
|
||||
description='Use external libatomic-ops')
|
||||
|
||||
depends_on('libatomic-ops', when='+libatomic-ops')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
config_args = [
|
||||
'--prefix={0}'.format(prefix),
|
||||
'--with-libatomic-ops={0}'.format(
|
||||
'yes' if '+libatomic-ops' in spec else 'no')
|
||||
]
|
||||
|
||||
configure(*config_args)
|
||||
|
||||
make()
|
||||
make('check')
|
||||
make('install')
|
@@ -24,14 +24,16 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
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"
|
||||
url = "https://github.com/rizsotto/Bear/archive/2.0.4.tar.gz"
|
||||
|
||||
version('2.0.4', 'fd8afb5e8e18f8737ba06f90bd77d011')
|
||||
|
||||
depends_on("cmake")
|
||||
depends_on('cmake', type='build')
|
||||
depends_on("python")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
50
var/spack/repos/builtin/packages/bertini/package.py
Normal file
50
var/spack/repos/builtin/packages/bertini/package.py
Normal file
@@ -0,0 +1,50 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bertini(Package):
|
||||
"""Bertini is a general-purpose solver, written in C, that was created
|
||||
for research about polynomial continuation. It solves for the numerical
|
||||
solution of systems of polynomial equations using homotopy continuation."""
|
||||
|
||||
homepage = "https://bertini.nd.edu/"
|
||||
url = "https://bertini.nd.edu/BertiniSource_v1.5.tar.gz"
|
||||
|
||||
version('1.5', 'e3f6cc6e7f9a0cf1d73185e8671af707')
|
||||
|
||||
variant('mpi', default=True, description='Compile in parallel')
|
||||
|
||||
depends_on('flex', type='build')
|
||||
depends_on('bison', type='build')
|
||||
depends_on('gmp')
|
||||
depends_on('mpfr')
|
||||
depends_on('mpi', when='+mpi')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix=%s' % prefix)
|
||||
|
||||
make()
|
||||
make("install")
|
@@ -25,10 +25,11 @@
|
||||
from spack import *
|
||||
from glob import glob
|
||||
|
||||
|
||||
class Bib2xhtml(Package):
|
||||
"""bib2xhtml is a program that converts BibTeX files into HTML."""
|
||||
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')
|
||||
|
||||
|
@@ -24,28 +24,33 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Binutils(Package):
|
||||
"""GNU binutils, which contain the linker, assembler, objdump and others"""
|
||||
|
||||
homepage = "http://www.gnu.org/software/binutils/"
|
||||
url = "https://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2"
|
||||
|
||||
url="https://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2"
|
||||
|
||||
# 2.26 is incompatible with py-pillow build for some reason.
|
||||
version('2.26', '64146a0faa3b411ba774f47d41de239f')
|
||||
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66')
|
||||
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66', preferred=True)
|
||||
version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b')
|
||||
version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e')
|
||||
version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764')
|
||||
|
||||
depends_on('m4')
|
||||
depends_on('flex')
|
||||
depends_on('bison')
|
||||
depends_on('m4', type='build')
|
||||
depends_on('flex', type='build')
|
||||
depends_on('bison', type='build')
|
||||
|
||||
# Add a patch that creates binutils libiberty_pic.a which is preferred by OpenSpeedShop and cbtf-krell
|
||||
variant('krellpatch', default=False, description="build with openspeedshop based patch.")
|
||||
# Add a patch that creates binutils libiberty_pic.a which is preferred by
|
||||
# OpenSpeedShop and cbtf-krell
|
||||
variant('krellpatch', default=False,
|
||||
description="build with openspeedshop based patch.")
|
||||
variant('gold', default=True, description="build the gold linker")
|
||||
patch('binutilskrell-2.24.patch', when='@2.24+krellpatch')
|
||||
|
||||
patch('cr16.patch')
|
||||
patch('update_symbol-2.26.patch', when='@2.26')
|
||||
|
||||
variant('libiberty', default=False, description='Also install libiberty.')
|
||||
|
||||
|
@@ -0,0 +1,104 @@
|
||||
From 544ddf9322b1b83982e5cb84a54d084ee7e718ea Mon Sep 17 00:00:00 2001
|
||||
From: H.J. Lu <hjl.tools@gmail.com>
|
||||
Date: Wed, 24 Feb 2016 15:13:35 -0800
|
||||
Subject: [PATCH] Update symbol version for symbol from linker script
|
||||
|
||||
We need to update symbol version for symbols from linker script.
|
||||
|
||||
Backport from master
|
||||
|
||||
bfd/
|
||||
|
||||
PR ld/19698
|
||||
* elflink.c (bfd_elf_record_link_assignment): Set versioned if
|
||||
symbol version is unknown.
|
||||
|
||||
ld/
|
||||
|
||||
PR ld/19698
|
||||
* testsuite/ld-elf/pr19698.d: New file.
|
||||
* testsuite/ld-elf/pr19698.s: Likewise.
|
||||
* testsuite/ld-elf/pr19698.t: Likewise.
|
||||
---
|
||||
bfd/ChangeLog | 9 +++++++++
|
||||
bfd/elflink.c | 13 +++++++++++++
|
||||
ld/ChangeLog | 10 ++++++++++
|
||||
ld/testsuite/ld-elf/pr19698.d | 10 ++++++++++
|
||||
ld/testsuite/ld-elf/pr19698.s | 5 +++++
|
||||
ld/testsuite/ld-elf/pr19698.t | 11 +++++++++++
|
||||
6 files changed, 58 insertions(+), 0 deletions(-)
|
||||
create mode 100644 ld/testsuite/ld-elf/pr19698.d
|
||||
create mode 100644 ld/testsuite/ld-elf/pr19698.s
|
||||
create mode 100644 ld/testsuite/ld-elf/pr19698.t
|
||||
|
||||
diff --git a/bfd/elflink.c b/bfd/elflink.c
|
||||
index ae8d148..8fcaadd 100644
|
||||
--- a/bfd/elflink.c
|
||||
+++ b/bfd/elflink.c
|
||||
@@ -555,6 +555,19 @@ bfd_elf_record_link_assignment (bfd *output_bfd,
|
||||
if (h == NULL)
|
||||
return provide;
|
||||
|
||||
+ if (h->versioned == unknown)
|
||||
+ {
|
||||
+ /* Set versioned if symbol version is unknown. */
|
||||
+ char *version = strrchr (name, ELF_VER_CHR);
|
||||
+ if (version)
|
||||
+ {
|
||||
+ if (version > name && version[-1] != ELF_VER_CHR)
|
||||
+ h->versioned = versioned_hidden;
|
||||
+ else
|
||||
+ h->versioned = versioned;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
switch (h->root.type)
|
||||
{
|
||||
case bfd_link_hash_defined:
|
||||
diff --git a/ld/testsuite/ld-elf/pr19698.d b/ld/testsuite/ld-elf/pr19698.d
|
||||
new file mode 100644
|
||||
index 0000000..a39f67a
|
||||
--- /dev/null
|
||||
+++ b/ld/testsuite/ld-elf/pr19698.d
|
||||
@@ -0,0 +1,10 @@
|
||||
+#ld: -shared $srcdir/$subdir/pr19698.t
|
||||
+#readelf : --dyn-syms --wide
|
||||
+#target: *-*-linux* *-*-gnu* *-*-solaris*
|
||||
+
|
||||
+Symbol table '\.dynsym' contains [0-9]+ entries:
|
||||
+#...
|
||||
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +foo@VERS.1
|
||||
+#...
|
||||
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +foo@@VERS.2
|
||||
+#pass
|
||||
diff --git a/ld/testsuite/ld-elf/pr19698.s b/ld/testsuite/ld-elf/pr19698.s
|
||||
new file mode 100644
|
||||
index 0000000..875dca4
|
||||
--- /dev/null
|
||||
+++ b/ld/testsuite/ld-elf/pr19698.s
|
||||
@@ -0,0 +1,5 @@
|
||||
+ .text
|
||||
+ .globl foo
|
||||
+ .type foo, %function
|
||||
+foo:
|
||||
+ .byte 0
|
||||
diff --git a/ld/testsuite/ld-elf/pr19698.t b/ld/testsuite/ld-elf/pr19698.t
|
||||
new file mode 100644
|
||||
index 0000000..09d9125
|
||||
--- /dev/null
|
||||
+++ b/ld/testsuite/ld-elf/pr19698.t
|
||||
@@ -0,0 +1,11 @@
|
||||
+"foo@VERS.1" = foo;
|
||||
+
|
||||
+VERSION {
|
||||
+VERS.2 {
|
||||
+ global:
|
||||
+ foo;
|
||||
+};
|
||||
+
|
||||
+VERS.1 {
|
||||
+};
|
||||
+}
|
||||
--
|
||||
1.7.1
|
||||
|
@@ -24,9 +24,10 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bison(Package):
|
||||
"""Bison is a general-purpose parser generator that converts
|
||||
an annotated context-free grammar into a deterministic LR or
|
||||
"""Bison is a general-purpose parser generator that converts
|
||||
an annotated context-free grammar into a deterministic LR or
|
||||
generalized LR (GLR) parser employing LALR(1) parser tables."""
|
||||
|
||||
homepage = "http://www.gnu.org/software/bison/"
|
||||
@@ -34,7 +35,7 @@ class Bison(Package):
|
||||
|
||||
version('3.0.4', 'a586e11cd4aff49c3ff6d3b6a4c9ccf8')
|
||||
|
||||
depends_on("m4")
|
||||
depends_on("m4", type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Blitz(Package):
|
||||
"""N-dimensional arrays for C++"""
|
||||
homepage = "http://github.com/blitzpp/blitz"
|
||||
|
@@ -25,9 +25,8 @@
|
||||
from spack import *
|
||||
import spack
|
||||
import sys
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
class Boost(Package):
|
||||
"""Boost provides free peer-reviewed portable C++ source
|
||||
@@ -75,23 +74,24 @@ class Boost(Package):
|
||||
version('1.34.0', 'ed5b9291ffad776f8757a916e1726ad0')
|
||||
|
||||
default_install_libs = set(['atomic',
|
||||
'chrono',
|
||||
'date_time',
|
||||
'filesystem',
|
||||
'graph',
|
||||
'iostreams',
|
||||
'locale',
|
||||
'log',
|
||||
'math',
|
||||
'program_options',
|
||||
'random',
|
||||
'regex',
|
||||
'serialization',
|
||||
'signals',
|
||||
'system',
|
||||
'test',
|
||||
'thread',
|
||||
'wave'])
|
||||
'chrono',
|
||||
'date_time',
|
||||
'filesystem',
|
||||
'graph',
|
||||
'iostreams',
|
||||
'locale',
|
||||
'log',
|
||||
'math',
|
||||
'program_options',
|
||||
'random',
|
||||
'regex',
|
||||
'serialization',
|
||||
'signals',
|
||||
'system',
|
||||
'test',
|
||||
'thread',
|
||||
'timer',
|
||||
'wave'])
|
||||
|
||||
# mpi/python are not installed by default because they pull in many
|
||||
# dependencies and/or because there is a great deal of customization
|
||||
@@ -102,13 +102,19 @@ class Boost(Package):
|
||||
|
||||
for lib in all_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('shared', default=True, description="Additionally build shared 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('debug', default=False,
|
||||
description='Switch to the debug version of Boost')
|
||||
variant('shared', default=True,
|
||||
description="Additionally build shared 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")
|
||||
|
||||
depends_on('icu', when='+icu_support')
|
||||
depends_on('python', when='+python')
|
||||
@@ -120,15 +126,17 @@ class Boost(Package):
|
||||
patch('boost_11856.patch', when='@1.60.0%gcc@4.4.7')
|
||||
|
||||
def url_for_version(self, version):
|
||||
"""Handle Boost's weird URLs, which write the version two different ways."""
|
||||
"""
|
||||
Handle Boost's weird URLs,
|
||||
which write the version two different ways.
|
||||
"""
|
||||
parts = [str(p) for p in Version(version)]
|
||||
dots = ".".join(parts)
|
||||
underscores = "_".join(parts)
|
||||
return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (
|
||||
dots, underscores)
|
||||
return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (dots, underscores)
|
||||
|
||||
def determine_toolset(self, spec):
|
||||
if spec.satisfies("arch=darwin-x86_64"):
|
||||
if spec.satisfies("platform=darwin"):
|
||||
return 'darwin'
|
||||
|
||||
toolsets = {'g++': 'gcc',
|
||||
@@ -149,20 +157,20 @@ def determine_bootstrap_options(self, spec, withLibs, options):
|
||||
|
||||
if '+python' in spec:
|
||||
options.append('--with-python=%s' %
|
||||
join_path(spec['python'].prefix.bin, 'python'))
|
||||
join_path(spec['python'].prefix.bin, 'python'))
|
||||
|
||||
with open('user-config.jam', 'w') as f:
|
||||
compiler_wrapper = join_path(spack.build_env_path, 'c++')
|
||||
f.write("using {0} : : {1} ;\n".format(boostToolsetId,
|
||||
compiler_wrapper))
|
||||
compiler_wrapper))
|
||||
|
||||
if '+mpi' in spec:
|
||||
f.write('using mpi : %s ;\n' %
|
||||
join_path(spec['mpi'].prefix.bin, 'mpicxx'))
|
||||
join_path(spec['mpi'].prefix.bin, 'mpicxx'))
|
||||
if '+python' in spec:
|
||||
f.write('using python : %s : %s ;\n' %
|
||||
(spec['python'].version,
|
||||
join_path(spec['python'].prefix.bin, 'python')))
|
||||
(spec['python'].version,
|
||||
join_path(spec['python'].prefix.bin, 'python')))
|
||||
|
||||
def determine_b2_options(self, spec, options):
|
||||
if '+debug' in spec:
|
||||
@@ -178,8 +186,7 @@ def determine_b2_options(self, spec, options):
|
||||
'-s', 'BZIP2_INCLUDE=%s' % spec['bzip2'].prefix.include,
|
||||
'-s', 'BZIP2_LIBPATH=%s' % spec['bzip2'].prefix.lib,
|
||||
'-s', 'ZLIB_INCLUDE=%s' % spec['zlib'].prefix.include,
|
||||
'-s', 'ZLIB_LIBPATH=%s' % spec['zlib'].prefix.lib,
|
||||
])
|
||||
'-s', 'ZLIB_LIBPATH=%s' % spec['zlib'].prefix.lib])
|
||||
|
||||
linkTypes = ['static']
|
||||
if '+shared' in spec:
|
||||
@@ -191,7 +198,8 @@ def determine_b2_options(self, spec, options):
|
||||
if '+singlethreaded' in spec:
|
||||
threadingOpts.append('single')
|
||||
if not threadingOpts:
|
||||
raise RuntimeError("At least one of {singlethreaded, multithreaded} must be enabled")
|
||||
raise RuntimeError("""At least one of {singlethreaded,
|
||||
multithreaded} must be enabled""")
|
||||
|
||||
options.extend([
|
||||
'toolset=%s' % self.determine_toolset(spec),
|
||||
@@ -202,9 +210,9 @@ def determine_b2_options(self, spec, options):
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# On Darwin, Boost expects the Darwin libtool. However, one of the
|
||||
# dependencies may have pulled in Spack's GNU libtool, and these two are
|
||||
# not compatible. We thus create a symlink to Darwin's libtool and add
|
||||
# it at the beginning of PATH.
|
||||
# dependencies may have pulled in Spack's GNU libtool, and these two
|
||||
# are not compatible. We thus create a symlink to Darwin's libtool
|
||||
# and add it at the beginning of PATH.
|
||||
if sys.platform == 'darwin':
|
||||
newdir = os.path.abspath('darwin-libtool')
|
||||
mkdirp(newdir)
|
||||
@@ -217,7 +225,8 @@ def install(self, spec, prefix):
|
||||
withLibs.append(lib)
|
||||
if not withLibs:
|
||||
# if no libraries are specified for compilation, then you dont have
|
||||
# to configure/build anything, just copy over to the prefix directory.
|
||||
# to configure/build anything, just copy over to the prefix
|
||||
# directory.
|
||||
src = join_path(self.stage.source_path, 'boost')
|
||||
mkdirp(join_path(prefix, 'include'))
|
||||
dst = join_path(prefix, 'include', 'boost')
|
||||
@@ -235,6 +244,9 @@ def install(self, spec, prefix):
|
||||
withLibs.remove('chrono')
|
||||
if not spec.satisfies('@1.43.0:'):
|
||||
withLibs.remove('random')
|
||||
if '+graph' in spec and '+mpi' in spec:
|
||||
withLibs.remove('graph')
|
||||
withLibs.append('graph_parallel')
|
||||
|
||||
# to make Boost find the user-config.jam
|
||||
env['BOOST_BUILD_PATH'] = './'
|
||||
@@ -259,6 +271,7 @@ def install(self, spec, prefix):
|
||||
for threadingOpt in threadingOpts:
|
||||
b2('install', 'threading=%s' % threadingOpt, *b2_options)
|
||||
|
||||
# The shared libraries are not installed correctly on Darwin; correct this
|
||||
# The shared libraries are not installed correctly
|
||||
# on Darwin; correct this
|
||||
if (sys.platform == 'darwin') and ('+shared' in spec):
|
||||
fix_darwin_install_name(prefix.lib)
|
||||
|
@@ -24,12 +24,15 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
from glob import glob
|
||||
|
||||
|
||||
class Bowtie2(Package):
|
||||
"""Description"""
|
||||
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):
|
||||
make()
|
||||
@@ -45,4 +48,3 @@ def install(self, spec, prefix):
|
||||
# install('bowtie2-inspect',prefix.bin)
|
||||
# install('bowtie2-inspect-l',prefix.bin)
|
||||
# install('bowtie2-inspect-s',prefix.bin)
|
||||
|
||||
|
@@ -24,17 +24,19 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Boxlib(Package):
|
||||
"""BoxLib, a software framework for massively parallel
|
||||
block-structured adaptive mesh refinement (AMR) codes."""
|
||||
|
||||
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!
|
||||
version('master', git='https://ccse.lbl.gov/pub/Downloads/BoxLib.git')
|
||||
|
||||
depends_on('mpi')
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
args = std_cmake_args
|
||||
@@ -46,4 +48,3 @@ def install(self, spec, prefix):
|
||||
cmake('.', *args)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
41
var/spack/repos/builtin/packages/bpp-core/package.py
Normal file
41
var/spack/repos/builtin/packages/bpp-core/package.py
Normal file
@@ -0,0 +1,41 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class BppCore(Package):
|
||||
"""Bio++ core library."""
|
||||
|
||||
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
|
||||
url = "http://biopp.univ-montp2.fr/repos/sources/bpp-core-2.2.0.tar.gz"
|
||||
|
||||
version('2.2.0', '5789ed2ae8687d13664140cd77203477')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
43
var/spack/repos/builtin/packages/bpp-phyl/package.py
Normal file
43
var/spack/repos/builtin/packages/bpp-phyl/package.py
Normal file
@@ -0,0 +1,43 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class BppPhyl(Package):
|
||||
"""Bio++ phylogeny library."""
|
||||
|
||||
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
|
||||
url = "http://biopp.univ-montp2.fr/repos/sources/bpp-phyl-2.2.0.tar.gz"
|
||||
|
||||
version('2.2.0', '5c40667ec0bf37e0ecaba321be932770')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('bpp-core')
|
||||
depends_on('bpp-seq')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
42
var/spack/repos/builtin/packages/bpp-seq/package.py
Normal file
42
var/spack/repos/builtin/packages/bpp-seq/package.py
Normal file
@@ -0,0 +1,42 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class BppSeq(Package):
|
||||
"""Bio++ seq library."""
|
||||
|
||||
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
|
||||
url = "http://biopp.univ-montp2.fr/repos/sources/bpp-seq-2.2.0.tar.gz"
|
||||
|
||||
version('2.2.0', '44adef0ff4d5ca4e69ccf258c9270633')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('bpp-core')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
47
var/spack/repos/builtin/packages/bpp-suite/package.py
Normal file
47
var/spack/repos/builtin/packages/bpp-suite/package.py
Normal file
@@ -0,0 +1,47 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class BppSuite(Package):
|
||||
"""BppSuite is a suite of ready-to-use programs for phylogenetic and
|
||||
sequence analysis."""
|
||||
|
||||
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/BppSuite"
|
||||
url = "http://biopp.univ-montp2.fr/repos/sources/bppsuite/bppsuite-2.2.0.tar.gz"
|
||||
|
||||
version('2.2.0', 'd8b29ad7ccf5bd3a7beb701350c9e2a4')
|
||||
|
||||
# FIXME: Add dependencies if required.
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('texinfo', type='build')
|
||||
depends_on('bpp-core')
|
||||
depends_on('bpp-seq')
|
||||
depends_on('bpp-phyl')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('.', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
52
var/spack/repos/builtin/packages/bwa/package.py
Normal file
52
var/spack/repos/builtin/packages/bwa/package.py
Normal file
@@ -0,0 +1,52 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bwa(Package):
|
||||
"""Burrow-Wheeler Aligner for pairwise alignment between DNA sequences."""
|
||||
|
||||
homepage = "http://github.com/lh3/bwa"
|
||||
url = "https://github.com/lh3/bwa/releases/download/v0.7.15/bwa-0.7.15.tar.bz2"
|
||||
|
||||
version('0.7.15', 'fcf470a46a1dbe2f96a1c5b87c530554')
|
||||
|
||||
depends_on('zlib')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
filter_file(r'^INCLUDES=',
|
||||
"INCLUDES=-I%s" % spec['zlib'].prefix.include, 'Makefile')
|
||||
filter_file(r'^LIBS=', "LIBS=-L%s " % spec['zlib'].prefix.lib,
|
||||
'Makefile')
|
||||
make()
|
||||
|
||||
mkdirp(prefix.bin)
|
||||
install('bwa', join_path(prefix.bin, 'bwa'))
|
||||
set_executable(join_path(prefix.bin, 'bwa'))
|
||||
mkdirp(prefix.doc)
|
||||
install('README.md', prefix.doc)
|
||||
install('NEWS.md', prefix.doc)
|
||||
mkdirp(prefix.man1)
|
||||
install('bwa.1', prefix.man1)
|
@@ -24,54 +24,69 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bzip2(Package):
|
||||
"""bzip2 is a freely available, patent free high-quality data
|
||||
compressor. It typically compresses files to within 10% to 15%
|
||||
of the best available techniques (the PPM family of statistical
|
||||
compressors), whilst being around twice as fast at compression
|
||||
and six times faster at decompression.
|
||||
compressor. It typically compresses files to within 10% to 15%
|
||||
of the best available techniques (the PPM family of statistical
|
||||
compressors), whilst being around twice as fast at compression
|
||||
and six times faster at decompression."""
|
||||
|
||||
"""
|
||||
homepage = "http://www.bzip.org"
|
||||
url = "http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz"
|
||||
|
||||
version('1.0.6', '00b516f4704d4a7cb50a1d97e6e8e15b')
|
||||
|
||||
|
||||
def patch(self):
|
||||
mf = FileFilter('Makefile-libbz2_so')
|
||||
mf.filter(r'^CC=gcc', 'CC=cc')
|
||||
# bzip2 comes with two separate Makefiles for static and dynamic builds
|
||||
# Tell both to use Spack's compiler wrapper instead of GCC
|
||||
filter_file(r'^CC=gcc', 'CC=cc', 'Makefile')
|
||||
filter_file(r'^CC=gcc', 'CC=cc', 'Makefile-libbz2_so')
|
||||
|
||||
# Below stuff patches the link line to use RPATHs on Mac OS X.
|
||||
# Patch the link line to use RPATHs on macOS
|
||||
if 'darwin' in self.spec.architecture:
|
||||
v = self.spec.version
|
||||
v1, v2, v3 = (v.up_to(i) for i in (1,2,3))
|
||||
v1, v2, v3 = (v.up_to(i) for i in (1, 2, 3))
|
||||
|
||||
mf.filter('$(CC) -shared -Wl,-soname -Wl,libbz2.so.{0} -o libbz2.so.{1} $(OBJS)'.format(v2, v3),
|
||||
'$(CC) -dynamiclib -Wl,-install_name -Wl,@rpath/libbz2.{0}.dylib -current_version {1} -compatibility_version {2} -o libbz2.{3}.dylib $(OBJS)'.format(v1, v2, v3, v3), string=True)
|
||||
kwargs = {'ignore_absent': False, 'backup': False, 'string': True}
|
||||
|
||||
mf.filter('$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.{0}'.format(v3),
|
||||
'$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.{0}.dylib'.format(v3), string=True)
|
||||
mf.filter('rm -f libbz2.so.{0}'.format(v2),
|
||||
'rm -f libbz2.{0}.dylib'.format(v2), string=True)
|
||||
mf.filter('ln -s libbz2.so.{0} libbz2.so.{1}'.format(v3, v2),
|
||||
'ln -s libbz2.{0}.dylib libbz2.{1}.dylib'.format(v3, v2), string=True)
|
||||
mf = FileFilter('Makefile-libbz2_so')
|
||||
mf.filter('$(CC) -shared -Wl,-soname -Wl,libbz2.so.{0} -o libbz2.so.{1} $(OBJS)' # noqa
|
||||
.format(v2, v3),
|
||||
'$(CC) -dynamiclib -Wl,-install_name -Wl,@rpath/libbz2.{0}.dylib -current_version {1} -compatibility_version {2} -o libbz2.{3}.dylib $(OBJS)' # noqa
|
||||
.format(v1, v2, v3, v3),
|
||||
**kwargs)
|
||||
|
||||
mf.filter(
|
||||
'$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.{0}'.format(v3), # noqa
|
||||
'$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.{0}.dylib'
|
||||
.format(v3), **kwargs)
|
||||
mf.filter(
|
||||
'rm -f libbz2.so.{0}'.format(v2),
|
||||
'rm -f libbz2.{0}.dylib'.format(v2), **kwargs)
|
||||
mf.filter(
|
||||
'ln -s libbz2.so.{0} libbz2.so.{1}'.format(v3, v2),
|
||||
'ln -s libbz2.{0}.dylib libbz2.{1}.dylib'.format(v3, v2),
|
||||
**kwargs)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Build the dynamic library first
|
||||
make('-f', 'Makefile-libbz2_so')
|
||||
make('clean')
|
||||
make("install", "PREFIX=%s" % prefix)
|
||||
# Build the static library and everything else
|
||||
make()
|
||||
make('install', 'PREFIX={0}'.format(prefix))
|
||||
|
||||
install('bzip2-shared', join_path(prefix.bin, 'bzip2'))
|
||||
|
||||
v1, v2, v3 = (self.spec.version.up_to(i) for i in (1,2,3))
|
||||
v1, v2, v3 = (self.spec.version.up_to(i) for i in (1, 2, 3))
|
||||
if 'darwin' in self.spec.architecture:
|
||||
lib = 'libbz2.dylib'
|
||||
lib1, lib2, lib3 = ('libbz2.{0}.dylib'.format(v) for v in (v1, v2, v3))
|
||||
lib1, lib2, lib3 = ('libbz2.{0}.dylib'.format(v)
|
||||
for v in (v1, v2, v3))
|
||||
else:
|
||||
lib = 'libbz2.so'
|
||||
lib1, lib2, lib3 = ('libbz2.so.{0}'.format(v) for v in (v1, v2, v3))
|
||||
lib1, lib2, lib3 = ('libbz2.so.{0}'.format(v)
|
||||
for v in (v1, v2, v3))
|
||||
|
||||
install(lib3, join_path(prefix.lib, lib3))
|
||||
with working_dir(prefix.lib):
|
||||
|
52
var/spack/repos/builtin/packages/c-blosc/package.py
Normal file
52
var/spack/repos/builtin/packages/c-blosc/package.py
Normal file
@@ -0,0 +1,52 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
|
||||
import sys
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class CBlosc(Package):
|
||||
"""Blosc, an extremely fast, multi-threaded, meta-compressor library"""
|
||||
homepage = "http://www.blosc.org"
|
||||
url = "https://github.com/Blosc/c-blosc/archive/v1.9.2.tar.gz"
|
||||
|
||||
version('1.9.2', 'dd2d83069d74b36b8093f1c6b49defc5')
|
||||
version('1.9.1', '7d708d3daadfacf984a87b71b1734ce2')
|
||||
version('1.9.0', 'e4c1dc8e2c468e5cfa2bf05eeee5357a')
|
||||
version('1.8.1', 'd73d5be01359cf271e9386c90dcf5b05')
|
||||
version('1.8.0', '5b92ecb287695ba20cc33d30bf221c4f')
|
||||
|
||||
depends_on("cmake", type='build')
|
||||
depends_on("snappy")
|
||||
depends_on("zlib")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('.', *std_cmake_args)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
if sys.platform == 'darwin':
|
||||
fix_darwin_install_name(prefix.lib)
|
@@ -24,8 +24,10 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cairo(Package):
|
||||
"""Cairo is a 2D graphics library with support for multiple output devices."""
|
||||
"""Cairo is a 2D graphics library with support for multiple output
|
||||
devices."""
|
||||
homepage = "http://cairographics.org"
|
||||
url = "http://cairographics.org/releases/cairo-1.14.0.tar.xz"
|
||||
|
||||
@@ -34,11 +36,12 @@ class Cairo(Package):
|
||||
depends_on("libpng")
|
||||
depends_on("glib")
|
||||
depends_on("pixman")
|
||||
depends_on("fontconfig@2.10.91:") # Require newer version of fontconfig.
|
||||
depends_on("freetype")
|
||||
depends_on("fontconfig@2.10.91:") # Require newer version of fontconfig.
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix,
|
||||
"--disable-trace", # can cause problems with libiberty
|
||||
"--disable-trace", # can cause problems with libiberty
|
||||
"--enable-tee")
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Caliper(Package):
|
||||
"""
|
||||
Caliper is a generic context annotation system. It gives programmers the
|
||||
@@ -34,16 +35,17 @@ class Caliper(Package):
|
||||
homepage = "https://github.com/LLNL/Caliper"
|
||||
url = ""
|
||||
|
||||
version('master', git='ssh://git@github.com:LLNL/Caliper.git')
|
||||
version('master', git='https://github.com/LLNL/Caliper.git')
|
||||
|
||||
variant('mpi', default=False, description='Enable MPI function wrappers.')
|
||||
|
||||
depends_on('libunwind')
|
||||
depends_on('papi')
|
||||
depends_on('mpi', when='+mpi')
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
with working_dir('build', create=True):
|
||||
cmake('..', *std_cmake_args)
|
||||
make()
|
||||
make("install")
|
||||
with working_dir('build', create=True):
|
||||
cmake('..', *std_cmake_args)
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Callpath(Package):
|
||||
"""Library for representing callpaths consistently in
|
||||
distributed-memory performance tools."""
|
||||
@@ -39,6 +40,7 @@ class Callpath(Package):
|
||||
depends_on("dyninst")
|
||||
depends_on("adept-utils")
|
||||
depends_on("mpi")
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# TODO: offer options for the walker used.
|
||||
|
202
var/spack/repos/builtin/packages/cantera/package.py
Normal file
202
var/spack/repos/builtin/packages/cantera/package.py
Normal file
@@ -0,0 +1,202 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
|
||||
class Cantera(Package):
|
||||
"""Cantera is a suite of object-oriented software tools for problems
|
||||
involving chemical kinetics, thermodynamics, and/or transport processes."""
|
||||
|
||||
homepage = "http://www.cantera.org/docs/sphinx/html/index.html"
|
||||
url = "https://github.com/Cantera/cantera/archive/v2.2.1.tar.gz"
|
||||
|
||||
version('2.2.1', '9d1919bdef39ddec54485fc8a741a3aa')
|
||||
|
||||
variant('lapack', default=True,
|
||||
description='Build with external BLAS/LAPACK libraries')
|
||||
variant('threadsafe', default=True,
|
||||
description='Build threadsafe, requires Boost')
|
||||
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
|
||||
depends_on('scons', type='build')
|
||||
|
||||
# Recommended dependencies
|
||||
depends_on('blas', when='+lapack')
|
||||
depends_on('lapack', when='+lapack')
|
||||
depends_on('boost', when='+threadsafe')
|
||||
depends_on('sundials', when='+sundials') # must be compiled with -fPIC
|
||||
|
||||
# Python module dependencies
|
||||
extends('python', when='+python')
|
||||
depends_on('py-numpy', when='+python', type=nolink)
|
||||
depends_on('py-scipy', when='+python', type=nolink)
|
||||
depends_on('py-cython', when='+python', type=nolink)
|
||||
depends_on('py-3to2', when='+python', type=nolink)
|
||||
# TODO: these "when" specs don't actually work
|
||||
# depends_on('py-unittest2', when='+python^python@2.6')
|
||||
# depends_on('py-unittest2py3k', when='+python^python@3.1')
|
||||
|
||||
# Matlab toolbox dependencies
|
||||
# TODO: add Matlab package
|
||||
# TODO: allow packages to extend multiple other packages
|
||||
# extends('matlab', when='+matlab')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Required options
|
||||
options = [
|
||||
'prefix={0}'.format(prefix),
|
||||
'CC={0}'.format(os.environ['CC']),
|
||||
'CXX={0}'.format(os.environ['CXX']),
|
||||
'F77={0}'.format(os.environ['F77']),
|
||||
'FORTRAN={0}'.format(os.environ['FC']),
|
||||
'cc_flags=-fPIC',
|
||||
# Allow Spack environment variables to propagate through to SCons
|
||||
'env_vars=all'
|
||||
]
|
||||
|
||||
# BLAS/LAPACK support
|
||||
if '+lapack' in spec:
|
||||
options.extend([
|
||||
'blas_lapack_libs=lapack,blas',
|
||||
'blas_lapack_dir={0}'.format(spec['lapack'].prefix.lib)
|
||||
])
|
||||
|
||||
# Threadsafe build, requires Boost
|
||||
if '+threadsafe' in spec:
|
||||
options.extend([
|
||||
'build_thread_safe=yes',
|
||||
'boost_inc_dir={0}'.format(spec['boost'].prefix.include),
|
||||
'boost_lib_dir={0}'.format(spec['boost'].prefix.lib),
|
||||
'boost_thread_lib=boost_thread-mt,boost_system-mt'
|
||||
])
|
||||
else:
|
||||
options.append('build_thread_safe=no')
|
||||
|
||||
# Sundials support
|
||||
if '+sundials' in spec:
|
||||
options.extend([
|
||||
'use_sundials=y',
|
||||
'sundials_include={0}'.format(spec['sundials'].prefix.include),
|
||||
'sundials_libdir={0}'.format(spec['sundials'].prefix.lib),
|
||||
'sundials_license={0}'.format(
|
||||
join_path(spec['sundials'].prefix, 'LICENSE'))
|
||||
])
|
||||
else:
|
||||
options.append('use_sundials=n')
|
||||
|
||||
# Python module
|
||||
if '+python' in spec:
|
||||
options.extend([
|
||||
'python_package=full',
|
||||
'python_cmd={0}'.format(
|
||||
join_path(spec['python'].prefix.bin, 'python')),
|
||||
'python_array_home={0}'.format(spec['py-numpy'].prefix)
|
||||
])
|
||||
if spec['python'].satisfies('@3'):
|
||||
options.extend([
|
||||
'python3_package=y',
|
||||
'python3_cmd={0}'.format(
|
||||
join_path(spec['python'].prefix.bin, 'python')),
|
||||
'python3_array_home={0}'.format(spec['py-numpy'].prefix)
|
||||
])
|
||||
else:
|
||||
options.append('python3_package=n')
|
||||
else:
|
||||
options.append('python_package=none')
|
||||
options.append('python3_package=n')
|
||||
|
||||
# Matlab toolbox
|
||||
if '+matlab' in spec:
|
||||
options.extend([
|
||||
'matlab_toolbox=y',
|
||||
'matlab_path={0}'.format(spec['matlab'].prefix)
|
||||
])
|
||||
else:
|
||||
options.append('matlab_toolbox=n')
|
||||
|
||||
scons('build', *options)
|
||||
|
||||
if '+python' in spec:
|
||||
# Tests will always fail if Python dependencies aren't built
|
||||
# In addition, 3 of the tests fail when run in parallel
|
||||
scons('test', parallel=False)
|
||||
|
||||
scons('install')
|
||||
|
||||
self.filter_compilers()
|
||||
|
||||
def filter_compilers(self):
|
||||
"""Run after install to tell the Makefile and SConstruct files to use
|
||||
the compilers that Spack built the package with.
|
||||
|
||||
If this isn't done, they'll have CC, CXX, F77, and FC set to Spack's
|
||||
generic cc, c++, f77, and f90. We want them to be bound to whatever
|
||||
compiler they were built with."""
|
||||
|
||||
kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
|
||||
dirname = os.path.join(self.prefix, 'share/cantera/samples')
|
||||
|
||||
cc_files = [
|
||||
'cxx/rankine/Makefile', 'cxx/NASA_coeffs/Makefile',
|
||||
'cxx/kinetics1/Makefile', 'cxx/flamespeed/Makefile',
|
||||
'cxx/combustor/Makefile', 'f77/SConstruct'
|
||||
]
|
||||
|
||||
cxx_files = [
|
||||
'cxx/rankine/Makefile', 'cxx/NASA_coeffs/Makefile',
|
||||
'cxx/kinetics1/Makefile', 'cxx/flamespeed/Makefile',
|
||||
'cxx/combustor/Makefile'
|
||||
]
|
||||
|
||||
f77_files = [
|
||||
'f77/Makefile', 'f77/SConstruct'
|
||||
]
|
||||
|
||||
fc_files = [
|
||||
'f90/Makefile', 'f90/SConstruct'
|
||||
]
|
||||
|
||||
for filename in cc_files:
|
||||
filter_file(os.environ['CC'], self.compiler.cc,
|
||||
os.path.join(dirname, filename), **kwargs)
|
||||
|
||||
for filename in cxx_files:
|
||||
filter_file(os.environ['CXX'], self.compiler.cxx,
|
||||
os.path.join(dirname, filename), **kwargs)
|
||||
|
||||
for filename in f77_files:
|
||||
filter_file(os.environ['F77'], self.compiler.f77,
|
||||
os.path.join(dirname, filename), **kwargs)
|
||||
|
||||
for filename in fc_files:
|
||||
filter_file(os.environ['FC'], self.compiler.fc,
|
||||
os.path.join(dirname, filename), **kwargs)
|
53
var/spack/repos/builtin/packages/cask/package.py
Normal file
53
var/spack/repos/builtin/packages/cask/package.py
Normal file
@@ -0,0 +1,53 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
#
|
||||
# Based on Homebrew's formula:
|
||||
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/cask.rb
|
||||
#
|
||||
from spack import *
|
||||
from glob import glob
|
||||
|
||||
|
||||
class Cask(Package):
|
||||
"""Cask is a project management tool for Emacs Lisp to automate the package
|
||||
development cycle; development, dependencies, testing, building,
|
||||
packaging and more."""
|
||||
homepage = "http://cask.readthedocs.io/en/latest/"
|
||||
url = "https://github.com/cask/cask/archive/v0.7.4.tar.gz"
|
||||
|
||||
version('0.7.4', 'c973a7db43bc980dd83759a5864a1260')
|
||||
|
||||
depends_on('emacs', type=nolink)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
mkdirp(prefix.bin)
|
||||
install('bin/cask', prefix.bin)
|
||||
install_tree('templates', join_path(prefix, 'templates'))
|
||||
for el_file in glob("*.el"):
|
||||
install(el_file, prefix)
|
||||
for misc_file in ['COPYING', 'cask.png', 'README.md']:
|
||||
install(misc_file, prefix)
|
||||
# disable cask's automatic upgrading feature
|
||||
touch(join_path(prefix, ".no-upgrade"))
|
@@ -23,7 +23,7 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
|
||||
class Cblas(Package):
|
||||
"""The BLAS (Basic Linear Algebra Subprograms) are routines that
|
||||
@@ -42,11 +42,11 @@ class Cblas(Package):
|
||||
def patch(self):
|
||||
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('^FC =.*', 'FC = f90')
|
||||
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make('all')
|
||||
mkdirp(prefix.lib)
|
||||
@@ -54,6 +54,5 @@ def install(self, spec, prefix):
|
||||
|
||||
# Rename the generated lib file to libcblas.a
|
||||
install('./lib/cblas_LINUX.a', '%s/libcblas.a' % prefix.lib)
|
||||
install('./include/cblas.h','%s' % prefix.include)
|
||||
install('./include/cblas_f77.h','%s' % prefix.include)
|
||||
|
||||
install('./include/cblas.h', '%s' % prefix.include)
|
||||
install('./include/cblas_f77.h', '%s' % prefix.include)
|
||||
|
@@ -22,7 +22,7 @@
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
################################################################################
|
||||
##########################################################################
|
||||
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
@@ -38,39 +38,45 @@
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
# Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
################################################################################
|
||||
##########################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class CbtfArgonavis(Package):
|
||||
"""CBTF Argo Navis project contains the CUDA collector and supporting
|
||||
libraries that was done as a result of a DOE SBIR grant."""
|
||||
"""CBTF Argo Navis project contains the CUDA collector and supporting
|
||||
libraries that was done as a result of a DOE SBIR grant.
|
||||
|
||||
"""
|
||||
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
|
||||
|
||||
# Mirror access template example
|
||||
#url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/cbtf-argonavis-1.6.tar.gz"
|
||||
#version('1.6', '0fafa0008478405c2c2319450f174ed4')
|
||||
# url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/cbtf-argonavis-1.6.tar.gz"
|
||||
# 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")
|
||||
depends_on("cmake@3.0.2", type='build')
|
||||
depends_on("boost@1.50.0:")
|
||||
depends_on("papi")
|
||||
depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
|
||||
depends_on("cbtf")
|
||||
depends_on("cbtf-krell")
|
||||
depends_on("cuda@6.0.37")
|
||||
#depends_on("cuda")
|
||||
# depends_on("cuda")
|
||||
|
||||
parallel = False
|
||||
|
||||
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 = []
|
||||
|
||||
# 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[:]:
|
||||
if word.startswith('-DCMAKE_BUILD_TYPE'):
|
||||
cmakeOptions.remove(word)
|
||||
@@ -81,50 +87,54 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
|
||||
if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
|
||||
cmakeOptions.remove(word)
|
||||
BuildTypeOptions.extend([
|
||||
'-DCMAKE_VERBOSE_MAKEFILE=ON',
|
||||
'-DCMAKE_BUILD_TYPE=None',
|
||||
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
|
||||
'-DCMAKE_C_FLAGS=%s' % compile_flags
|
||||
'-DCMAKE_VERBOSE_MAKEFILE=ON',
|
||||
'-DCMAKE_BUILD_TYPE=None',
|
||||
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
|
||||
'-DCMAKE_C_FLAGS=%s' % compile_flags
|
||||
])
|
||||
|
||||
cmakeOptions.extend(BuildTypeOptions)
|
||||
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
# Look for package installation information in the cbtf and cbtf-krell prefixes
|
||||
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
|
||||
# Look for package installation information in the cbtf and cbtf-krell
|
||||
# prefixes
|
||||
cmake_prefix_path = join_path(
|
||||
spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
|
||||
|
||||
with working_dir('CUDA'):
|
||||
with working_dir('build', create=True):
|
||||
with working_dir('CUDA'):
|
||||
with working_dir('build', create=True):
|
||||
|
||||
cmakeOptions = []
|
||||
cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
'-DCUDA_DIR=%s' % spec['cuda'].prefix,
|
||||
'-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
|
||||
'-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
|
||||
'-DCUPTI_DIR=%s' % join_path(spec['cuda'].prefix + '/extras/CUPTI'),
|
||||
'-DCUPTI_ROOT=%s' % join_path(spec['cuda'].prefix + '/extras/CUPTI'),
|
||||
'-DPAPI_ROOT=%s' % spec['papi'].prefix,
|
||||
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
|
||||
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
|
||||
'-DBoost_DIR=%s' % spec['boost'].prefix,
|
||||
'-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
|
||||
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
'-DBoost_NO_SYSTEM_PATHS=ON'
|
||||
])
|
||||
cmakeOptions = []
|
||||
cmakeOptions.extend(
|
||||
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
'-DCUDA_DIR=%s' % spec['cuda'].prefix,
|
||||
'-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
|
||||
'-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
|
||||
'-DCUPTI_DIR=%s' % join_path(
|
||||
spec['cuda'].prefix + '/extras/CUPTI'),
|
||||
'-DCUPTI_ROOT=%s' % join_path(
|
||||
spec['cuda'].prefix + '/extras/CUPTI'),
|
||||
'-DPAPI_ROOT=%s' % spec['papi'].prefix,
|
||||
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
|
||||
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
|
||||
'-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
|
||||
cmakeOptions.extend(std_cmake_args)
|
||||
# Add in the standard cmake arguments
|
||||
cmakeOptions.extend(std_cmake_args)
|
||||
|
||||
# Adjust the standard cmake arguments to what we want the build type, etc to be
|
||||
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
|
||||
|
||||
# Invoke cmake
|
||||
cmake('..', *cmakeOptions)
|
||||
# Adjust the standard cmake arguments to what we want the build
|
||||
# type, etc to be
|
||||
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
|
||||
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
# Invoke cmake
|
||||
cmake('..', *cmakeOptions)
|
||||
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -22,7 +22,7 @@
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
################################################################################
|
||||
##########################################################################
|
||||
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
@@ -38,33 +38,43 @@
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
# Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
################################################################################
|
||||
##########################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class CbtfKrell(Package):
|
||||
"""CBTF Krell project contains the Krell Institute contributions to the CBTF project.
|
||||
These contributions include many performance data collectors and support
|
||||
libraries as well as some example tools that drive the data collection at
|
||||
HPC levels of scale."""
|
||||
"""CBTF Krell project contains the Krell Institute contributions to the
|
||||
CBTF project. These contributions include many performance data
|
||||
collectors and support libraries as well as some example tools
|
||||
that drive the data collection at HPC levels of scale.
|
||||
|
||||
"""
|
||||
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
|
||||
|
||||
# optional mirror access template
|
||||
#url = "file:/home/jeg/cbtf-krell-1.6.tar.gz"
|
||||
#version('1.6', 'edeb61cd488f16e7b124f77db9ce762d')
|
||||
# url = "file:/home/jeg/cbtf-krell-1.6.tar.gz"
|
||||
# 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
|
||||
variant('openmpi', default=False, description="Build mpi experiment collector for openmpi MPI when this variant is enabled.")
|
||||
variant('mpt', default=False, description="Build mpi experiment collector for SGI MPT MPI when this variant is enabled.")
|
||||
variant('mvapich2', default=False, description="Build mpi experiment collector for mvapich2 MPI when this variant is enabled.")
|
||||
variant('mvapich', default=False, description="Build mpi experiment collector for mvapich MPI when this variant is enabled.")
|
||||
variant('mpich2', default=False, description="Build mpi experiment collector for mpich2 MPI when this variant is enabled.")
|
||||
variant('mpich', default=False, description="Build mpi experiment collector for mpich MPI when this variant is enabled.")
|
||||
variant('openmpi', default=False,
|
||||
description="Build mpi experiment collector for openmpi MPI..")
|
||||
variant('mpt', default=False,
|
||||
description="Build mpi experiment collector for SGI MPT MPI.")
|
||||
variant('mvapich2', default=False,
|
||||
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
|
||||
depends_on("cmake@3.0.2")
|
||||
depends_on("cmake@3.0.2", type='build')
|
||||
|
||||
# For binutils service
|
||||
depends_on("binutils@2.24+krellpatch")
|
||||
@@ -83,7 +93,8 @@ class CbtfKrell(Package):
|
||||
depends_on("papi")
|
||||
|
||||
# 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("mpich", when='+mpich')
|
||||
depends_on("mpich2", when='+mpich2')
|
||||
@@ -94,11 +105,13 @@ class CbtfKrell(Package):
|
||||
parallel = False
|
||||
|
||||
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
|
||||
# Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
|
||||
|
||||
compile_flags="-O2 -g"
|
||||
# Sets build type parameters into cmakeOptions the options that will
|
||||
# enable the cbtf-krell built type settings
|
||||
|
||||
compile_flags = "-O2 -g"
|
||||
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[:]:
|
||||
if word.startswith('-DCMAKE_BUILD_TYPE'):
|
||||
cmakeOptions.remove(word)
|
||||
@@ -109,75 +122,76 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
|
||||
if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
|
||||
cmakeOptions.remove(word)
|
||||
BuildTypeOptions.extend([
|
||||
'-DCMAKE_VERBOSE_MAKEFILE=ON',
|
||||
'-DCMAKE_BUILD_TYPE=None',
|
||||
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
|
||||
'-DCMAKE_C_FLAGS=%s' % compile_flags
|
||||
'-DCMAKE_VERBOSE_MAKEFILE=ON',
|
||||
'-DCMAKE_BUILD_TYPE=None',
|
||||
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
|
||||
'-DCMAKE_C_FLAGS=%s' % compile_flags
|
||||
])
|
||||
|
||||
cmakeOptions.extend(BuildTypeOptions)
|
||||
|
||||
|
||||
|
||||
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 = []
|
||||
|
||||
# openmpi
|
||||
if '+openmpi' in spec:
|
||||
MPIOptions.extend([
|
||||
'-DOPENMPI_DIR=%s' % spec['openmpi'].prefix
|
||||
'-DOPENMPI_DIR=%s' % spec['openmpi'].prefix
|
||||
])
|
||||
# mpich
|
||||
if '+mpich' in spec:
|
||||
MPIOptions.extend([
|
||||
'-DMPICH_DIR=%s' % spec['mpich'].prefix
|
||||
'-DMPICH_DIR=%s' % spec['mpich'].prefix
|
||||
])
|
||||
# mpich2
|
||||
if '+mpich2' in spec:
|
||||
MPIOptions.extend([
|
||||
'-DMPICH2_DIR=%s' % spec['mpich2'].prefix
|
||||
'-DMPICH2_DIR=%s' % spec['mpich2'].prefix
|
||||
])
|
||||
# mvapich
|
||||
if '+mvapich' in spec:
|
||||
MPIOptions.extend([
|
||||
'-DMVAPICH_DIR=%s' % spec['mvapich'].prefix
|
||||
'-DMVAPICH_DIR=%s' % spec['mvapich'].prefix
|
||||
])
|
||||
# mvapich2
|
||||
if '+mvapich2' in spec:
|
||||
MPIOptions.extend([
|
||||
'-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix
|
||||
'-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix
|
||||
])
|
||||
# mpt
|
||||
if '+mpt' in spec:
|
||||
MPIOptions.extend([
|
||||
'-DMPT_DIR=%s' % spec['mpt'].prefix
|
||||
'-DMPT_DIR=%s' % spec['mpt'].prefix
|
||||
])
|
||||
|
||||
cmakeOptions.extend(MPIOptions)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
# Add in paths for finding package config files that tell us where to find these packages
|
||||
#cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['dyninst'].prefix)
|
||||
#'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path
|
||||
# Add in paths for finding package config files that tell us
|
||||
# where to find these packages
|
||||
# cmake_prefix_path = \
|
||||
# join_path(spec['cbtf'].prefix) + ':' + \
|
||||
# join_path(spec['dyninst'].prefix)
|
||||
# '-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):
|
||||
cmakeOptions = []
|
||||
cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
|
||||
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
|
||||
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
|
||||
'-DPAPI_DIR=%s' % spec['papi'].prefix,
|
||||
'-DBOOST_DIR=%s' % spec['boost'].prefix,
|
||||
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
|
||||
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix
|
||||
])
|
||||
|
||||
cmakeOptions.extend(
|
||||
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
|
||||
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
|
||||
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
|
||||
'-DPAPI_DIR=%s' % spec['papi'].prefix,
|
||||
'-DBOOST_DIR=%s' % spec['boost'].prefix,
|
||||
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
|
||||
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix])
|
||||
|
||||
# Add any MPI implementations coming from variant settings
|
||||
self.set_mpi_cmakeOptions(spec, cmakeOptions)
|
||||
@@ -185,9 +199,10 @@ def install(self, spec, prefix):
|
||||
# Add in the standard cmake arguments
|
||||
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)
|
||||
|
||||
|
||||
# Invoke cmake
|
||||
cmake('..', *cmakeOptions)
|
||||
|
||||
@@ -195,56 +210,54 @@ def install(self, spec, prefix):
|
||||
make()
|
||||
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:
|
||||
# with working_dir('build_cbtf_cray_runtime', create=True):
|
||||
# python_vers='%d.%d' % spec['python'].version[:2]
|
||||
# cmake .. \
|
||||
# -DCMAKE_BUILD_TYPE=Debug \
|
||||
# -DTARGET_OS="cray" \
|
||||
# -DRUNTIME_ONLY="true" \
|
||||
# -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
|
||||
# -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
|
||||
# -DCBTF_DIR=${CBTF_ROOT} \
|
||||
# -DBOOST_ROOT=${BOOST_INSTALL_PREFIX} \
|
||||
# -DXERCESC_DIR=${XERCESC_INSTALL_PREFIX} \
|
||||
# -DBINUTILS_DIR=${KRELL_ROOT} \
|
||||
# -DLIBMONITOR_DIR=${KRELL_ROOT_COMPUTE} \
|
||||
# -DLIBUNWIND_DIR=${KRELL_ROOT_COMPUTE} \
|
||||
# -DPAPI_DIR=${PAPI_ROOT} \
|
||||
# -DDYNINST_DIR=${DYNINST_CN_ROOT} \
|
||||
# -DMRNET_DIR=${MRNET_INSTALL_PREFIX} \
|
||||
# -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
|
||||
# -DCMAKE_BUILD_TYPE=Debug \
|
||||
# -DTARGET_OS="cray" \
|
||||
# -DRUNTIME_ONLY="true" \
|
||||
# -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
|
||||
# -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
|
||||
# -DCBTF_DIR=${CBTF_ROOT} \
|
||||
# -DBOOST_ROOT=${BOOST_INSTALL_PREFIX} \
|
||||
# -DXERCESC_DIR=${XERCESC_INSTALL_PREFIX} \
|
||||
# -DBINUTILS_DIR=${KRELL_ROOT} \
|
||||
# -DLIBMONITOR_DIR=${KRELL_ROOT_COMPUTE} \
|
||||
# -DLIBUNWIND_DIR=${KRELL_ROOT_COMPUTE} \
|
||||
# -DPAPI_DIR=${PAPI_ROOT} \
|
||||
# -DDYNINST_DIR=${DYNINST_CN_ROOT} \
|
||||
# -DMRNET_DIR=${MRNET_INSTALL_PREFIX} \
|
||||
# -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
|
||||
# else:
|
||||
# with working_dir('build_cbtf_cray_frontend', create=True):
|
||||
# python_vers='%d.%d' % spec['python'].version[:2]
|
||||
# cmake .. \
|
||||
# -DCMAKE_BUILD_TYPE=Debug \
|
||||
# -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
|
||||
# -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
|
||||
# -DCBTF_DIR=${CBTF_ROOT} \
|
||||
# -DRUNTIME_TARGET_OS="cray" \
|
||||
# -DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_RUNTIME_ROOT} \
|
||||
# -DCBTF_CN_RUNTIME_DIR=${CBTF_CN_RUNTIME_ROOT} \
|
||||
# -DLIBMONITOR_CN_RUNTIME_DIR=${LIBMONITOR_CN_ROOT} \
|
||||
# -DLIBUNWIND_CN_RUNTIME_DIR=${LIBUNWIND_CN_ROOT} \
|
||||
# -DPAPI_CN_RUNTIME_DIR=${PAPI_CN_ROOT} \
|
||||
# -DXERCESC_CN_RUNTIME_DIR=/${XERCESC_CN_ROOT} \
|
||||
# -DMRNET_CN_RUNTIME_DIR=${MRNET_CN_ROOT} \
|
||||
# -DBOOST_CN_RUNTIME_DIR=${BOOST_CN_ROOT} \
|
||||
# -DDYNINST_CN_RUNTIME_DIR=${DYNINST_CN_ROOT} \
|
||||
# -DBOOST_ROOT=/${KRELL_ROOT} \
|
||||
# -DXERCESC_DIR=/${KRELL_ROOT} \
|
||||
# -DBINUTILS_DIR=/${KRELL_ROOT} \
|
||||
# -DLIBMONITOR_DIR=${KRELL_ROOT} \
|
||||
# -DLIBUNWIND_DIR=${KRELL_ROOT} \
|
||||
# -DPAPI_DIR=${PAPI_ROOT} \
|
||||
# -DDYNINST_DIR=${KRELL_ROOT} \
|
||||
# -DMRNET_DIR=${KRELL_ROOT} \
|
||||
# -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
|
||||
# -DCMAKE_BUILD_TYPE=Debug \
|
||||
# -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
|
||||
# -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
|
||||
# -DCBTF_DIR=${CBTF_ROOT} \
|
||||
# -DRUNTIME_TARGET_OS="cray" \
|
||||
# -DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_RUNTIME_ROOT} \
|
||||
# -DCBTF_CN_RUNTIME_DIR=${CBTF_CN_RUNTIME_ROOT} \
|
||||
# -DLIBMONITOR_CN_RUNTIME_DIR=${LIBMONITOR_CN_ROOT} \
|
||||
# -DLIBUNWIND_CN_RUNTIME_DIR=${LIBUNWIND_CN_ROOT} \
|
||||
# -DPAPI_CN_RUNTIME_DIR=${PAPI_CN_ROOT} \
|
||||
# -DXERCESC_CN_RUNTIME_DIR=/${XERCESC_CN_ROOT} \
|
||||
# -DMRNET_CN_RUNTIME_DIR=${MRNET_CN_ROOT} \
|
||||
# -DBOOST_CN_RUNTIME_DIR=${BOOST_CN_ROOT} \
|
||||
# -DDYNINST_CN_RUNTIME_DIR=${DYNINST_CN_ROOT} \
|
||||
# -DBOOST_ROOT=/${KRELL_ROOT} \
|
||||
# -DXERCESC_DIR=/${KRELL_ROOT} \
|
||||
# -DBINUTILS_DIR=/${KRELL_ROOT} \
|
||||
# -DLIBMONITOR_DIR=${KRELL_ROOT} \
|
||||
# -DLIBUNWIND_DIR=${KRELL_ROOT} \
|
||||
# -DPAPI_DIR=${PAPI_ROOT} \
|
||||
# -DDYNINST_DIR=${KRELL_ROOT} \
|
||||
# -DMRNET_DIR=${KRELL_ROOT} \
|
||||
# -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
|
||||
# fi
|
||||
#
|
||||
# make("clean")
|
||||
@@ -264,22 +277,22 @@ def install(self, spec, prefix):
|
||||
# fi
|
||||
#
|
||||
# else:
|
||||
# # Build cbtf-krell with cmake
|
||||
# # Build cbtf-krell with cmake
|
||||
# with working_dir('build_cbtf_krell', create=True):
|
||||
# cmake('..',
|
||||
# '-DCMAKE_BUILD_TYPE=Debug',
|
||||
# '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
# '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
# '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
|
||||
# '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
|
||||
# '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
|
||||
# '-DPAPI_DIR=%s' % spec['papi'].prefix,
|
||||
# '-DBOOST_DIR=%s' % spec['boost'].prefix,
|
||||
# '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
# '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
|
||||
# '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
|
||||
# '-DOPENMPI_DIR=%s' % openmpi_prefix_path,
|
||||
# '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
# '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
# '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
# '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
|
||||
# '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
|
||||
# '-DLIBUNWIND_DIR=%s'% spec['libunwind'].prefix,
|
||||
# '-DPAPI_DIR=%s' % spec['papi'].prefix,
|
||||
# '-DBOOST_DIR=%s' % spec['boost'].prefix,
|
||||
# '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
# '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
|
||||
# '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
|
||||
# '-DOPENMPI_DIR=%s' % openmpi_prefix_path,
|
||||
# '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
# *std_cmake_args)
|
||||
#
|
||||
# make("clean")
|
||||
|
@@ -22,7 +22,7 @@
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
################################################################################
|
||||
##########################################################################
|
||||
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
@@ -38,22 +38,24 @@
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
# Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
################################################################################
|
||||
##########################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class CbtfLanl(Package):
|
||||
"""CBTF LANL project contains a memory tool and data center type system command monitoring tool."""
|
||||
"""CBTF LANL project contains a memory tool and data center type system
|
||||
command monitoring tool."""
|
||||
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
|
||||
|
||||
|
||||
# Mirror access template example
|
||||
#url = "file:/g/g24/jeg/cbtf-lanl-1.5.tar.gz"
|
||||
#version('1.5', 'c3f78f967b0a42c6734ce4be0e602426')
|
||||
# url = "file:/g/g24/jeg/cbtf-lanl-1.5.tar.gz"
|
||||
# version('1.5', 'c3f78f967b0a42c6734ce4be0e602426')
|
||||
|
||||
version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl')
|
||||
version('1.6', branch='master',
|
||||
git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl')
|
||||
|
||||
depends_on("cmake@3.0.2")
|
||||
depends_on("cmake@3.0.2", type='build')
|
||||
# Dependencies for cbtf-krell
|
||||
depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
|
||||
depends_on("xerces-c@3.1.1:")
|
||||
@@ -63,11 +65,13 @@ class CbtfLanl(Package):
|
||||
parallel = False
|
||||
|
||||
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 = []
|
||||
# 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[:]:
|
||||
if word.startswith('-DCMAKE_BUILD_TYPE'):
|
||||
cmakeOptions.remove(word)
|
||||
@@ -78,40 +82,43 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
|
||||
if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
|
||||
cmakeOptions.remove(word)
|
||||
BuildTypeOptions.extend([
|
||||
'-DCMAKE_VERBOSE_MAKEFILE=ON',
|
||||
'-DCMAKE_BUILD_TYPE=None',
|
||||
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
|
||||
'-DCMAKE_C_FLAGS=%s' % compile_flags
|
||||
'-DCMAKE_VERBOSE_MAKEFILE=ON',
|
||||
'-DCMAKE_BUILD_TYPE=None',
|
||||
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
|
||||
'-DCMAKE_C_FLAGS=%s' % compile_flags
|
||||
])
|
||||
|
||||
cmakeOptions.extend(BuildTypeOptions)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
# Add in paths for finding package config files that tell us where to find these packages
|
||||
cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
|
||||
# Add in paths for finding package config files that tell us where to
|
||||
# find these packages
|
||||
cmake_prefix_path = join_path(
|
||||
spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
|
||||
|
||||
with working_dir('build', create=True):
|
||||
cmakeOptions = []
|
||||
cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
|
||||
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
|
||||
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
'-DCMAKE_MODULE_PATH=%s' % join_path(prefix.share,'KrellInstitute','cmake')
|
||||
])
|
||||
with working_dir('build', create=True):
|
||||
cmakeOptions = []
|
||||
cmakeOptions.extend(
|
||||
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
|
||||
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
|
||||
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
|
||||
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
|
||||
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
|
||||
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
|
||||
'-DCMAKE_MODULE_PATH=%s' % join_path(
|
||||
prefix.share, 'KrellInstitute', 'cmake')])
|
||||
|
||||
# Add in the standard cmake arguments
|
||||
cmakeOptions.extend(std_cmake_args)
|
||||
# Add in the standard cmake arguments
|
||||
cmakeOptions.extend(std_cmake_args)
|
||||
|
||||
# Adjust the standard cmake arguments to what we want the build type, etc to be
|
||||
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
|
||||
|
||||
# Invoke cmake
|
||||
cmake('..', *cmakeOptions)
|
||||
# Adjust the standard cmake arguments to what we want the build
|
||||
# type, etc to be
|
||||
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
|
||||
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
# Invoke cmake
|
||||
cmake('..', *cmakeOptions)
|
||||
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -22,7 +22,7 @@
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
################################################################################
|
||||
##########################################################################
|
||||
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
@@ -38,26 +38,32 @@
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
# Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
################################################################################
|
||||
##########################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cbtf(Package):
|
||||
"""CBTF project contains the base code for CBTF that supports creating components,
|
||||
component networks and the support to connect these components and component
|
||||
networks into sequential and distributed network tools."""
|
||||
"""CBTF project contains the base code for CBTF that supports creating
|
||||
components, component networks and the support to connect these
|
||||
components and component networks into sequential and distributed
|
||||
network tools.
|
||||
|
||||
"""
|
||||
homepage = "http://sourceforge.net/p/cbtf/wiki/Home"
|
||||
|
||||
# Mirror access template example
|
||||
#url = "file:/home/jeg/cbtf-1.6.tar.gz"
|
||||
#version('1.6', 'c1ef4e5aa4e470dffb042abdba0b9987')
|
||||
# url = "file:/home/jeg/cbtf-1.6.tar.gz"
|
||||
# version('1.6', 'c1ef4e5aa4e470dffb042abdba0b9987')
|
||||
|
||||
# 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")
|
||||
depends_on("cmake@3.0.2", type='build')
|
||||
depends_on("boost@1.50.0:")
|
||||
depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
|
||||
depends_on("xerces-c@3.1.1:")
|
||||
@@ -67,11 +73,13 @@ class Cbtf(Package):
|
||||
parallel = False
|
||||
|
||||
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
|
||||
# Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
|
||||
|
||||
compile_flags="-O2 -g"
|
||||
# Sets build type parameters into cmakeOptions the options that will
|
||||
# enable the cbtf-krell built type settings
|
||||
|
||||
compile_flags = "-O2 -g"
|
||||
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[:]:
|
||||
if word.startswith('-DCMAKE_BUILD_TYPE'):
|
||||
cmakeOptions.remove(word)
|
||||
@@ -80,61 +88,66 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
|
||||
if word.startswith('-DCMAKE_C_FLAGS'):
|
||||
cmakeOptions.remove(word)
|
||||
BuildTypeOptions.extend([
|
||||
'-DCMAKE_BUILD_TYPE=None',
|
||||
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
|
||||
'-DCMAKE_C_FLAGS=%s' % compile_flags
|
||||
'-DCMAKE_BUILD_TYPE=None',
|
||||
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
|
||||
'-DCMAKE_C_FLAGS=%s' % compile_flags
|
||||
])
|
||||
|
||||
cmakeOptions.extend(BuildTypeOptions)
|
||||
|
||||
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
|
||||
# in system paths (or other locations outside of BOOST_ROOT
|
||||
# or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
|
||||
# Defaults to OFF.
|
||||
# Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching
|
||||
# in system paths (or other locations outside of BOOST_ROOT
|
||||
# or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
|
||||
# Defaults to OFF.
|
||||
|
||||
if '+runtime' in spec:
|
||||
# Install message tag include file for use in Intel MIC cbtf-krell build
|
||||
# FIXME
|
||||
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')
|
||||
])
|
||||
if '+runtime' in spec:
|
||||
# Install message tag include file for use in Intel MIC
|
||||
# cbtf-krell build
|
||||
# FIXME
|
||||
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
|
||||
cmakeOptions.extend(std_cmake_args)
|
||||
# Add in the standard cmake arguments
|
||||
cmakeOptions.extend(std_cmake_args)
|
||||
|
||||
# Adjust the standard cmake arguments to what we want the build type, etc to be
|
||||
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
|
||||
|
||||
# Invoke cmake
|
||||
cmake('..', *cmakeOptions)
|
||||
# Adjust the standard cmake arguments to what we want the build
|
||||
# type, etc to be
|
||||
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
|
||||
|
||||
else:
|
||||
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')
|
||||
])
|
||||
# Invoke cmake
|
||||
cmake('..', *cmakeOptions)
|
||||
|
||||
# Add in the standard cmake arguments
|
||||
cmakeOptions.extend(std_cmake_args)
|
||||
else:
|
||||
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
|
||||
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
|
||||
|
||||
# Invoke cmake
|
||||
cmake('..', *cmakeOptions)
|
||||
# Add in the standard cmake arguments
|
||||
cmakeOptions.extend(std_cmake_args)
|
||||
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
# Adjust the standard cmake arguments to what we want the build
|
||||
# type, etc to be
|
||||
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
|
||||
|
||||
# Invoke cmake
|
||||
cmake('..', *cmakeOptions)
|
||||
|
||||
make("clean")
|
||||
make()
|
||||
make("install")
|
||||
|
42
var/spack/repos/builtin/packages/cdo/package.py
Normal file
42
var/spack/repos/builtin/packages/cdo/package.py
Normal file
@@ -0,0 +1,42 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cdo(Package):
|
||||
"""CDO is a collection of command line Operators to manipulate and analyse
|
||||
Climate and NWP model Data. """
|
||||
|
||||
homepage = "https://code.zmaw.de/projects/cdo"
|
||||
url = "https://code.zmaw.de/attachments/download/10198/cdo-1.6.9.tar.gz"
|
||||
|
||||
version('1.6.9', 'bf0997bf20e812f35e10188a930e24e2')
|
||||
|
||||
depends_on('netcdf')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix={0}'.format(prefix))
|
||||
make()
|
||||
make('install')
|
@@ -26,11 +26,20 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
|
||||
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/"
|
||||
url = "https://github.com/USCiLab/cereal/archive/v1.1.2.tar.gz"
|
||||
|
||||
version('1.2.0', 'e372c9814696481dbdb7d500e1410d2b')
|
||||
version('1.1.2', '34d4ad174acbff005c36d4d10e48cbb9')
|
||||
version('1.1.1', '0ceff308c38f37d5b5f6df3927451c27')
|
||||
version('1.1.0', '9f2d5f72e935c54f4c6d23e954ce699f')
|
||||
@@ -39,7 +48,7 @@ class Cereal(Package):
|
||||
|
||||
patch("Werror.patch")
|
||||
|
||||
depends_on("cmake @2.6.2:")
|
||||
depends_on('cmake@2.6.2:', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Don't use -Werror
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cfitsio(Package):
|
||||
"""
|
||||
CFITSIO is a library of C and Fortran subroutines for reading and writing
|
||||
|
@@ -27,10 +27,12 @@
|
||||
|
||||
|
||||
class Cgal(Package):
|
||||
"""
|
||||
CGAL is a software project that provides easy access to efficient and reliable geometric algorithms in the form of
|
||||
a C++ library. CGAL is used in various areas needing geometric computation, such as geographic information systems,
|
||||
computer aided design, molecular biology, medical imaging, computer graphics, and robotics.
|
||||
"""CGAL is a software project that provides easy access to efficient and
|
||||
reliable geometric algorithms in the form of a C++ library. CGAL
|
||||
is used in various areas needing geometric computation, such as
|
||||
geographic information systems, computer aided design, molecular
|
||||
biology, medical imaging, computer graphics, and robotics.
|
||||
|
||||
"""
|
||||
homepage = 'http://www.cgal.org/'
|
||||
url = 'https://github.com/CGAL/cgal/archive/releases/CGAL-4.7.tar.gz'
|
||||
@@ -38,15 +40,18 @@ class Cgal(Package):
|
||||
version('4.7', '4826714810f3b4c65cac96b90fb03b67')
|
||||
version('4.6.3', 'e8ee2ecc8d2b09b94a121c09257b576d')
|
||||
|
||||
# Installation instructions : http://doc.cgal.org/latest/Manual/installation.html
|
||||
variant('shared', default=True, description='Enables the build of shared libraries')
|
||||
variant('debug', default=False, description='Builds a debug version of the libraries')
|
||||
# Installation instructions :
|
||||
# http://doc.cgal.org/latest/Manual/installation.html
|
||||
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('mpfr')
|
||||
depends_on('gmp')
|
||||
depends_on('zlib')
|
||||
depends_on('cmake')
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
# FIXME : Qt5 dependency missing (needs Qt5 and OpenGL)
|
||||
# FIXME : Optional third party libraries missing
|
||||
@@ -55,7 +60,8 @@ def install(self, spec, prefix):
|
||||
|
||||
options = []
|
||||
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:
|
||||
options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
|
||||
else:
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cgm(Package):
|
||||
"""The Common Geometry Module, Argonne (CGMA) is a code library
|
||||
which provides geometry functionality used for mesh generation and
|
||||
@@ -33,7 +34,7 @@ class Cgm(Package):
|
||||
|
||||
version('13.1.1', '4e8dbc4ba8f65767b29f985f7a23b01f')
|
||||
version('13.1.0', 'a6c7b22660f164ce893fb974f9cb2028')
|
||||
version('13.1' , '95f724bda04919fc76818a5b7bc0b4ed')
|
||||
version('13.1', '95f724bda04919fc76818a5b7bc0b4ed')
|
||||
|
||||
depends_on("mpi")
|
||||
|
||||
@@ -42,7 +43,6 @@ def patch(self):
|
||||
'//\1',
|
||||
'geom/parallel/CGMReadParallel.cpp')
|
||||
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--with-mpi",
|
||||
"--prefix=%s" % prefix,
|
||||
|
73
var/spack/repos/builtin/packages/cgns/package.py
Normal file
73
var/spack/repos/builtin/packages/cgns/package.py
Normal file
@@ -0,0 +1,73 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cgns(Package):
|
||||
"""The CFD General Notation System (CGNS) provides a general, portable,
|
||||
and extensible standard for the storage and retrieval of computational
|
||||
fluid dynamics (CFD) analysis data."""
|
||||
|
||||
homepage = "http://cgns.github.io/"
|
||||
url = "https://github.com/CGNS/CGNS/archive/v3.3.0.tar.gz"
|
||||
|
||||
version('3.3.0', '64e5e8d97144c1462bee9ea6b2a81d7f')
|
||||
|
||||
variant('hdf5', default=True, description='Enable HDF5 interface')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('hdf5', when='+hdf5')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake_args = std_cmake_args[:]
|
||||
|
||||
if self.compiler.f77 and self.compiler.fc:
|
||||
cmake_args.append('-DCGNS_ENABLE_FORTRAN=ON')
|
||||
else:
|
||||
cmake_args.append('-DCGNS_ENABLE_FORTRAN=OFF')
|
||||
|
||||
if '+hdf5' in spec:
|
||||
cmake_args.extend([
|
||||
'-DCGNS_ENABLE_HDF5=ON',
|
||||
'-DHDF5_NEEDS_ZLIB=ON'
|
||||
])
|
||||
|
||||
if spec.satisfies('^hdf5+mpi'):
|
||||
cmake_args.append('-DHDF5_NEEDS_MPI=ON')
|
||||
else:
|
||||
cmake_args.append('-DHDF5_NEEDS_MPI=OFF')
|
||||
|
||||
if spec.satisfies('^hdf5+szip'):
|
||||
cmake_args.append('-DHDF5_NEEDS_SZIP=ON')
|
||||
else:
|
||||
cmake_args.append('-DHDF5_NEEDS_SZIP=OFF')
|
||||
else:
|
||||
cmake_args.append('-DCGNS_ENABLE_HDF5=OFF')
|
||||
|
||||
with working_dir('spack-build', create=True):
|
||||
cmake('..', *cmake_args)
|
||||
|
||||
make()
|
||||
make('install')
|
@@ -25,16 +25,18 @@
|
||||
from spack import *
|
||||
from spack.util.environment import *
|
||||
|
||||
|
||||
class Cityhash(Package):
|
||||
homepage = "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('master', branch='master', git='https://github.com/google/cityhash.git')
|
||||
version('2013-07-31', 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):
|
||||
configure('--enable-sse4.2', '--prefix=%s' % prefix)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
@@ -24,22 +24,26 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cleverleaf(Package):
|
||||
"""
|
||||
CleverLeaf is a hydrodynamics mini-app that extends CloverLeaf with Adaptive
|
||||
Mesh Refinement using the SAMRAI toolkit from Lawrence Livermore National
|
||||
Laboratory. The primary goal of CleverLeaf is to evaluate the application of
|
||||
AMR to the Lagrangian-Eulerian hydrodynamics scheme used by CloverLeaf.
|
||||
"""CleverLeaf is a hydrodynamics mini-app that extends CloverLeaf with
|
||||
Adaptive Mesh Refinement using the SAMRAI toolkit from Lawrence
|
||||
Livermore National Laboratory. The primary goal of CleverLeaf is
|
||||
to evaluate the application of AMR to the Lagrangian-Eulerian
|
||||
hydrodynamics scheme used by CloverLeaf.
|
||||
|
||||
"""
|
||||
|
||||
homepage = "http://uk-mac.github.io/CleverLeaf/"
|
||||
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("hdf5+mpi")
|
||||
depends_on("boost")
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake(*std_cmake_args)
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cloog(Package):
|
||||
"""CLooG is a free software and library to generate code for
|
||||
scanning Z-polyhedra. That is, it finds a code (e.g. in C,
|
||||
|
@@ -24,12 +24,14 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cmake(Package):
|
||||
"""A cross-platform, open-source build system. CMake is a family of
|
||||
tools designed to build, test and package software."""
|
||||
homepage = 'https://www.cmake.org'
|
||||
url = 'https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz'
|
||||
|
||||
version('3.6.0', 'aa40fbecf49d99c083415c2411d12db9')
|
||||
version('3.5.2', '701386a1b5ec95f8d1075ecf96383e02')
|
||||
version('3.5.1', 'ca051f4a66375c89d1a524e726da0296')
|
||||
version('3.5.0', '33c5d09d4c33d4ffcc63578a6ba8777e')
|
||||
@@ -39,20 +41,24 @@ class Cmake(Package):
|
||||
version('3.0.2', 'db4c687a31444a929d2fdc36c4dfb95f')
|
||||
version('2.8.10.2', '097278785da7182ec0aea8769d06860c')
|
||||
|
||||
variant('ncurses', default=True, description='Enables the build of the ncurses gui')
|
||||
variant('openssl', default=True, description="Enables CMake's OpenSSL features")
|
||||
variant('ncurses', default=True,
|
||||
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('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('openssl', when='+openssl')
|
||||
depends_on('qt', when='+qt')
|
||||
depends_on('python@2.7.11:', when='+doc')
|
||||
depends_on('py-sphinx', when='+doc')
|
||||
depends_on('python@2.7.11:', when='+doc', type='build')
|
||||
depends_on('py-sphinx', when='+doc', type='build')
|
||||
|
||||
def url_for_version(self, version):
|
||||
"""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):
|
||||
"""
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cmocka(Package):
|
||||
"""Unit-testing framework in pure C"""
|
||||
homepage = "https://cmocka.org/"
|
||||
@@ -32,9 +33,11 @@ class Cmocka(Package):
|
||||
version('1.0.1', 'ed861e501a21a92b2af63e466df2015e')
|
||||
parallel = False
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
with working_dir('spack-build', create=True):
|
||||
cmake('..', *std_cmake_args)
|
||||
cmake('..', *std_cmake_args)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cnmem(Package):
|
||||
"""CNMem mempool for CUDA devices"""
|
||||
homepage = "https://github.com/NVIDIA/cnmem"
|
||||
@@ -31,6 +32,6 @@ class Cnmem(Package):
|
||||
version('git', git='https://github.com/NVIDIA/cnmem.git', branch="master")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('.',*std_cmake_args)
|
||||
make()
|
||||
make('install')
|
||||
cmake('.', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Coreutils(Package):
|
||||
"""The GNU Core Utilities are the basic file, shell and text
|
||||
manipulation utilities of the GNU operating system. These are
|
||||
|
178
var/spack/repos/builtin/packages/cp2k/package.py
Normal file
178
var/spack/repos/builtin/packages/cp2k/package.py
Normal file
@@ -0,0 +1,178 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
import os
|
||||
import shutil
|
||||
import copy
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cp2k(Package):
|
||||
"""CP2K is a quantum chemistry and solid state physics software package
|
||||
that can perform atomistic simulations of solid state, liquid, molecular,
|
||||
periodic, material, crystal, and biological systems
|
||||
"""
|
||||
homepage = 'https://www.cp2k.org'
|
||||
url = 'https://sourceforge.net/projects/cp2k/files/cp2k-3.0.tar.bz2'
|
||||
|
||||
version('3.0', 'c05bc47335f68597a310b1ed75601d35')
|
||||
|
||||
variant('mpi', default=True, description='Enable MPI support')
|
||||
variant('plumed', default=False, description='Enable PLUMED support')
|
||||
|
||||
depends_on('python', type='build')
|
||||
|
||||
depends_on('lapack')
|
||||
depends_on('blas')
|
||||
depends_on('fftw')
|
||||
|
||||
depends_on('mpi', when='+mpi')
|
||||
depends_on('scalapack', when='+mpi')
|
||||
depends_on('plumed+shared+mpi', when='+plumed+mpi')
|
||||
depends_on('plumed+shared~mpi', when='+plumed~mpi')
|
||||
|
||||
# TODO : add dependency on libint
|
||||
# TODO : add dependency on libsmm, libxsmm
|
||||
# TODO : add dependency on elpa
|
||||
# TODO : add dependency on CUDA
|
||||
# TODO : add dependency on PEXSI
|
||||
# TODO : add dependency on QUIP
|
||||
# TODO : add dependency on libwannier90
|
||||
|
||||
parallel = False
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Construct a proper filename for the architecture file
|
||||
cp2k_architecture = '{0.architecture}-{0.compiler.name}'.format(spec)
|
||||
cp2k_version = 'sopt' if '~mpi' in spec else 'popt'
|
||||
makefile_basename = '.'.join([cp2k_architecture, cp2k_version])
|
||||
makefile = join_path('arch', makefile_basename)
|
||||
|
||||
# Write the custom makefile
|
||||
with open(makefile, 'w') as mkf:
|
||||
# Optimization flags
|
||||
optflags = {
|
||||
'gcc': ['-O2',
|
||||
'-ffast-math',
|
||||
'-ffree-form',
|
||||
'-ffree-line-length-none',
|
||||
'-ftree-vectorize',
|
||||
'-funroll-loops',
|
||||
'-mtune=native'],
|
||||
'intel': ['-O2',
|
||||
'-pc64',
|
||||
'-unroll',
|
||||
'-heap-arrays 64']
|
||||
}
|
||||
cppflags = [
|
||||
'-D__FFTW3',
|
||||
'-I' + spec['fftw'].prefix.include
|
||||
]
|
||||
fcflags = copy.deepcopy(optflags[self.spec.compiler.name])
|
||||
fcflags.extend([
|
||||
'-I' + spec['fftw'].prefix.include
|
||||
])
|
||||
ldflags = ['-L' + spec['fftw'].prefix.lib]
|
||||
libs = []
|
||||
if '+plumed' in self.spec:
|
||||
# Include Plumed.inc in the Makefile
|
||||
mkf.write('include {0}\n'.format(
|
||||
join_path(self.spec['plumed'].prefix.lib,
|
||||
'plumed',
|
||||
'src',
|
||||
'lib',
|
||||
'Plumed.inc')
|
||||
))
|
||||
# Add required macro
|
||||
cppflags.extend(['-D__PLUMED2'])
|
||||
libs.extend([
|
||||
join_path(self.spec['plumed'].prefix.lib, 'libplumed.so')
|
||||
])
|
||||
|
||||
mkf.write('CC = {0.compiler.cc}\n'.format(self))
|
||||
if '%intel' in self.spec:
|
||||
# CPP is a commented command in Intel arch of CP2K
|
||||
# This is the hack through which cp2k developers avoid doing :
|
||||
#
|
||||
# ${CPP} <file>.F > <file>.f90
|
||||
#
|
||||
# and use `-fpp` instead
|
||||
mkf.write('CPP = # {0.compiler.cc} -P\n'.format(self))
|
||||
mkf.write('AR = xiar -r\n')
|
||||
else:
|
||||
mkf.write('CPP = {0.compiler.cc} -E\n'.format(self))
|
||||
mkf.write('AR = ar -r\n')
|
||||
fc = self.compiler.fc if '~mpi' in spec else self.spec['mpi'].mpifc
|
||||
mkf.write('FC = {0}\n'.format(fc))
|
||||
mkf.write('LD = {0}\n'.format(fc))
|
||||
# Intel
|
||||
if '%intel' in self.spec:
|
||||
cppflags.extend([
|
||||
'-D__INTEL_COMPILER',
|
||||
'-D__MKL'
|
||||
])
|
||||
fcflags.extend([
|
||||
'-diag-disable 8290,8291,10010,10212,11060',
|
||||
'-free',
|
||||
'-fpp'
|
||||
])
|
||||
# MPI
|
||||
if '+mpi' in self.spec:
|
||||
cppflags.extend([
|
||||
'-D__parallel',
|
||||
'-D__SCALAPACK'
|
||||
])
|
||||
ldflags.extend([
|
||||
'-L' + spec['scalapack'].prefix.lib
|
||||
])
|
||||
libs.extend(spec['scalapack'].scalapack_shared_libs)
|
||||
|
||||
# LAPACK / BLAS
|
||||
ldflags.extend([
|
||||
'-L' + spec['lapack'].prefix.lib,
|
||||
'-L' + spec['blas'].prefix.lib
|
||||
])
|
||||
libs.extend([
|
||||
join_path(spec['fftw'].prefix.lib, 'libfftw3.so'),
|
||||
spec['lapack'].lapack_shared_lib,
|
||||
spec['blas'].blas_shared_lib
|
||||
])
|
||||
|
||||
# Write compiler flags to file
|
||||
mkf.write('CPPFLAGS = {0}\n'.format(' '.join(cppflags)))
|
||||
mkf.write('FCFLAGS = {0}\n'.format(' '.join(fcflags)))
|
||||
mkf.write('LDFLAGS = {0}\n'.format(' '.join(ldflags)))
|
||||
mkf.write('LIBS = {0}\n'.format(' '.join(libs)))
|
||||
|
||||
with working_dir('makefiles'):
|
||||
# Apparently the Makefile bases its paths on PWD
|
||||
# so we need to set PWD = os.getcwd()
|
||||
pwd_backup = env['PWD']
|
||||
env['PWD'] = os.getcwd()
|
||||
make('ARCH={0}'.format(cp2k_architecture),
|
||||
'VERSION={0}'.format(cp2k_version))
|
||||
env['PWD'] = pwd_backup
|
||||
exe_dir = join_path('exe', cp2k_architecture)
|
||||
shutil.copytree(exe_dir, self.prefix.bin)
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cppcheck(Package):
|
||||
"""A tool for static C/C++ code analysis."""
|
||||
homepage = "http://cppcheck.sourceforge.net/"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cram(Package):
|
||||
"""Cram runs many small MPI jobs inside one large MPI job."""
|
||||
homepage = "https://github.com/llnl/cram"
|
||||
@@ -33,6 +34,7 @@ class Cram(Package):
|
||||
|
||||
extends('python')
|
||||
depends_on("mpi")
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake(".", *std_cmake_args)
|
||||
|
@@ -25,12 +25,15 @@
|
||||
import glob
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cryptopp(Package):
|
||||
"""Crypto++ is an open-source C++ library of cryptographic schemes. The
|
||||
library supports a number of different cryptography algorithms, including
|
||||
authenticated encryption schemes (GCM, CCM), hash functions (SHA-1, SHA2),
|
||||
public-key encryption (RSA, DSA), and a few obsolete/historical encryption
|
||||
algorithms (MD5, Panama)."""
|
||||
library supports a number of different cryptography algorithms,
|
||||
including authenticated encryption schemes (GCM, CCM), hash
|
||||
functions (SHA-1, SHA2), public-key encryption (RSA, DSA), and a
|
||||
few obsolete/historical encryption algorithms (MD5, Panama).
|
||||
|
||||
"""
|
||||
|
||||
homepage = "http://www.cryptopp.com"
|
||||
base_url = "http://www.cryptopp.com"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Cscope(Package):
|
||||
"""Cscope is a developer's tool for browsing source code."""
|
||||
homepage = "http://http://cscope.sourceforge.net/"
|
||||
|
@@ -28,8 +28,8 @@
|
||||
|
||||
class Cube(Package):
|
||||
"""
|
||||
Cube the profile viewer for Score-P and Scalasca profiles. It displays a multi-dimensional performance space
|
||||
consisting of the dimensions:
|
||||
Cube the profile viewer for Score-P and Scalasca profiles. It displays a
|
||||
multi-dimensional performance space consisting of the dimensions:
|
||||
- performance metric
|
||||
- call path
|
||||
- system resource
|
||||
@@ -38,14 +38,17 @@ class Cube(Package):
|
||||
homepage = "http://www.scalasca.org/software/cube-4.x/download.html"
|
||||
url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz"
|
||||
|
||||
version('4.3.4', '50f73060f55311cb12c5b3cb354d59fa',
|
||||
url='http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3.4.tar.gz')
|
||||
version('4.3.3', '07e109248ed8ffc7bdcce614264a2909',
|
||||
url='http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3.3.tar.gz')
|
||||
|
||||
version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20',
|
||||
url="http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz")
|
||||
|
||||
# TODO : add variant that builds GUI on top of Qt
|
||||
|
||||
depends_on('zlib')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure_args = ["--prefix=%s" % prefix,
|
||||
"--without-paraver",
|
||||
|
@@ -26,22 +26,27 @@
|
||||
from glob import glob
|
||||
import os
|
||||
|
||||
|
||||
class Cuda(Package):
|
||||
"""CUDA is a parallel computing platform and programming model invented by
|
||||
NVIDIA. It enables dramatic increases in computing performance by harnessing
|
||||
the power of the graphics processing unit (GPU).
|
||||
"""CUDA is a parallel computing platform and programming model invented
|
||||
by NVIDIA. It enables dramatic increases in computing performance by
|
||||
harnessing the power of the graphics processing unit (GPU).
|
||||
|
||||
Note: NVIDIA does not provide a download URL for CUDA so you will need to
|
||||
download it yourself. Go to https://developer.nvidia.com/cuda-downloads
|
||||
and select your Operating System, Architecture, Distribution, and Version.
|
||||
For the Installer Type, select runfile and click Download. Spack will search
|
||||
your current directory for this file. Alternatively, add this file to a
|
||||
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: NVIDIA does not provide a download URL for CUDA so you will
|
||||
need to download it yourself. Go to
|
||||
https://developer.nvidia.com/cuda-downloads and select your Operating
|
||||
System, Architecture, Distribution, and Version. For the Installer
|
||||
Type, select runfile and click Download. Spack will search your
|
||||
current directory for this file. Alternatively, add this file to a
|
||||
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
|
||||
CUDA. These will need to be installed manually. See:
|
||||
http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux for details."""
|
||||
Note: This package does not currently install the drivers necessary
|
||||
to run CUDA. These will need to be installed manually. See:
|
||||
http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux for
|
||||
details.
|
||||
|
||||
"""
|
||||
|
||||
homepage = "http://www.nvidia.com/object/cuda_home_new.html"
|
||||
|
||||
@@ -50,15 +55,15 @@ class Cuda(Package):
|
||||
version('6.5.14', '90b1b8f77313600cc294d9271741f4da', expand=False,
|
||||
url="file://%s/cuda_6.5.14_linux_64.run" % os.getcwd())
|
||||
|
||||
|
||||
def install(self, spec, prefix):
|
||||
runfile = glob(os.path.join(self.stage.path, 'cuda*.run'))[0]
|
||||
chmod = which('chmod')
|
||||
chmod('+x', runfile)
|
||||
runfile = which(runfile)
|
||||
|
||||
# Note: NVIDIA does not officially support many newer versions of compilers.
|
||||
# For example, on CentOS 6, you must use GCC 4.4.7 or older. See:
|
||||
# Note: NVIDIA does not officially support many newer versions of
|
||||
# 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
|
||||
# for details.
|
||||
|
||||
@@ -68,4 +73,3 @@ def install(self, spec, prefix):
|
||||
'--toolkit', # install CUDA Toolkit
|
||||
'--toolkitpath=%s' % prefix
|
||||
)
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Curl(Package):
|
||||
"""cURL is an open source command line tool and library for
|
||||
transferring data with URL syntax"""
|
||||
@@ -31,6 +32,8 @@ class Curl(Package):
|
||||
homepage = "http://curl.haxx.se"
|
||||
url = "http://curl.haxx.se/download/curl-7.46.0.tar.bz2"
|
||||
|
||||
version('7.50.1', '015f6a0217ca6f2c5442ca406476920b')
|
||||
version('7.49.1', '6bb1f7af5b58b30e4e6414b8c1abccab')
|
||||
version('7.47.1', '9ea3123449439bbd960cd25cf98796fb')
|
||||
version('7.46.0', '9979f989a2a9930d10f1b3deeabc2148')
|
||||
version('7.45.0', '62c1a352b28558f25ba6209214beadc8')
|
||||
|
@@ -25,33 +25,37 @@
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
|
||||
class Czmq(Package):
|
||||
""" A C interface to the ZMQ library """
|
||||
homepage = "http://czmq.zeromq.org"
|
||||
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')
|
||||
depends_on('automake')
|
||||
depends_on('autoconf')
|
||||
depends_on('pkg-config')
|
||||
depends_on('libtool', type='build')
|
||||
depends_on('automake', type='build')
|
||||
depends_on('autoconf', type='build')
|
||||
depends_on('pkg-config', type='build')
|
||||
depends_on('zeromq')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
bash = which("bash")
|
||||
# Work around autogen.sh oddities
|
||||
# bash = which("bash")
|
||||
# bash("./autogen.sh")
|
||||
mkdirp("config")
|
||||
autoreconf = which("autoreconf")
|
||||
autoreconf("--install", "--verbose", "--force",
|
||||
"-I", "config",
|
||||
"-I", os.path.join(spec['pkg-config'].prefix, "share", "aclocal"),
|
||||
"-I", os.path.join(spec['automake'].prefix, "share", "aclocal"),
|
||||
"-I", os.path.join(spec['libtool'].prefix, "share", "aclocal"),
|
||||
)
|
||||
"-I", "config",
|
||||
"-I", os.path.join(spec['pkg-config'].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)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
28
var/spack/repos/builtin/packages/daal/package.py
Normal file
28
var/spack/repos/builtin/packages/daal/package.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
from spack.pkg.builtin.intel import IntelInstaller
|
||||
|
||||
|
||||
class Daal(IntelInstaller):
|
||||
"""Intel Data Analytics Acceleration Library.
|
||||
|
||||
Note: You will have to add the download file to a
|
||||
mirror so that Spack can find it. For instructions on how to set up a
|
||||
mirror, see http://software.llnl.gov/spack/mirrors.html"""
|
||||
|
||||
homepage = "https://software.intel.com/en-us/daal"
|
||||
|
||||
version('2016.2.181', 'aad2aa70e5599ebfe6f85b29d8719d46',
|
||||
url="file://%s/l_daal_2016.2.181.tgz" % os.getcwd())
|
||||
version('2016.3.210', 'ad747c0dd97dace4cad03cf2266cad28',
|
||||
url="file://%s/l_daal_2016.3.210.tgz" % os.getcwd())
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
self.intel_prefix = os.path.join(prefix, "pkg")
|
||||
IntelInstaller.install(self, spec, prefix)
|
||||
|
||||
daal_dir = os.path.join(self.intel_prefix, "daal")
|
||||
for f in os.listdir(daal_dir):
|
||||
os.symlink(os.path.join(daal_dir, f), os.path.join(self.prefix, f))
|
@@ -26,17 +26,22 @@
|
||||
|
||||
|
||||
class Dakota(Package):
|
||||
"""
|
||||
The Dakota toolkit provides a flexible, extensible interface between analysis codes and iterative systems
|
||||
analysis methods. Dakota contains algorithms for:
|
||||
"""The Dakota toolkit provides a flexible, extensible interface between
|
||||
analysis codes and iterative systems analysis methods. Dakota
|
||||
contains algorithms for:
|
||||
|
||||
- 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;
|
||||
- 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/'
|
||||
@@ -45,8 +50,10 @@ class Dakota(Package):
|
||||
|
||||
version('6.3', '05a58d209fae604af234c894c3f73f6d')
|
||||
|
||||
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')
|
||||
variant('shared', default=True,
|
||||
description='Enables the build of shared libraries')
|
||||
variant('mpi', default=True, description='Activates MPI support')
|
||||
|
||||
depends_on('blas')
|
||||
@@ -55,6 +62,7 @@ class Dakota(Package):
|
||||
|
||||
depends_on('python')
|
||||
depends_on('boost')
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def url_for_version(self, version):
|
||||
return Dakota._url_str.format(version=version)
|
||||
@@ -63,12 +71,17 @@ def install(self, spec, prefix):
|
||||
options = []
|
||||
options.extend(std_cmake_args)
|
||||
|
||||
options.extend(['-DCMAKE_BUILD_TYPE:STRING=%s' % ('Debug' if '+debug' in spec else 'Release'),
|
||||
'-DBUILD_SHARED_LIBS:BOOL=%s' % ('ON' if '+shared' in spec else 'OFF')])
|
||||
options.extend([
|
||||
'-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:
|
||||
options.extend(['-DDAKOTA_HAVE_MPI:BOOL=ON',
|
||||
'-DMPI_CXX_COMPILER:STRING=%s' % join_path(spec['mpi'].prefix.bin, 'mpicxx')])
|
||||
options.extend([
|
||||
'-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')
|
||||
source_directory = self.stage.source_path
|
||||
|
@@ -24,15 +24,19 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Damselfly(Package):
|
||||
"""Damselfly is a model-based parallel network simulator."""
|
||||
homepage = "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')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
with working_dir('spack-build', create=True):
|
||||
cmake('-DCMAKE_BUILD_TYPE=release', '..', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
||||
cmake('-DCMAKE_BUILD_TYPE=release', '..', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
||||
|
45
var/spack/repos/builtin/packages/datamash/package.py
Normal file
45
var/spack/repos/builtin/packages/datamash/package.py
Normal file
@@ -0,0 +1,45 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Datamash(Package):
|
||||
"""
|
||||
GNU datamash is a command-line program which performs basic numeric,
|
||||
textual and statistical operations on input textual data files.
|
||||
"""
|
||||
|
||||
homepage = "https://www.gnu.org/software/datamash/"
|
||||
url = "http://ftp.gnu.org/gnu/datamash/datamash-1.0.5.tar.gz"
|
||||
|
||||
version('1.1.0', '79a6affca08107a095e97e4237fc8775')
|
||||
version('1.0.7', '9f317bab07454032ba9c068e7f17b04b')
|
||||
version('1.0.6', 'ff26fdef0f343cb695cf1853e14a1a5b')
|
||||
version('1.0.5', '9a29549dc7feca49fdc5fab696614e11')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix=%s' % prefix)
|
||||
make()
|
||||
make("install")
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dbus(Package):
|
||||
"""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
|
||||
|
@@ -37,30 +37,53 @@ class Dealii(Package):
|
||||
version('8.3.0', 'fc6cdcb16309ef4bea338a4f014de6fa')
|
||||
version('8.2.1', '71c728dbec14f371297cd405776ccf08')
|
||||
version('8.1.0', 'aa8fadc2ce5eb674f44f997461bf668d')
|
||||
version('dev', 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('arpack', default=True, description='Compile with Arpack and PArpack (only with MPI)')
|
||||
variant('doc', default=False, description='Compile with documentation')
|
||||
variant('arpack', default=True,
|
||||
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('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('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('p4est', default=True, description='Compile with P4est (only with MPI)')
|
||||
variant('petsc', default=True, description='Compile with Petsc (only with MPI)')
|
||||
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('p4est', default=True,
|
||||
description='Compile with P4est (only with MPI)')
|
||||
variant('petsc', default=True,
|
||||
description='Compile with Petsc (only with MPI)')
|
||||
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
|
||||
depends_on("blas")
|
||||
# Boost 1.58 is blacklisted, see
|
||||
# https://github.com/dealii/dealii/issues/1591
|
||||
# Require at least 1.59
|
||||
depends_on("boost@1.59.0:+thread+system+serialization+iostreams", when='~mpi') # NOQA: ignore=E501
|
||||
depends_on("boost@1.59.0:+mpi+thread+system+serialization+iostreams", when='+mpi') # NOQA: ignore=E501
|
||||
# +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+mpi",
|
||||
when='@:8.4.1+mpi')
|
||||
# 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+mpi",
|
||||
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("cmake")
|
||||
depends_on("cmake", type='build')
|
||||
depends_on("lapack")
|
||||
depends_on("muparser")
|
||||
depends_on("suite-sparse")
|
||||
@@ -73,20 +96,21 @@ class Dealii(Package):
|
||||
depends_on("doxygen+graphviz", when='+doc')
|
||||
depends_on("graphviz", when='+doc')
|
||||
depends_on("gsl", when='@8.5.0:+gsl')
|
||||
depends_on("gsl", when='@dev+gsl')
|
||||
depends_on("hdf5+mpi", when='+hdf5+mpi')
|
||||
depends_on("metis@5:", when='+metis')
|
||||
depends_on("netcdf+mpi", when="+netcdf+mpi")
|
||||
depends_on("netcdf-cxx", when='+netcdf+mpi')
|
||||
depends_on("oce", when='+oce')
|
||||
depends_on("p4est", when='+p4est+mpi')
|
||||
depends_on("petsc+mpi", when='+petsc+mpi')
|
||||
depends_on("slepc", when='+slepc+petsc+mpi')
|
||||
depends_on("petsc+mpi", when='@8.5.0:+petsc+mpi')
|
||||
depends_on("slepc", when='@8.5.0:+slepc+petsc+mpi')
|
||||
depends_on("petsc@:3.6.4+mpi", when='@:8.4.1+petsc+mpi')
|
||||
depends_on("slepc@:3.6.3", when='@:8.4.1+slepc+petsc+mpi')
|
||||
depends_on("trilinos", when='+trilinos+mpi')
|
||||
|
||||
# developer dependnecies
|
||||
depends_on("numdiff", when='@dev')
|
||||
depends_on("astyle@2.04", when='@dev')
|
||||
depends_on("numdiff", when='@develop')
|
||||
depends_on("astyle@2.04", when='@develop')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
options = []
|
||||
@@ -108,18 +132,33 @@ def install(self, spec, prefix):
|
||||
# of Spack's. Be more specific to avoid this.
|
||||
# Note that both lapack and blas are provided in -DLAPACK_XYZ.
|
||||
'-DLAPACK_FOUND=true',
|
||||
'-DLAPACK_INCLUDE_DIRS=%s;%s' %
|
||||
(spec['lapack'].prefix.include,
|
||||
spec['blas'].prefix.include),
|
||||
'-DLAPACK_LIBRARIES=%s;%s' %
|
||||
(spec['lapack'].lapack_shared_lib,
|
||||
spec['blas'].blas_shared_lib),
|
||||
'-DLAPACK_INCLUDE_DIRS=%s;%s' % (
|
||||
spec['lapack'].prefix.include, spec['blas'].prefix.include),
|
||||
'-DLAPACK_LIBRARIES=%s;%s' % (
|
||||
spec['lapack'].lapack_shared_lib,
|
||||
spec['blas'].blas_shared_lib),
|
||||
'-DMUPARSER_DIR=%s' % spec['muparser'].prefix,
|
||||
'-DUMFPACK_DIR=%s' % spec['suite-sparse'].prefix,
|
||||
'-DTBB_DIR=%s' % spec['tbb'].prefix,
|
||||
'-DZLIB_DIR=%s' % spec['zlib'].prefix
|
||||
])
|
||||
|
||||
if spec.satisfies('@8.5.0:'):
|
||||
options.extend([
|
||||
'-DDEAL_II_COMPONENT_PYTHON_BINDINGS=%s' %
|
||||
('ON' if '+python' in spec else 'OFF')
|
||||
])
|
||||
|
||||
# Set directory structure:
|
||||
if spec.satisfies('@:8.2.1'):
|
||||
options.extend(['-DDEAL_II_COMPONENT_COMPAT_FILES=OFF'])
|
||||
else:
|
||||
options.extend([
|
||||
'-DDEAL_II_EXAMPLES_RELDIR=share/deal.II/examples',
|
||||
'-DDEAL_II_DOCREADME_RELDIR=share/deal.II/',
|
||||
'-DDEAL_II_DOCHTML_RELDIR=share/deal.II/doc'
|
||||
])
|
||||
|
||||
# MPI
|
||||
if '+mpi' in spec:
|
||||
options.extend([
|
||||
@@ -135,7 +174,8 @@ def install(self, spec, prefix):
|
||||
|
||||
# Optional dependencies for which librariy names are the same as CMake
|
||||
# variables:
|
||||
for library in ('gsl', 'hdf5', 'p4est', 'petsc', 'slepc', 'trilinos', 'metis'): # NOQA: ignore=E501
|
||||
for library in (
|
||||
'gsl', 'hdf5', 'p4est', 'petsc', 'slepc', 'trilinos', 'metis'):
|
||||
if library in spec:
|
||||
options.extend([
|
||||
'-D%s_DIR=%s' % (library.upper(), spec[library].prefix),
|
||||
@@ -168,14 +208,14 @@ def install(self, spec, prefix):
|
||||
if '+netcdf' in spec:
|
||||
options.extend([
|
||||
'-DNETCDF_FOUND=true',
|
||||
'-DNETCDF_LIBRARIES=%s;%s' %
|
||||
(join_path(spec['netcdf-cxx'].prefix.lib,
|
||||
'libnetcdf_c++.%s' % dsuf),
|
||||
join_path(spec['netcdf'].prefix.lib,
|
||||
'libnetcdf.%s' % dsuf)),
|
||||
'-DNETCDF_INCLUDE_DIRS=%s;%s' %
|
||||
(spec['netcdf-cxx'].prefix.include,
|
||||
spec['netcdf'].prefix.include),
|
||||
'-DNETCDF_LIBRARIES=%s;%s' % (
|
||||
join_path(spec['netcdf-cxx'].prefix.lib,
|
||||
'libnetcdf_c++.%s' % dsuf),
|
||||
join_path(spec['netcdf'].prefix.lib,
|
||||
'libnetcdf.%s' % dsuf)),
|
||||
'-DNETCDF_INCLUDE_DIRS=%s;%s' % (
|
||||
spec['netcdf-cxx'].prefix.include,
|
||||
spec['netcdf'].prefix.include),
|
||||
])
|
||||
else:
|
||||
options.extend([
|
||||
@@ -194,115 +234,123 @@ def install(self, spec, prefix):
|
||||
])
|
||||
|
||||
cmake('.', *options)
|
||||
|
||||
make()
|
||||
make("test")
|
||||
if self.run_tests:
|
||||
make("test")
|
||||
make("install")
|
||||
|
||||
# run some MPI examples with different solvers from PETSc and Trilinos
|
||||
env['DEAL_II_DIR'] = prefix
|
||||
print('=====================================')
|
||||
print('============ EXAMPLES ===============')
|
||||
print('=====================================')
|
||||
# take bare-bones step-3
|
||||
print('=====================================')
|
||||
print('============ Step-3 =================')
|
||||
print('=====================================')
|
||||
with working_dir('examples/step-3'):
|
||||
cmake('.')
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
|
||||
# An example which uses Metis + PETSc
|
||||
# FIXME: switch step-18 to MPI
|
||||
with working_dir('examples/step-18'):
|
||||
if self.run_tests:
|
||||
env['DEAL_II_DIR'] = prefix
|
||||
print('=====================================')
|
||||
print('============= Step-18 ===============')
|
||||
print('============ EXAMPLES ===============')
|
||||
print('=====================================')
|
||||
# list the number of cycles to speed up
|
||||
filter_file(r'(end_time = 10;)', ('end_time = 3;'), 'step-18.cc')
|
||||
if '^petsc' in spec and '^metis' in spec:
|
||||
# take bare-bones step-3
|
||||
print('=====================================')
|
||||
print('============ Step-3 =================')
|
||||
print('=====================================')
|
||||
with working_dir('examples/step-3'):
|
||||
cmake('.')
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
|
||||
# take step-40 which can use both PETSc and Trilinos
|
||||
# FIXME: switch step-40 to MPI run
|
||||
with working_dir('examples/step-40'):
|
||||
print('=====================================')
|
||||
print('========== Step-40 PETSc ============')
|
||||
print('=====================================')
|
||||
# list the number of cycles to speed up
|
||||
filter_file(r'(const unsigned int n_cycles = 8;)',
|
||||
('const unsigned int n_cycles = 2;'), 'step-40.cc')
|
||||
cmake('.')
|
||||
if '^petsc' in spec:
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
|
||||
print('=====================================')
|
||||
print('========= Step-40 Trilinos ==========')
|
||||
print('=====================================')
|
||||
# change Linear Algebra to Trilinos
|
||||
# The below filter_file should be different for versions
|
||||
# before and after 8.4.0
|
||||
if spec.satisfies('@8.4.0:'):
|
||||
filter_file(r'(\/\/ #define FORCE_USE_OF_TRILINOS.*)',
|
||||
('#define FORCE_USE_OF_TRILINOS'), 'step-40.cc')
|
||||
else:
|
||||
filter_file(r'(#define USE_PETSC_LA.*)',
|
||||
('// #define USE_PETSC_LA'), 'step-40.cc')
|
||||
if '^trilinos+hypre' in spec:
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
|
||||
# the rest of the tests on step 40 only works for
|
||||
# dealii version 8.4.0 and after
|
||||
if spec.satisfies('@8.4.0:'):
|
||||
# An example which uses Metis + PETSc
|
||||
# FIXME: switch step-18 to MPI
|
||||
with working_dir('examples/step-18'):
|
||||
print('=====================================')
|
||||
print('=== Step-40 Trilinos SuperluDist ====')
|
||||
print('============= Step-18 ===============')
|
||||
print('=====================================')
|
||||
# change to direct solvers
|
||||
filter_file(r'(LA::SolverCG solver\(solver_control\);)', ('TrilinosWrappers::SolverDirect::AdditionalData data(false,"Amesos_Superludist"); TrilinosWrappers::SolverDirect solver(solver_control,data);'), 'step-40.cc') # NOQA: ignore=E501
|
||||
filter_file(r'(LA::MPI::PreconditionAMG preconditioner;)',
|
||||
(''), 'step-40.cc')
|
||||
filter_file(r'(LA::MPI::PreconditionAMG::AdditionalData data;)',
|
||||
(''), 'step-40.cc')
|
||||
filter_file(r'(preconditioner.initialize\(system_matrix, data\);)',
|
||||
(''), 'step-40.cc')
|
||||
filter_file(r'(solver\.solve \(system_matrix, completely_distributed_solution, system_rhs,)', ('solver.solve (system_matrix, completely_distributed_solution, system_rhs);'), 'step-40.cc') # NOQA: ignore=E501
|
||||
filter_file(r'(preconditioner\);)', (''), 'step-40.cc')
|
||||
if '^trilinos+superlu-dist' in spec:
|
||||
make('release')
|
||||
make('run', paralle=False)
|
||||
|
||||
print('=====================================')
|
||||
print('====== Step-40 Trilinos MUMPS =======')
|
||||
print('=====================================')
|
||||
# switch to Mumps
|
||||
filter_file(r'(Amesos_Superludist)',
|
||||
('Amesos_Mumps'), 'step-40.cc')
|
||||
if '^trilinos+mumps' in spec:
|
||||
# list the number of cycles to speed up
|
||||
filter_file(r'(end_time = 10;)', ('end_time = 3;'),
|
||||
'step-18.cc')
|
||||
if '^petsc' in spec and '^metis' in spec:
|
||||
cmake('.')
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
|
||||
print('=====================================')
|
||||
print('============ Step-36 ================')
|
||||
print('=====================================')
|
||||
with working_dir('examples/step-36'):
|
||||
if 'slepc' in spec:
|
||||
# take step-40 which can use both PETSc and Trilinos
|
||||
# FIXME: switch step-40 to MPI run
|
||||
with working_dir('examples/step-40'):
|
||||
print('=====================================')
|
||||
print('========== Step-40 PETSc ============')
|
||||
print('=====================================')
|
||||
# list the number of cycles to speed up
|
||||
filter_file(r'(const unsigned int n_cycles = 8;)',
|
||||
('const unsigned int n_cycles = 2;'), 'step-40.cc')
|
||||
cmake('.')
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
if '^petsc' in spec:
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
|
||||
print('=====================================')
|
||||
print('============ Step-54 ================')
|
||||
print('=====================================')
|
||||
with working_dir('examples/step-54'):
|
||||
if 'oce' in spec:
|
||||
cmake('.')
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
print('=====================================')
|
||||
print('========= Step-40 Trilinos ==========')
|
||||
print('=====================================')
|
||||
# change Linear Algebra to Trilinos
|
||||
# The below filter_file should be different for versions
|
||||
# before and after 8.4.0
|
||||
if spec.satisfies('@8.4.0:'):
|
||||
filter_file(r'(\/\/ #define FORCE_USE_OF_TRILINOS.*)',
|
||||
('#define FORCE_USE_OF_TRILINOS'),
|
||||
'step-40.cc')
|
||||
else:
|
||||
filter_file(r'(#define USE_PETSC_LA.*)',
|
||||
('// #define USE_PETSC_LA'), 'step-40.cc')
|
||||
if '^trilinos+hypre' in spec:
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
|
||||
# the rest of the tests on step 40 only works for
|
||||
# dealii version 8.4.0 and after
|
||||
if spec.satisfies('@8.4.0:'):
|
||||
print('=====================================')
|
||||
print('=== Step-40 Trilinos SuperluDist ====')
|
||||
print('=====================================')
|
||||
# change to direct solvers
|
||||
filter_file(r'(LA::SolverCG solver\(solver_control\);)', ('TrilinosWrappers::SolverDirect::AdditionalData data(false,"Amesos_Superludist"); TrilinosWrappers::SolverDirect solver(solver_control,data);'), 'step-40.cc') # noqa
|
||||
filter_file(
|
||||
r'(LA::MPI::PreconditionAMG preconditioner;)',
|
||||
(''), 'step-40.cc')
|
||||
filter_file(
|
||||
r'(LA::MPI::PreconditionAMG::AdditionalData data;)',
|
||||
(''), 'step-40.cc')
|
||||
filter_file(
|
||||
r'(preconditioner.initialize\(system_matrix, data\);)',
|
||||
(''), 'step-40.cc')
|
||||
filter_file(
|
||||
r'(solver\.solve \(system_matrix, completely_distributed_solution, system_rhs,)', ('solver.solve (system_matrix, completely_distributed_solution, system_rhs);'), 'step-40.cc') # noqa
|
||||
filter_file(
|
||||
r'(preconditioner\);)', (''), 'step-40.cc')
|
||||
if '^trilinos+superlu-dist' in spec:
|
||||
make('release')
|
||||
make('run', paralle=False)
|
||||
|
||||
print('=====================================')
|
||||
print('====== Step-40 Trilinos MUMPS =======')
|
||||
print('=====================================')
|
||||
# switch to Mumps
|
||||
filter_file(r'(Amesos_Superludist)',
|
||||
('Amesos_Mumps'), 'step-40.cc')
|
||||
if '^trilinos+mumps' in spec:
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
|
||||
print('=====================================')
|
||||
print('============ Step-36 ================')
|
||||
print('=====================================')
|
||||
with working_dir('examples/step-36'):
|
||||
if 'slepc' in spec:
|
||||
cmake('.')
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
|
||||
print('=====================================')
|
||||
print('============ Step-54 ================')
|
||||
print('=====================================')
|
||||
with working_dir('examples/step-54'):
|
||||
if 'oce' in spec:
|
||||
cmake('.')
|
||||
make('release')
|
||||
make('run', parallel=False)
|
||||
|
||||
def setup_environment(self, spack_env, env):
|
||||
env.set('DEAL_II_DIR', self.prefix)
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dia(Package):
|
||||
"""Dia is a program for drawing structured diagrams."""
|
||||
homepage = 'https://wiki.gnome.org/Apps/Dia'
|
||||
@@ -31,10 +32,10 @@ class Dia(Package):
|
||||
|
||||
version('0.97.3', '0e744a0f6a6c4cb6a089e4d955392c3c')
|
||||
|
||||
depends_on('intltool')
|
||||
depends_on('intltool', type='build')
|
||||
depends_on('gtkplus@2.6.0:')
|
||||
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('libxslt')
|
||||
depends_on('python')
|
||||
|
@@ -23,7 +23,6 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
import os
|
||||
import glob
|
||||
from spack import *
|
||||
|
||||
|
||||
@@ -35,9 +34,10 @@ class DocbookXml(Package):
|
||||
version('4.5', '03083e288e87a7e829e437358da7ef9e')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cp = which('cp')
|
||||
|
||||
install_args = ['-a', '-t', prefix]
|
||||
install_args.extend(glob.glob('*'))
|
||||
|
||||
cp(*install_args)
|
||||
for item in os.listdir('.'):
|
||||
src = os.path.abspath(item)
|
||||
dst = os.path.join(prefix, item)
|
||||
if os.path.isdir(item):
|
||||
install_tree(src, dst, symlinks=True)
|
||||
else:
|
||||
install(src, dst)
|
||||
|
@@ -39,14 +39,15 @@ class Doxygen(Package):
|
||||
version('1.8.10', '79767ccd986f12a0f949015efb5f058f')
|
||||
|
||||
# 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:")
|
||||
depends_on("flex")
|
||||
depends_on("bison")
|
||||
depends_on("cmake@2.8.12:", type='build')
|
||||
depends_on("flex", type='build')
|
||||
depends_on("bison", type='build')
|
||||
|
||||
# optional dependencies
|
||||
depends_on("graphviz", when="+graphviz")
|
||||
depends_on("graphviz", when="+graphviz", type='run')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('.', *std_cmake_args)
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dri2proto(Package):
|
||||
"""DRI2 Protocol Headers."""
|
||||
homepage = "http://http://cgit.freedesktop.org/xorg/proto/dri2proto/"
|
||||
|
@@ -22,9 +22,9 @@
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
import os
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtcmp(Package):
|
||||
"""The Datatype Comparison Library provides comparison operations and
|
||||
parallel sort algorithms for MPI applications."""
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dyninst(Package):
|
||||
"""API for dynamic binary instrumentation. Modify programs while they
|
||||
are executing without recompiling, re-linking, or re-executing."""
|
||||
@@ -43,6 +44,7 @@ class Dyninst(Package):
|
||||
depends_on("libelf")
|
||||
depends_on("libdwarf")
|
||||
depends_on("boost@1.42:")
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
# new version uses cmake
|
||||
def install(self, spec, prefix):
|
||||
@@ -54,16 +56,18 @@ def install(self, spec, prefix):
|
||||
'-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include,
|
||||
'-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib,
|
||||
'-DBoost_NO_SYSTEM_PATHS=TRUE',
|
||||
'-DLIBELF_INCLUDE_DIR=%s' % join_path(libelf.include, 'libelf'),
|
||||
'-DLIBELF_LIBRARIES=%s' % join_path(libelf.lib, 'libelf.so'),
|
||||
'-DLIBELF_INCLUDE_DIR=%s' % join_path(
|
||||
libelf.include, 'libelf'),
|
||||
'-DLIBELF_LIBRARIES=%s' % join_path(
|
||||
libelf.lib, 'libelf.so'),
|
||||
'-DLIBDWARF_INCLUDE_DIR=%s' % libdwarf.include,
|
||||
'-DLIBDWARF_LIBRARIES=%s' % join_path(libdwarf.lib, 'libdwarf.so'),
|
||||
'-DLIBDWARF_LIBRARIES=%s' % join_path(
|
||||
libdwarf.lib, 'libdwarf.so'),
|
||||
*std_cmake_args)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
||||
@when('@:8.1')
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=" + prefix)
|
||||
|
@@ -22,36 +22,41 @@
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Eigen(Package):
|
||||
"""
|
||||
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms
|
||||
Eigen is a C++ template library for linear algebra
|
||||
|
||||
Matrices, vectors, numerical solvers, and related algorithms
|
||||
"""
|
||||
|
||||
homepage = 'http://eigen.tuxfamily.org/'
|
||||
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('scotch', default=True, description='Enables scotch backend')
|
||||
variant('fftw', default=True, description='Enables FFTW backend')
|
||||
variant('suitesparse', default=True, description='Enables SuiteSparse support')
|
||||
variant('suitesparse', default=True,
|
||||
description='Enables SuiteSparse support')
|
||||
variant('mpfr', default=True,
|
||||
description='Enables support for multi-precisions FP via mpfr')
|
||||
|
||||
# TODO : dependency on googlehash, superlu, adolc missing
|
||||
|
||||
depends_on('cmake')
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('metis@5:', when='+metis')
|
||||
depends_on('scotch', when='+scotch')
|
||||
depends_on('fftw', when='+fftw')
|
||||
depends_on('suite-sparse', when='+suitesparse')
|
||||
depends_on('mpfr@2.3.0:') # Eigen 3.2.7 requires at least 2.3.0
|
||||
depends_on('gmp')
|
||||
depends_on('mpfr@2.3.0:', when="+mpfr")
|
||||
depends_on('gmp', when="+mpfr")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Elfutils(Package):
|
||||
"""elfutils is a collection of various binary tools such as
|
||||
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')
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
@@ -34,7 +34,8 @@ class Elpa(Package):
|
||||
homepage = 'http://elpa.mpcdf.mpg.de/'
|
||||
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')
|
||||
|
||||
|
@@ -23,23 +23,45 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import llnl.util.tty as tty
|
||||
|
||||
|
||||
class Emacs(Package):
|
||||
"""The Emacs programmable text editor."""
|
||||
|
||||
homepage = "https://www.gnu.org/software/emacs"
|
||||
url = "http://ftp.gnu.org/gnu/emacs/emacs-24.5.tar.gz"
|
||||
|
||||
version('24.5', 'd74b597503a68105e61b5b9f6d065b44')
|
||||
|
||||
variant('X', default=True, description="Enable a X toolkit (GTK+)")
|
||||
variant('gtkplus', default=False,
|
||||
description="Enable a GTK+ as X toolkit (ignored if ~X)")
|
||||
|
||||
depends_on('ncurses')
|
||||
# Emacs also depends on:
|
||||
# GTK or other widget library
|
||||
# libtiff, png, etc.
|
||||
# For now, we assume the system provides all that stuff.
|
||||
# For Ubuntu 14.04 LTS:
|
||||
# sudo apt-get install libgtk-3-dev libxpm-dev libtiff5-dev libjpeg8-dev libgif-dev libpng12-dev
|
||||
depends_on('libtiff', when='+X')
|
||||
depends_on('libpng', when='+X')
|
||||
depends_on('libxpm', when='+X')
|
||||
depends_on('giflib', when='+X')
|
||||
depends_on('gtkplus', when='+X+gtkplus')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix=%s' % prefix)
|
||||
args = []
|
||||
if '+X' in spec:
|
||||
if '+gtkplus' in spec:
|
||||
toolkit = 'gtk{0}'.format(spec['gtkplus'].version.up_to(1))
|
||||
else:
|
||||
toolkit = 'no'
|
||||
args = [
|
||||
'--with-x',
|
||||
'--with-x-toolkit={0}'.format(toolkit)
|
||||
]
|
||||
else:
|
||||
args = ['--without-x']
|
||||
if '+gtkplus' in spec:
|
||||
tty.warn('The variant +gtkplus is ignored if ~X is selected.')
|
||||
|
||||
configure('--prefix={0}'.format(prefix), *args)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -35,7 +35,7 @@ class EnvironmentModules(Package):
|
||||
version('3.2.10', '8b097fdcb90c514d7540bb55a3cb90fb')
|
||||
|
||||
# Dependencies:
|
||||
depends_on('tcl')
|
||||
depends_on('tcl', type=alldeps)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
tcl_spec = spec['tcl']
|
||||
@@ -46,17 +46,18 @@ def install(self, spec, prefix):
|
||||
"--without-tclx",
|
||||
"--with-tclx-ver=0.0",
|
||||
"--prefix=%s" % prefix,
|
||||
"--with-tcl=%s" % join_path(tcl_spec.prefix, 'lib'), # It looks for tclConfig.sh
|
||||
"--with-tcl-ver=%d.%d" % (tcl_spec.version.version[0], tcl_spec.version.version[1]),
|
||||
# It looks for tclConfig.sh
|
||||
"--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-dependency-tracking',
|
||||
'--disable-silent-rules',
|
||||
'--disable-versioning',
|
||||
'--disable-versioning',
|
||||
'--datarootdir=%s' % prefix.share,
|
||||
'CPPFLAGS=%s' % ' '.join(CPPFLAGS)
|
||||
]
|
||||
|
||||
|
||||
configure(*config_args)
|
||||
make()
|
||||
make('install')
|
||||
|
@@ -26,20 +26,28 @@
|
||||
|
||||
import os
|
||||
|
||||
|
||||
class Espresso(Package):
|
||||
"""
|
||||
QE is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials
|
||||
modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials.
|
||||
QE is an integrated suite of Open-Source computer codes for
|
||||
electronic-structure calculations and materials modeling at
|
||||
the nanoscale. It is based on density-functional theory, plane
|
||||
waves, and pseudopotentials.
|
||||
"""
|
||||
homepage = 'http://quantum-espresso.org'
|
||||
url = 'http://www.qe-forge.org/gf/download/frsrelease/204/912/espresso-5.3.0.tar.gz'
|
||||
|
||||
version(
|
||||
'5.4.0',
|
||||
'8bb78181b39bd084ae5cb7a512c1cfe7',
|
||||
url='http://www.qe-forge.org/gf/download/frsrelease/211/968/espresso-5.4.0.tar.gz'
|
||||
)
|
||||
version('5.3.0', '6848fcfaeb118587d6be36bd10b7f2c3')
|
||||
|
||||
variant('mpi', default=True, description='Build Quantum-ESPRESSO with mpi support')
|
||||
variant('mpi', default=True, description='Builds with mpi support')
|
||||
variant('openmp', default=False, description='Enables openMP support')
|
||||
variant('scalapack', default=True, description='Enables scalapack support')
|
||||
variant('elpa', default=True, description='Use elpa as an eigenvalue solver')
|
||||
variant('elpa', default=True, description='Uses elpa as an eigenvalue solver')
|
||||
|
||||
depends_on('blas')
|
||||
depends_on('lapack')
|
||||
@@ -47,7 +55,12 @@ class Espresso(Package):
|
||||
depends_on('mpi', when='+mpi')
|
||||
depends_on('fftw~mpi', when='~mpi')
|
||||
depends_on('fftw+mpi', when='+mpi')
|
||||
depends_on('scalapack', when='+scalapack+mpi') # TODO : + mpi needed to avoid false dependencies installation
|
||||
# TODO : + mpi needed to avoid false dependencies installation
|
||||
depends_on('scalapack', when='+scalapack+mpi')
|
||||
|
||||
# Spurious problems running in parallel the Makefile
|
||||
# generated by qe configure
|
||||
parallel = False
|
||||
|
||||
def check_variants(self, spec):
|
||||
error = 'you cannot ask for \'+{variant}\' when \'+mpi\' is not active'
|
||||
@@ -87,10 +100,9 @@ def install(self, spec, prefix):
|
||||
configure(*options)
|
||||
make('all')
|
||||
|
||||
if spec.architecture.startswith('darwin'):
|
||||
if spec.satisfies('platform=darwin'):
|
||||
mkdirp(prefix.bin)
|
||||
for filename in glob("bin/*.x"):
|
||||
install(filename, prefix.bin)
|
||||
else:
|
||||
make('install')
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user