Merge branch 'develop' of https://github.com/LLNL/spack into features/install_with_phases_rebase
Conflicts: lib/spack/spack/cmd/setup.py lib/spack/spack/package.py var/spack/repos/builtin/packages/gmp/package.py
This commit is contained in:
@@ -58,7 +58,7 @@ class R(Package):
|
||||
# Concrete dependencies
|
||||
depends_on('readline')
|
||||
depends_on('ncurses')
|
||||
depends_on('icu')
|
||||
depends_on('icu4c')
|
||||
depends_on('glib')
|
||||
depends_on('zlib')
|
||||
depends_on('bzip2')
|
||||
|
||||
29
var/spack/repos/builtin/packages/adios/adios_1100.patch
Normal file
29
var/spack/repos/builtin/packages/adios/adios_1100.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
From 3b21a8a4150962c6938baeceacd04f619cea2fbc Mon Sep 17 00:00:00 2001
|
||||
From: Norbert Podhorszki <pnorbert@ornl.gov>
|
||||
Date: Thu, 1 Sep 2016 16:26:23 -0400
|
||||
Subject: [PATCH] ifdef around 'bool' type. hdf5 1.10 defines bool and breaks
|
||||
compiling bp2h5.c
|
||||
|
||||
---
|
||||
utils/bp2h5/bp2h5.c | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/utils/bp2h5/bp2h5.c b/utils/bp2h5/bp2h5.c
|
||||
index 9c500c7..fa746bd 100644
|
||||
--- a/utils/bp2h5/bp2h5.c
|
||||
+++ b/utils/bp2h5/bp2h5.c
|
||||
@@ -43,9 +43,11 @@
|
||||
#include "dmalloc.h"
|
||||
#endif
|
||||
|
||||
-typedef int bool;
|
||||
-#define false 0
|
||||
-#define true 1
|
||||
+#ifndef bool
|
||||
+ typedef int bool;
|
||||
+# define false 0
|
||||
+# define true 1
|
||||
+#endif
|
||||
|
||||
bool noindex = false; // do no print array indices with data
|
||||
bool printByteAsChar = false; // print 8 bit integer arrays as string
|
||||
@@ -36,6 +36,8 @@ class Adios(Package):
|
||||
homepage = "http://www.olcf.ornl.gov/center-projects/adios/"
|
||||
url = "https://github.com/ornladios/ADIOS/archive/v1.10.0.tar.gz"
|
||||
|
||||
version('develop', git='https://github.com/ornladios/ADIOS.git',
|
||||
branch='master')
|
||||
version('1.10.0', 'eff450a4c0130479417cfd63186957f3')
|
||||
version('1.9.0', '310ff02388bbaa2b1c1710ee970b5678')
|
||||
|
||||
@@ -48,14 +50,14 @@ class Adios(Package):
|
||||
variant('mpi', default=True, description='Enable MPI support')
|
||||
variant('infiniband', default=False, description='Enable infiniband support')
|
||||
|
||||
# transforms
|
||||
variant('zlib', default=True, description='Enable szip transform support')
|
||||
variant('szip', default=False, description='Enable szip transform support')
|
||||
variant('hdf5', default=False, description='Enable HDF5 transport support')
|
||||
variant('netcdf', default=False, description='Enable NetCDF transport support')
|
||||
# transports and serial file converters
|
||||
variant('hdf5', default=False, description='Enable parallel HDF5 transport and serial bp2h5 converter')
|
||||
|
||||
# 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
|
||||
|
||||
@@ -69,9 +71,13 @@ class Adios(Package):
|
||||
# optional transformations
|
||||
depends_on('zlib', when='+zlib')
|
||||
depends_on('szip', when='+szip')
|
||||
# optional transports
|
||||
depends_on('hdf5', when='+hdf5')
|
||||
depends_on('netcdf', when='+netcdf')
|
||||
# optional transports & file converters
|
||||
depends_on('hdf5@1.8:+mpi', when='+hdf5')
|
||||
|
||||
# Fix ADIOS <=1.10.0 compile error on HDF5 1.10+
|
||||
# https://github.com/ornladios/ADIOS/commit/3b21a8a41509
|
||||
# https://github.com/LLNL/spack/issues/1683
|
||||
patch('adios_1100.patch', when='@:1.10.0^hdf5@1.10:')
|
||||
|
||||
def validate(self, spec):
|
||||
"""
|
||||
@@ -114,9 +120,7 @@ def install(self, spec, prefix):
|
||||
if '+szip' in spec:
|
||||
extra_args.append('--with-szip=%s' % spec['szip'].prefix)
|
||||
if '+hdf5' in spec:
|
||||
extra_args.append('--with-hdf5=%s' % spec['hdf5'].prefix)
|
||||
if '+netcdf' in spec:
|
||||
extra_args.append('--with-netcdf=%s' % spec['netcdf'].prefix)
|
||||
extra_args.append('--with-phdf5=%s' % spec['hdf5'].prefix)
|
||||
|
||||
sh = which('sh')
|
||||
sh('./autogen.sh')
|
||||
|
||||
@@ -46,18 +46,20 @@ class Armadillo(Package):
|
||||
depends_on('hdf5', when='+hdf5')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
arpack = find_libraries(['libarpack'], root=spec[
|
||||
'arpack-ng'].prefix.lib, shared=True)
|
||||
superlu = find_libraries(['libsuperlu'], root=spec[
|
||||
'superlu'].prefix, shared=False, recurse=True)
|
||||
cmake_args = [
|
||||
# ARPACK support
|
||||
'-DARPACK_LIBRARY={0}/libarpack.{1}'.format(
|
||||
spec['arpack-ng'].prefix.lib, dso_suffix),
|
||||
'-DARPACK_LIBRARY={0}'.format(arpack.joined()),
|
||||
# BLAS support
|
||||
'-DBLAS_LIBRARY={0}'.format(spec['blas'].blas_shared_lib),
|
||||
'-DBLAS_LIBRARY={0}'.format(spec['blas'].blas_libs.joined()),
|
||||
# LAPACK support
|
||||
'-DLAPACK_LIBRARY={0}'.format(spec['lapack'].lapack_shared_lib),
|
||||
'-DLAPACK_LIBRARY={0}'.format(spec['lapack'].lapack_libs.joined()),
|
||||
# SuperLU support
|
||||
'-DSuperLU_INCLUDE_DIR={0}'.format(spec['superlu'].prefix.include),
|
||||
'-DSuperLU_LIBRARY={0}/libsuperlu.a'.format(
|
||||
spec['superlu'].prefix.lib64),
|
||||
'-DSuperLU_LIBRARY={0}'.format(superlu.joined()),
|
||||
# HDF5 support
|
||||
'-DDETECT_HDF5={0}'.format('ON' if '+hdf5' in spec else 'OFF')
|
||||
]
|
||||
|
||||
@@ -88,17 +88,16 @@ def install(self, spec, prefix):
|
||||
options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
|
||||
|
||||
# Make sure we use Spack's blas/lapack:
|
||||
lapack_libs = spec['lapack'].lapack_libs.joined(';')
|
||||
blas_libs = spec['blas'].blas_libs.joined(';')
|
||||
|
||||
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),
|
||||
'-DLAPACK_INCLUDE_DIRS={0}'.format(spec['lapack'].prefix.include),
|
||||
'-DLAPACK_LIBRARIES={0}'.format(lapack_libs),
|
||||
'-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)
|
||||
'-DBLAS_INCLUDE_DIRS={0}'.format(spec['blas'].prefix.include),
|
||||
'-DBLAS_LIBRARIES={0}'.format(blas_libs)
|
||||
])
|
||||
|
||||
if '+mpi' in spec:
|
||||
@@ -129,19 +128,12 @@ def install(self, spec, prefix):
|
||||
'F77=%s' % spec['mpi'].mpif77
|
||||
])
|
||||
|
||||
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'
|
||||
])
|
||||
options.extend([
|
||||
'--with-blas={0}'.format(spec['blas'].blas_libs.ld_flags),
|
||||
'--with-lapack={0}'.format(spec['lapack'].lapack_libs.ld_flags)
|
||||
])
|
||||
if '+shared' not in spec:
|
||||
options.append('--enable-shared=no')
|
||||
|
||||
bootstrap()
|
||||
configure(*options)
|
||||
|
||||
@@ -51,6 +51,7 @@ class Atlas(Package):
|
||||
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')
|
||||
variant('pthread', default=False, description='Use multithreaded libraries')
|
||||
|
||||
provides('blas')
|
||||
provides('lapack')
|
||||
@@ -107,18 +108,32 @@ def install(self, spec, prefix):
|
||||
make("install")
|
||||
self.install_test()
|
||||
|
||||
def setup_dependent_package(self, module, dspec):
|
||||
@property
|
||||
def blas_libs(self):
|
||||
# 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)
|
||||
|
||||
is_threaded = '+pthread' in self.spec
|
||||
if '+shared' in self.spec:
|
||||
self.spec.blas_shared_lib = join_path(libdir, name)
|
||||
self.spec.lapack_shared_lib = self.spec.blas_shared_lib
|
||||
to_find = ['libtatlas'] if is_threaded else ['libsatlas']
|
||||
shared = True
|
||||
else:
|
||||
interfaces = [
|
||||
'libptcblas',
|
||||
'libptf77blas'
|
||||
] if is_threaded else [
|
||||
'libcblas',
|
||||
'libf77blas'
|
||||
]
|
||||
to_find = ['liblapack'] + interfaces + ['libatlas']
|
||||
shared = False
|
||||
return find_libraries(
|
||||
to_find, root=self.prefix, shared=shared, recurse=True
|
||||
)
|
||||
|
||||
@property
|
||||
def lapack_libs(self):
|
||||
return self.blas_libs
|
||||
|
||||
def install_test(self):
|
||||
source_file = join_path(os.path.dirname(self.module.__file__),
|
||||
@@ -126,9 +141,8 @@ def install_test(self):
|
||||
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"]
|
||||
include_flags = ["-I%s" % self.spec.prefix.include]
|
||||
link_flags = self.lapack_libs.ld_flags.split()
|
||||
|
||||
output = compile_c_and_execute(source_file, include_flags, link_flags)
|
||||
compare_output_file(output, blessed_file)
|
||||
|
||||
45
var/spack/repos/builtin/packages/bamtools/package.py
Normal file
45
var/spack/repos/builtin/packages/bamtools/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 Bamtools(Package):
|
||||
"""C++ API & command-line toolkit for working with BAM data."""
|
||||
|
||||
homepage = "https://github.com/pezmaster31/bamtools"
|
||||
url = "https://github.com/pezmaster31/bamtools/archive/v2.4.0.tar.gz"
|
||||
|
||||
version('2.4.0', '6139d00c1b1fe88fe15d094d8a74d8b9')
|
||||
version('2.3.0', 'd327df4ba037d6eb8beef65d7da75ebc')
|
||||
version('2.2.3', '6eccd3e45e4ba12a68daa3298998e76d')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
with working_dir('spack-build', create=True):
|
||||
cmake('..', *std_cmake_args)
|
||||
|
||||
make()
|
||||
make('install')
|
||||
64
var/spack/repos/builtin/packages/bash-completion/package.py
Normal file
64
var/spack/repos/builtin/packages/bash-completion/package.py
Normal file
@@ -0,0 +1,64 @@
|
||||
##############################################################################
|
||||
# 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 BashCompletion(Package):
|
||||
"""Programmable completion functions for bash."""
|
||||
homepage = "https://github.com/scop/bash-completion"
|
||||
url = "https://github.com/scop/bash-completion/archive/2.3.tar.gz"
|
||||
|
||||
version('2.3', '67e50f5f3c804350b43f2b664c33dde811d24292')
|
||||
version('develop', git='https://github.com/scop/bash-completion.git')
|
||||
|
||||
# Build dependencies
|
||||
depends_on('automake', type='build')
|
||||
depends_on('autoconf', type='build')
|
||||
depends_on('libtool', type='build')
|
||||
|
||||
# Other dependencies
|
||||
depends_on('bash@4.1:', type='run')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make_args = ['--prefix=%s' % prefix]
|
||||
|
||||
autoreconf('-i')
|
||||
configure(*make_args)
|
||||
make()
|
||||
# make("check") # optional, requires dejagnu and tcllib
|
||||
make("install",
|
||||
parallel=False)
|
||||
|
||||
# Guidelines for individual user as provided by the author at
|
||||
# https://github.com/scop/bash-completion
|
||||
print('=====================================================')
|
||||
print('Bash completion has been installed. To use it, please')
|
||||
print('include the following lines in your ~/.bash_profile :')
|
||||
print('')
|
||||
print('# Use bash-completion, if available')
|
||||
print('[[ $PS1 && -f %s/share/bash-completion/bash_completion ]] && \ ' % prefix) # NOQA: ignore=E501
|
||||
print(' . %s/share/bash-completion/bash_completion' % prefix)
|
||||
print('')
|
||||
print('=====================================================')
|
||||
43
var/spack/repos/builtin/packages/bedtools2/package.py
Normal file
43
var/spack/repos/builtin/packages/bedtools2/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 Bedtools2(Package):
|
||||
"""Collectively, the bedtools utilities are a swiss-army knife of
|
||||
tools for a wide-range of genomics analysis tasks. The most
|
||||
widely-used tools enable genome arithmetic: that is, set theory
|
||||
on the genome."""
|
||||
|
||||
homepage = "https://github.com/arq5x/bedtools2"
|
||||
url = "https://github.com/arq5x/bedtools2/archive/v2.26.0.tar.gz"
|
||||
|
||||
version('2.26.0', '52227e7efa6627f0f95d7d734973233d')
|
||||
version('2.25.0', '534fb4a7bf0d0c3f05be52a0160d8e3d')
|
||||
|
||||
depends_on('zlib')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make("prefix=%s" % prefix, "install")
|
||||
@@ -31,9 +31,9 @@ class Binutils(Package):
|
||||
homepage = "http://www.gnu.org/software/binutils/"
|
||||
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.27', '2869c9bf3e60ee97c74ac2a6bf4e9d68')
|
||||
version('2.26', '64146a0faa3b411ba774f47d41de239f')
|
||||
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66', preferred=True)
|
||||
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66')
|
||||
version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b')
|
||||
version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e')
|
||||
version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764')
|
||||
|
||||
@@ -41,6 +41,7 @@ class Boost(Package):
|
||||
list_url = "http://sourceforge.net/projects/boost/files/boost/"
|
||||
list_depth = 2
|
||||
|
||||
version('1.62.0', '5fb94629535c19e48703bdb2b2e9490f')
|
||||
version('1.61.0', '6095876341956f65f9d35939ccea1a9f')
|
||||
version('1.60.0', '65a840e1a0b13a558ff19eeb2c4f0cbe')
|
||||
version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87')
|
||||
@@ -111,12 +112,12 @@ class Boost(Package):
|
||||
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('icu', default=False,
|
||||
description="Build with Unicode and ICU suport")
|
||||
variant('graph', default=False,
|
||||
description="Build the Boost Graph library")
|
||||
|
||||
depends_on('icu', when='+icu_support')
|
||||
depends_on('icu4c', when='+icu')
|
||||
depends_on('python', when='+python')
|
||||
depends_on('mpi', when='+mpi')
|
||||
depends_on('bzip2', when='+iostreams')
|
||||
@@ -138,15 +139,13 @@ def url_for_version(self, version):
|
||||
def determine_toolset(self, spec):
|
||||
if spec.satisfies("platform=darwin"):
|
||||
return 'darwin'
|
||||
else:
|
||||
platform = 'linux'
|
||||
|
||||
toolsets = {'g++': 'gcc',
|
||||
'icpc': 'intel',
|
||||
'clang++': 'clang'}
|
||||
|
||||
if spec.satisfies('@1.47:'):
|
||||
toolsets['icpc'] += '-' + platform
|
||||
toolsets['icpc'] += '-linux'
|
||||
for cc, toolset in toolsets.iteritems():
|
||||
if cc in self.compiler.cxx_names:
|
||||
return toolset
|
||||
@@ -164,6 +163,16 @@ def determine_bootstrap_options(self, spec, withLibs, options):
|
||||
join_path(spec['python'].prefix.bin, 'python'))
|
||||
|
||||
with open('user-config.jam', 'w') as f:
|
||||
# Boost may end up using gcc even though clang+gfortran is set in
|
||||
# compilers.yaml. Make sure this does not happen:
|
||||
if not spec.satisfies('%intel'):
|
||||
# using intel-linux : : spack_cxx in user-config.jam leads to
|
||||
# error: at project-config.jam:12
|
||||
# error: duplicate initialization of intel-linux with the following parameters: # noqa
|
||||
# error: version = <unspecified>
|
||||
# error: previous initialization at ./user-config.jam:1
|
||||
f.write("using {0} : : {1} ;\n".format(boostToolsetId,
|
||||
spack_cxx))
|
||||
|
||||
if '+mpi' in spec:
|
||||
f.write('using mpi : %s ;\n' %
|
||||
@@ -204,7 +213,13 @@ def determine_b2_options(self, spec, options):
|
||||
|
||||
options.extend([
|
||||
'link=%s' % ','.join(linkTypes),
|
||||
'--layout=tagged'])
|
||||
'--layout=tagged'
|
||||
])
|
||||
|
||||
if not spec.satisfies('%intel'):
|
||||
options.extend([
|
||||
'toolset=%s' % self.determine_toolset(spec)
|
||||
])
|
||||
|
||||
return threadingOpts
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@ class BppSuite(Package):
|
||||
|
||||
version('2.2.0', 'd8b29ad7ccf5bd3a7beb701350c9e2a4')
|
||||
|
||||
# FIXME: Add dependencies if required.
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('texinfo', type='build')
|
||||
depends_on('bpp-core')
|
||||
|
||||
@@ -85,8 +85,9 @@ def install(self, spec, prefix):
|
||||
|
||||
# BLAS/LAPACK support
|
||||
if '+lapack' in spec:
|
||||
lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs
|
||||
options.extend([
|
||||
'blas_lapack_libs=lapack,blas',
|
||||
'blas_lapack_libs={0}'.format(','.join(lapack_blas.names)),
|
||||
'blas_lapack_dir={0}'.format(spec['lapack'].prefix.lib)
|
||||
])
|
||||
|
||||
|
||||
@@ -30,17 +30,88 @@ class Cdo(Package):
|
||||
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')
|
||||
version('1.7.2', 'f08e4ce8739a4f2b63fc81a24db3ee31', url='https://code.zmaw.de/attachments/download/12760/cdo-1.7.2.tar.gz')
|
||||
version('1.6.9', 'bf0997bf20e812f35e10188a930e24e2', url='https://code.zmaw.de/attachments/download/10198/cdo-1.6.9.tar.gz')
|
||||
|
||||
variant('mpi', default=True)
|
||||
variant('szip', default=True, description='Enable szip compression for GRIB1')
|
||||
variant('hdf5', default=False, description='Enable HDF5 support')
|
||||
variant('netcdf', default=True, description='Enable NetCDF support')
|
||||
variant('udunits2', default=True, description='Enable UDUNITS2 support')
|
||||
variant('grib', default=True, description='Enable GRIB_API support')
|
||||
variant('libxml2', default=True, description='Enable libxml2 support')
|
||||
variant('proj', default=True, description='Enable PROJ library for cartographic projections')
|
||||
variant('curl', default=True, description='Enable curl support')
|
||||
variant('fftw', default=True, description='Enable support for fftw3')
|
||||
variant('magics', default=True, description='Enable Magics library support')
|
||||
|
||||
depends_on('netcdf')
|
||||
depends_on('netcdf+mpi', when='+mpi')
|
||||
depends_on('netcdf~mpi', when='~mpi')
|
||||
depends_on('szip', when='+szip')
|
||||
depends_on('netcdf', when='+netcdf')
|
||||
depends_on('hdf5+threadsafe', when='+hdf5')
|
||||
depends_on('udunits2', when='+udunits2')
|
||||
depends_on('grib-api', when='+grib')
|
||||
depends_on('libxml2', when='+libxml2')
|
||||
depends_on('proj', when='+proj')
|
||||
depends_on('curl', when='+curl')
|
||||
depends_on('fftw', when='+fftw')
|
||||
depends_on('magics', when='+magics')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix={0}'.format(prefix))
|
||||
config_args = ["--prefix=" + prefix,
|
||||
"--enable-shared",
|
||||
"--enable-static"]
|
||||
|
||||
if '+szip' in spec:
|
||||
config_args.append('--with-szlib=' + spec['szip'].prefix)
|
||||
else:
|
||||
config_args.append('--without-szlib')
|
||||
|
||||
if '+hdf5' in spec:
|
||||
config_args.append('--with-hdf5=' + spec['hdf5'].prefix)
|
||||
else:
|
||||
config_args.append('--without-hdf5')
|
||||
|
||||
if '+netcdf' in spec:
|
||||
config_args.append('--with-netcdf=' + spec['netcdf'].prefix)
|
||||
else:
|
||||
config_args.append('--without-netcdf')
|
||||
|
||||
if '+udunits2' in spec:
|
||||
config_args.append('--with-udunits2=' + spec['udunits2'].prefix)
|
||||
else:
|
||||
config_args.append('--without-udunits2')
|
||||
|
||||
if '+grib' in spec:
|
||||
config_args.append('--with-grib_api=' + spec['grib-api'].prefix)
|
||||
else:
|
||||
config_args.append('--without-grib_api')
|
||||
|
||||
if '+libxml2' in spec:
|
||||
config_args.append('--with-libxml2=' + spec['libxml2'].prefix)
|
||||
else:
|
||||
config_args.append('--without-libxml2')
|
||||
|
||||
if '+proj' in spec:
|
||||
config_args.append('--with-proj=' + spec['proj'].prefix)
|
||||
else:
|
||||
config_args.append('--without-proj')
|
||||
|
||||
if '+curl' in spec:
|
||||
config_args.append('--with-curl=' + spec['curl'].prefix)
|
||||
else:
|
||||
config_args.append('--without-curl')
|
||||
|
||||
if '+fftw' in spec:
|
||||
config_args.append('--with-fftw3')
|
||||
else:
|
||||
config_args.append('--without-fftw3')
|
||||
|
||||
if '+magics' in spec:
|
||||
config_args.append('--with-magics=' + spec['magics'].prefix)
|
||||
else:
|
||||
config_args.append('--without-magics')
|
||||
|
||||
configure(*config_args)
|
||||
|
||||
make()
|
||||
make('install')
|
||||
|
||||
@@ -39,6 +39,7 @@ class Cereal(Package):
|
||||
homepage = "http://uscilab.github.io/cereal/"
|
||||
url = "https://github.com/USCiLab/cereal/archive/v1.1.2.tar.gz"
|
||||
|
||||
version('1.2.1', '64476ed74c19068ee543b53ad3992261')
|
||||
version('1.2.0', 'e372c9814696481dbdb7d500e1410d2b')
|
||||
version('1.1.2', '34d4ad174acbff005c36d4d10e48cbb9')
|
||||
version('1.1.1', '0ceff308c38f37d5b5f6df3927451c27')
|
||||
|
||||
@@ -22,44 +22,57 @@
|
||||
# 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 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.
|
||||
|
||||
"""The Computational Geometry Algorithms Library (CGAL) is a C++ library
|
||||
that aims to provide easy access to efficient and reliable algorithms in
|
||||
computational geometry. 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'
|
||||
|
||||
version('4.9', '7b628db3e5614347f776c046b7666089')
|
||||
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')
|
||||
|
||||
# Essential Third Party Libraries
|
||||
depends_on('boost')
|
||||
depends_on('mpfr')
|
||||
depends_on('gmp')
|
||||
depends_on('mpfr')
|
||||
depends_on('zlib')
|
||||
# depends_on('opengl')
|
||||
depends_on('qt@5:')
|
||||
|
||||
# Optional Third Party Libraries
|
||||
# depends_on('leda')
|
||||
# depends_on('mpfi')
|
||||
# depends_on('rs')
|
||||
# depends_on('rs3')
|
||||
# depends_on('ntl')
|
||||
# depends_on('eigen')
|
||||
# depends_on('libqglviewer')
|
||||
# depends_on('esbtl')
|
||||
# depends_on('intel-tbb')
|
||||
|
||||
# Build dependencies
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
# FIXME : Qt5 dependency missing (needs Qt5 and OpenGL)
|
||||
# FIXME : Optional third party libraries missing
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Installation instructions:
|
||||
# http://doc.cgal.org/latest/Manual/installation.html
|
||||
|
||||
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
|
||||
if '+debug' in spec:
|
||||
@@ -72,9 +85,7 @@ def install(self, spec, prefix):
|
||||
else:
|
||||
options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
|
||||
|
||||
build_directory = join_path(self.stage.path, 'spack-build')
|
||||
source_directory = self.stage.source_path
|
||||
with working_dir(build_directory, create=True):
|
||||
cmake(source_directory, *options)
|
||||
make()
|
||||
make("install")
|
||||
cmake('.', *options)
|
||||
|
||||
make()
|
||||
make('install')
|
||||
|
||||
19
var/spack/repos/builtin/packages/charm/mpi.patch
Normal file
19
var/spack/repos/builtin/packages/charm/mpi.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
--- old/src/scripts/configure
|
||||
+++ new/src/scripts/configure
|
||||
@@ -3293,10 +3293,16 @@
|
||||
test_link "whether -lmpi" "ok" "no" "-lmpi"
|
||||
if test $pass -eq 1
|
||||
then
|
||||
add_flag CMK_SYSLIBS='"$CMK_SYSLIBS -lmpi"' "mpi lib"
|
||||
else
|
||||
+ test_link "whether -lmpi -lmpi_cxx" "ok" "no" "-lmpi -lmpi_cxx"
|
||||
+ if test $pass -eq 1
|
||||
+ then
|
||||
+ add_flag CMK_SYSLIBS='"$CMK_SYSLIBS -lmpi -lmpi_cxx"' "mpi lib"
|
||||
+ else
|
||||
echo "Error: can not find mpi library"
|
||||
test_finish 1
|
||||
+ fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
172
var/spack/repos/builtin/packages/charm/package.py
Normal file
172
var/spack/repos/builtin/packages/charm/package.py
Normal file
@@ -0,0 +1,172 @@
|
||||
##############################################################################
|
||||
# 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 platform
|
||||
import shutil
|
||||
import sys
|
||||
from spack import *
|
||||
|
||||
|
||||
class Charm(Package):
|
||||
"""Charm++ is a parallel programming framework in C++ supported by
|
||||
an adaptive runtime system, which enhances user productivity and
|
||||
allows programs to run portably from small multicore computers
|
||||
(your laptop) to the largest supercomputers."""
|
||||
|
||||
homepage = "http://charmplusplus.org"
|
||||
url = "http://charm.cs.illinois.edu/distrib/charm-6.7.1.tar.gz"
|
||||
|
||||
version("6.7.1", "a8e20cf85e9c8721158f5bbd0ade48d9")
|
||||
version("6.7.0", "35a39a7975f1954a7db2d76736158231")
|
||||
version("6.6.1", "9554230f741e2599deaaac4d9d93d7ab")
|
||||
version("6.6.0", "31e95901b3f7324d52107e6ad000fcc8")
|
||||
version("6.5.1", "034d99458474a3ab96d8bede8a691a5d")
|
||||
|
||||
# Support OpenMPI; see
|
||||
# <https://charm.cs.illinois.edu/redmine/issues/1206>
|
||||
patch("mpi.patch")
|
||||
|
||||
# Communication mechanisms (choose exactly one)
|
||||
# TODO: Support Blue Gene/Q PAMI, Cray GNI, Cray shmem, CUDA
|
||||
variant("mpi", default=False,
|
||||
description="Use MPI as communication mechanism")
|
||||
variant("multicore", default=False,
|
||||
description="Disable inter-node communication")
|
||||
variant("net", default=False,
|
||||
description="Use net communication mechanism")
|
||||
variant("netlrts", default=True,
|
||||
description="Use netlrts communication mechanism")
|
||||
variant("verbs", default=False,
|
||||
description="Use Infiniband as communication mechanism")
|
||||
|
||||
# Other options
|
||||
# Something is off with PAPI -- there are build errors. Maybe
|
||||
# Charm++ expects a particular version?
|
||||
variant("papi", default=False, description="Enable PAPI integration")
|
||||
variant("smp", default=True,
|
||||
description=(
|
||||
"Enable SMP parallelism (does not work with +multicore)"))
|
||||
variant("tcp", default=False,
|
||||
description="Use TCP as transport mechanism (requires +net)")
|
||||
|
||||
# Note: We could add variants for AMPI, LIBS, bigemulator, msa, Tau
|
||||
# Note: We could support shared libraries
|
||||
|
||||
depends_on("mpi", when="+mpi")
|
||||
depends_on("papi", when="+papi")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
target = "charm++"
|
||||
|
||||
# Note: Turn this into a multi-valued variant, once these
|
||||
# exist in Spack
|
||||
if sum(["+mpi" in spec,
|
||||
"+multicore" in spec,
|
||||
"+net" in spec,
|
||||
"+netlrts" in spec,
|
||||
"+verbs" in spec]) != 1:
|
||||
raise InstallError(
|
||||
"Exactly one communication mechanism "
|
||||
"(+mpi, +multicore, +net, +netlrts, or +verbs) "
|
||||
"must be enabled")
|
||||
if "+mpi" in spec:
|
||||
comm = "mpi"
|
||||
if "+multicore" in spec:
|
||||
comm = "multicore"
|
||||
if "+net" in spec:
|
||||
comm = "net"
|
||||
if "+netlrts" in spec:
|
||||
comm = "netlrts"
|
||||
if "+verbs" in spec:
|
||||
comm = "verbs"
|
||||
|
||||
plat = sys.platform
|
||||
if plat.startswith("linux"):
|
||||
plat = "linux"
|
||||
mach = platform.machine()
|
||||
|
||||
# Define Charm++ version names for various (plat, mach, comm)
|
||||
# combinations. Note that not all combinations are supported.
|
||||
versions = {
|
||||
("darwin", "i386", "multicore"): "multicore-darwin-x86",
|
||||
("darwin", "i386", "net"): "net-darwin-x86",
|
||||
("darwin", "x86_64", "mpi"): "mpi-darwin-x86_64",
|
||||
("darwin", "x86_64", "multicore"): "multicore-darwin-x86_64",
|
||||
("darwin", "x86_64", "net"): "net-darwin-x86_64",
|
||||
("darwin", "x86_64", "netlrts"): "netlrts-darwin-x86_64",
|
||||
("linux", "i386", "mpi"): "mpi-linux",
|
||||
("linux", "i386", "multicore"): "multicore-linux32",
|
||||
("linux", "i386", "net"): "net-linux",
|
||||
("linux", "i386", "netlrts"): "netlrts-linux",
|
||||
("linux", "x86_64", "mpi"): "mpi-linux-x86_64",
|
||||
("linux", "x86_64", "multicore"): "multicore-linux64",
|
||||
("linux", "x86_64", "net"): "net-linux-x86_64",
|
||||
("linux", "x86_64", "netlrts"): "netlrts-linux-x86_64",
|
||||
("linux", "x86_64", "verbs"): "verbs-linux-x86_64",
|
||||
}
|
||||
if (plat, mach, comm) not in versions:
|
||||
raise InstallError(
|
||||
"The communication mechanism %s is not supported "
|
||||
"on a %s platform with a %s CPU" %
|
||||
(comm, plat, mach))
|
||||
version = versions[(plat, mach, comm)]
|
||||
|
||||
# We assume that Spack's compiler wrappers make this work. If
|
||||
# not, then we need to query the compiler vendor from Spack
|
||||
# here.
|
||||
compiler = "gcc"
|
||||
|
||||
options = [compiler,
|
||||
"--with-production", # Note: turn this into a variant
|
||||
"-j%d" % make_jobs,
|
||||
"--destination=%s" % prefix]
|
||||
if "+mpi" in spec:
|
||||
options.append("--basedir=%s" % spec["mpi"].prefix)
|
||||
if "+papi" in spec:
|
||||
options.extend(["papi", "--basedir=%s" % spec["papi"].prefix])
|
||||
if "+smp" in spec:
|
||||
if "+multicore" in spec:
|
||||
# This is a Charm++ limitation; it would lead to a
|
||||
# build error
|
||||
raise InstallError("Cannot combine +smp with +multicore")
|
||||
options.append("smp")
|
||||
if "+tcp" in spec:
|
||||
if "+net" not in spec:
|
||||
# This is a Charm++ limitation; it would lead to a
|
||||
# build error
|
||||
raise InstallError(
|
||||
"The +tcp variant requires "
|
||||
"the +net communication mechanism")
|
||||
options.append("tcp")
|
||||
|
||||
# Call "make" via the build script
|
||||
# Note: This builds Charm++ in the "tmp" subdirectory of the
|
||||
# install directory. Maybe we could set up a symbolic link
|
||||
# back to the build tree to prevent this? Alternatively, we
|
||||
# could dissect the build script; the build instructions say
|
||||
# this wouldn't be difficult.
|
||||
build = Executable(join_path(".", "build"))
|
||||
build(target, version, *options)
|
||||
shutil.rmtree(join_path(prefix, "tmp"))
|
||||
11
var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch
Normal file
11
var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- CLHEP/CMakeLists.txt 2016-06-20 14:41:12.000000000 -0500
|
||||
+++ CLHEP/CMakeLists.txt 2016-06-20 14:40:57.000000000 -0500
|
||||
@@ -37,7 +37,7 @@
|
||||
# If Policy CMP0042 exists, use OLD to prefer the use of install names
|
||||
# instead of the new @rpath default.
|
||||
if(POLICY CMP0042)
|
||||
- cmake_policy(SET CMP0042 NEW)
|
||||
+ cmake_policy(SET CMP0042 OLD)
|
||||
endif()
|
||||
|
||||
set(CMAKE_MODULE_PATH
|
||||
81
var/spack/repos/builtin/packages/clhep/package.py
Normal file
81
var/spack/repos/builtin/packages/clhep/package.py
Normal file
@@ -0,0 +1,81 @@
|
||||
##############################################################################
|
||||
# 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 Clhep(Package):
|
||||
"""CLHEP is a C++ Class Library for High Energy Physics. """
|
||||
homepage = "http://proj-clhep.web.cern.ch/proj-clhep/"
|
||||
url = "http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/clhep-2.2.0.5.tgz"
|
||||
list_url = "https://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/"
|
||||
|
||||
version('2.3.2.2', '567b304b0fa017e1e9fbf199f456ebe9')
|
||||
version('2.3.1.1', '16efca7641bc118c9d217cc96fe90bf5')
|
||||
version('2.3.1.0', 'b084934fc26a4182a08c09c292e19161')
|
||||
version('2.3.0.0', 'a00399a2ca867f2be902c22fc71d7e2e')
|
||||
version('2.2.0.8', '5a23ed3af785ac100a25f6cb791846af')
|
||||
version('2.2.0.5', '1584e8ce6ebf395821aed377df315c7c')
|
||||
version('2.2.0.4', '71d2c7c2e39d86a0262e555148de01c1')
|
||||
|
||||
variant('debug', default=False, description="Switch to the debug version of CLHEP.")
|
||||
variant('cxx11', default=True, description="Compile using c++11 dialect.")
|
||||
variant('cxx14', default=False, description="Compile using c++14 dialect.")
|
||||
|
||||
depends_on('cmake@2.8.12.2:', when='@2.2.0.4:2.3.0.0', type='build')
|
||||
depends_on('cmake@3.2:', when='@2.3.0.1:', type='build')
|
||||
|
||||
def patch(self):
|
||||
filter_file('SET CMP0042 OLD',
|
||||
'SET CMP0042 NEW',
|
||||
'%s/%s/CLHEP/CMakeLists.txt'
|
||||
% (self.stage.path, self.spec.version))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Handle debug
|
||||
# Pull out the BUILD_TYPE so we can change it (Release is default)
|
||||
cmake_args = [arg for arg in std_cmake_args if 'BUILD_TYPE' not in arg]
|
||||
build_type = 'Debug' if '+debug' in spec else 'MinSizeRel'
|
||||
cmake_args.extend(['-DCMAKE_BUILD_TYPE=' + build_type])
|
||||
|
||||
if '+cxx11' in spec:
|
||||
env['CXXFLAGS'] = self.compiler.cxx11_flag
|
||||
cmake_args.append('-DCLHEP_BUILD_CXXSTD=' +
|
||||
self.compiler.cxx11_flag)
|
||||
|
||||
if '+cxx14' in spec:
|
||||
env['CXXFLAGS'] = self.compiler.cxx14_flag
|
||||
cmake_args.append('-DCLHEP_BUILD_CXXSTD=' +
|
||||
self.compiler.cxx14_flag)
|
||||
|
||||
# Note that the tar file is unusual in that there's a
|
||||
# CLHEP directory (addtional layer)
|
||||
cmake_args.append("../CLHEP")
|
||||
|
||||
# Run cmake in a build directory
|
||||
with working_dir('build', create=True):
|
||||
cmake(*cmake_args)
|
||||
make()
|
||||
make("install")
|
||||
@@ -88,11 +88,13 @@ def install(self, spec, prefix):
|
||||
|
||||
options = [
|
||||
'--prefix={0}'.format(prefix),
|
||||
'--parallel={0}'.format(make_jobs),
|
||||
# jsoncpp requires CMake to build
|
||||
# use CMake-provided library to avoid circular dependency
|
||||
'--no-system-jsoncpp'
|
||||
]
|
||||
'--parallel={0}'.format(make_jobs)]
|
||||
if spec.satisfies("@3:"):
|
||||
options.append(
|
||||
# jsoncpp requires CMake to build
|
||||
# use CMake-provided library to avoid circular dependency
|
||||
'--no-system-jsoncpp'
|
||||
)
|
||||
|
||||
if '+ownlibs' in spec:
|
||||
# Build and link to the CMake-provided third-party libraries
|
||||
|
||||
@@ -47,19 +47,18 @@ class Cp2k(Package):
|
||||
depends_on('lapack')
|
||||
depends_on('blas')
|
||||
depends_on('fftw')
|
||||
depends_on('libint@:1.2', when='@3.0')
|
||||
|
||||
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')
|
||||
depends_on('pexsi', when='+mpi')
|
||||
depends_on('wannier90', when='+mpi')
|
||||
depends_on('elpa', when='+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 QUIP
|
||||
# TODO : add dependency on libwannier90
|
||||
|
||||
parallel = False
|
||||
|
||||
@@ -88,15 +87,20 @@ def install(self, spec, prefix):
|
||||
}
|
||||
cppflags = [
|
||||
'-D__FFTW3',
|
||||
'-D__LIBPEXSI',
|
||||
'-D__LIBINT',
|
||||
'-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 = []
|
||||
fftw = find_libraries(['libfftw3'], root=spec['fftw'].prefix.lib)
|
||||
ldflags = [fftw.search_flags]
|
||||
libs = [
|
||||
join_path(spec['libint'].prefix.lib, 'libint.so'),
|
||||
join_path(spec['libint'].prefix.lib, 'libderiv.so'),
|
||||
join_path(spec['libint'].prefix.lib, 'libr12.so')
|
||||
]
|
||||
if '+plumed' in self.spec:
|
||||
# Include Plumed.inc in the Makefile
|
||||
mkf.write('include {0}\n'.format(
|
||||
@@ -109,7 +113,8 @@ def install(self, spec, prefix):
|
||||
# Add required macro
|
||||
cppflags.extend(['-D__PLUMED2'])
|
||||
libs.extend([
|
||||
join_path(self.spec['plumed'].prefix.lib, 'libplumed.so')
|
||||
join_path(self.spec['plumed'].prefix.lib,
|
||||
'libplumed.{0}'.format(dso_suffix))
|
||||
])
|
||||
|
||||
mkf.write('CC = {0.compiler.cc}\n'.format(self))
|
||||
@@ -143,15 +148,26 @@ def install(self, spec, prefix):
|
||||
if '+mpi' in self.spec:
|
||||
cppflags.extend([
|
||||
'-D__parallel',
|
||||
'-D__LIBPEXSI',
|
||||
'-D__WANNIER90',
|
||||
'-D__ELPA3',
|
||||
'-D__SCALAPACK'
|
||||
])
|
||||
fcflags.extend([
|
||||
'-I' + join_path(
|
||||
spec['elpa'].prefix,
|
||||
'include',
|
||||
'elpa-{0}'.format(str(spec['elpa'].version)),
|
||||
'modules'
|
||||
),
|
||||
'-I' + join_path(spec['pexsi'].prefix, 'fortran')
|
||||
])
|
||||
ldflags.extend([
|
||||
'-L' + spec['scalapack'].prefix.lib
|
||||
])
|
||||
scalapack = spec['scalapack'].scalapack_libs
|
||||
ldflags.append(scalapack.search_flags)
|
||||
libs.extend([
|
||||
join_path(spec['elpa'].prefix.lib,
|
||||
'libelpa.{0}'.format(dso_suffix)),
|
||||
join_path(spec['wannier90'].prefix.lib, 'libwannier.a'),
|
||||
join_path(spec['pexsi'].prefix.lib, 'libpexsi.a'),
|
||||
join_path(spec['superlu-dist'].prefix.lib,
|
||||
'libsuperlu_dist.a'),
|
||||
@@ -164,19 +180,15 @@ def install(self, spec, prefix):
|
||||
'libmetis.{0}'.format(dso_suffix)
|
||||
),
|
||||
])
|
||||
libs.extend(spec['scalapack'].scalapack_shared_libs)
|
||||
libs.extend(scalapack)
|
||||
libs.extend(self.spec['mpi'].mpicxx_shared_libs)
|
||||
libs.extend(self.compiler.stdcxx_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
|
||||
])
|
||||
lapack = spec['lapack'].lapack_libs
|
||||
blas = spec['blas'].blas_libs
|
||||
|
||||
ldflags.append((lapack + blas).search_flags)
|
||||
libs.extend([str(x) for x in (fftw, lapack, blas)])
|
||||
|
||||
# Write compiler flags to file
|
||||
mkf.write('CPPFLAGS = {0}\n'.format(' '.join(cppflags)))
|
||||
|
||||
@@ -43,14 +43,19 @@ class Cube(Package):
|
||||
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
|
||||
variant('gui', default=False, description='Build CUBE GUI')
|
||||
|
||||
depends_on('zlib')
|
||||
depends_on('qt@4.6:', when='+gui')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure_args = ["--prefix=%s" % prefix,
|
||||
"--without-paraver",
|
||||
"--without-gui"]
|
||||
"--without-paraver"]
|
||||
|
||||
# TODO : need to handle cross compiling build
|
||||
if '+gui' not in spec:
|
||||
configure_args.append('--without-gui')
|
||||
|
||||
configure(*configure_args)
|
||||
make(parallel=False)
|
||||
make()
|
||||
make("install", parallel=False)
|
||||
|
||||
@@ -39,7 +39,7 @@ class Cuda(Package):
|
||||
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
|
||||
mirror, see http://spack.readthedocs.io/en/latest/mirrors.html.
|
||||
|
||||
Note: This package does not currently install the drivers necessary
|
||||
to run CUDA. These will need to be installed manually. See:
|
||||
|
||||
@@ -32,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.3', 'bd177fd6deecce00cfa7b5916d831c5e')
|
||||
version('7.50.2', '6e161179f7af4b9f8b6ea21420132719')
|
||||
version('7.50.1', '015f6a0217ca6f2c5442ca406476920b')
|
||||
version('7.49.1', '6bb1f7af5b58b30e4e6414b8c1abccab')
|
||||
version('7.47.1', '9ea3123449439bbd960cd25cf98796fb')
|
||||
|
||||
@@ -9,7 +9,7 @@ class Daal(IntelInstaller):
|
||||
|
||||
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"""
|
||||
mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
|
||||
|
||||
homepage = "https://software.intel.com/en-us/daal"
|
||||
|
||||
|
||||
65
var/spack/repos/builtin/packages/darshan-runtime/package.py
Normal file
65
var/spack/repos/builtin/packages/darshan-runtime/package.py
Normal file
@@ -0,0 +1,65 @@
|
||||
#
|
||||
# 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 DarshanRuntime(Package):
|
||||
"""Darshan (runtime) is a scalable HPC I/O characterization tool
|
||||
designed to capture an accurate picture of application I/O behavior,
|
||||
including properties such as patterns of access within files, with
|
||||
minimum overhead. DarshanRuntime package should be installed on
|
||||
systems where you intend to instrument MPI applications."""
|
||||
|
||||
homepage = "http://www.mcs.anl.gov/research/projects/darshan/"
|
||||
url = "ftp://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz"
|
||||
|
||||
version('3.1.0', '439d717323e6265b2612ed127886ae52')
|
||||
version('3.0.0', '732577fe94238936268d74d7d74ebd08')
|
||||
|
||||
depends_on('mpi')
|
||||
depends_on('zlib')
|
||||
|
||||
variant('slurm', default=False, description='Use Slurm Job ID')
|
||||
variant('cobalt', default=False, description='Use Coblat Job Id')
|
||||
variant('pbs', default=False, description='Use PBS Job Id')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
job_id = 'NONE'
|
||||
if '+slurm' in spec:
|
||||
job_id = 'SLURM_JOBID'
|
||||
if '+cobalt' in spec:
|
||||
job_id = 'COBALT_JOBID'
|
||||
if '+pbs' in spec:
|
||||
job_id = 'PBS_JOBID'
|
||||
|
||||
# TODO: BG-Q and other platform configure options
|
||||
options = ['CC=%s' % spec['mpi'].mpicc,
|
||||
'--with-mem-align=8',
|
||||
'--with-log-path-by-env=DARSHAN_LOG_DIR_PATH',
|
||||
'--with-jobid-env=%s' % job_id,
|
||||
'--with-zlib=%s' % spec['zlib'].prefix]
|
||||
|
||||
with working_dir('spack-build', create=True):
|
||||
configure = Executable('../darshan-runtime/configure')
|
||||
configure('--prefix=%s' % prefix, *options)
|
||||
make()
|
||||
make('install')
|
||||
|
||||
def setup_environment(self, spack_env, run_env):
|
||||
# default path for log file, could be user or site specific setting
|
||||
darshan_log_dir = '%s' % os.environ['HOME']
|
||||
run_env.set('DARSHAN_LOG_DIR_PATH', darshan_log_dir)
|
||||
41
var/spack/repos/builtin/packages/darshan-util/package.py
Normal file
41
var/spack/repos/builtin/packages/darshan-util/package.py
Normal file
@@ -0,0 +1,41 @@
|
||||
#
|
||||
# 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 DarshanUtil(Package):
|
||||
"""Darshan (util) is collection of tools for parsing and summarizing log
|
||||
files produced by Darshan (runtime) instrumentation. This package is
|
||||
typically installed on systems (front-end) where you intend to analyze
|
||||
log files produced by Darshan (runtime)."""
|
||||
|
||||
homepage = "http://www.mcs.anl.gov/research/projects/darshan/"
|
||||
url = "ftp://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz"
|
||||
|
||||
version('3.1.0', '439d717323e6265b2612ed127886ae52')
|
||||
version('3.0.0', '732577fe94238936268d74d7d74ebd08')
|
||||
|
||||
depends_on('zlib')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
options = ['CC=%s' % self.compiler.cc,
|
||||
'--with-zlib=%s' % spec['zlib'].prefix]
|
||||
|
||||
with working_dir('spack-build', create=True):
|
||||
configure = Executable('../darshan-util/configure')
|
||||
configure('--prefix=%s' % prefix, *options)
|
||||
make()
|
||||
make('install')
|
||||
@@ -32,6 +32,7 @@ class Dealii(Package):
|
||||
homepage = "https://www.dealii.org"
|
||||
url = "https://github.com/dealii/dealii/releases/download/v8.4.1/dealii-8.4.1.tar.gz"
|
||||
|
||||
version('8.4.2', '84c6bd3f250d3e0681b645d24cb987a7')
|
||||
version('8.4.1', 'efbaf16f9ad59cfccad62302f36c3c1d')
|
||||
version('8.4.0', 'ac5dbf676096ff61e092ce98c80c2b00')
|
||||
version('8.3.0', 'fc6cdcb16309ef4bea338a4f014de6fa')
|
||||
@@ -67,11 +68,11 @@ class Dealii(Package):
|
||||
# Boost 1.58 is blacklisted, see
|
||||
# https://github.com/dealii/dealii/issues/1591
|
||||
# Require at least 1.59
|
||||
# +python won't affect @:8.4.1
|
||||
# +python won't affect @:8.4.2
|
||||
depends_on("boost@1.59.0:+thread+system+serialization+iostreams",
|
||||
when='@:8.4.1~mpi')
|
||||
when='@:8.4.2~mpi')
|
||||
depends_on("boost@1.59.0:+thread+system+serialization+iostreams+mpi",
|
||||
when='@:8.4.1+mpi')
|
||||
when='@:8.4.2+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')
|
||||
@@ -102,8 +103,9 @@ class Dealii(Package):
|
||||
depends_on("netcdf-cxx", when='+netcdf+mpi')
|
||||
depends_on("oce", when='+oce')
|
||||
depends_on("p4est", when='+p4est+mpi')
|
||||
depends_on("petsc+mpi", when='@8.5.0:+petsc+mpi')
|
||||
depends_on("slepc", when='@8.5.0:+slepc+petsc+mpi')
|
||||
depends_on("petsc+mpi", when='@8.4.2:+petsc+mpi')
|
||||
depends_on('python', when='@8.5.0:+python')
|
||||
depends_on("slepc", when='@8.4.2:+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')
|
||||
@@ -122,6 +124,7 @@ def install(self, spec, prefix):
|
||||
options.remove(word)
|
||||
|
||||
dsuf = 'dylib' if sys.platform == 'darwin' else 'so'
|
||||
lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs
|
||||
options.extend([
|
||||
'-DCMAKE_BUILD_TYPE=DebugRelease',
|
||||
'-DDEAL_II_COMPONENT_EXAMPLES=ON',
|
||||
@@ -134,9 +137,7 @@ def install(self, spec, prefix):
|
||||
'-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_LIBRARIES=%s' % lapack_blas.joined(';'),
|
||||
'-DMUPARSER_DIR=%s' % spec['muparser'].prefix,
|
||||
'-DUMFPACK_DIR=%s' % spec['suite-sparse'].prefix,
|
||||
'-DTBB_DIR=%s' % spec['tbb'].prefix,
|
||||
|
||||
@@ -87,12 +87,12 @@ def configure(self, spec):
|
||||
# BLAS/LAPACK support
|
||||
# Note: BLAS/LAPACK must be compiled with OpenMP support
|
||||
# if the +openmp variant is chosen
|
||||
blas = 'blas.a'
|
||||
blas = 'blas.a'
|
||||
lapack = 'lapack.a'
|
||||
if '+blas' in spec:
|
||||
blas = spec['blas'].blas_shared_lib
|
||||
blas = spec['blas'].blas_libs.joined()
|
||||
if '+lapack' in spec:
|
||||
lapack = spec['lapack'].lapack_shared_lib
|
||||
lapack = spec['lapack'].lapack_libs.joined()
|
||||
# lapack must come before blas
|
||||
config['LIB_LPK'] = ' '.join([lapack, blas])
|
||||
|
||||
|
||||
@@ -34,8 +34,16 @@ 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(
|
||||
'2016.05.003',
|
||||
'88a9f3f3bfb63e16509dd1be089dcf2c',
|
||||
url='http://elpa.mpcdf.mpg.de/html/Releases/2016.05.003/elpa-2016.05.003.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')
|
||||
|
||||
@@ -46,7 +54,24 @@ class Elpa(Package):
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
options = ["--prefix=%s" % prefix]
|
||||
options = [
|
||||
'CC={0}'.format(self.spec['mpi'].mpicc),
|
||||
'FC={0}'.format(self.spec['mpi'].mpifc),
|
||||
'CXX={0}'.format(self.spec['mpi'].mpicxx),
|
||||
'FCFLAGS={0}'.format(
|
||||
spec['lapack'].lapack_libs.joined()
|
||||
),
|
||||
'LDFLAGS={0}'.format(
|
||||
spec['lapack'].lapack_libs.joined()
|
||||
),
|
||||
'SCALAPACK_FCFLAGS={0}'.format(
|
||||
spec['scalapack'].scalapack_libs.joined()
|
||||
),
|
||||
'SCALAPACK_LDFLAGS={0}'.format(
|
||||
spec['scalapack'].scalapack_libs.joined()
|
||||
),
|
||||
'--prefix={0}'.format(self.prefix)
|
||||
]
|
||||
|
||||
if '+openmp' in spec:
|
||||
options.append("--enable-openmp")
|
||||
|
||||
@@ -88,7 +88,7 @@ def install(self, spec, prefix):
|
||||
|
||||
# Add a list of directories to search
|
||||
search_list = []
|
||||
for name, dependency_spec in spec.dependencies.iteritems():
|
||||
for dependency_spec in spec.dependencies():
|
||||
search_list.extend([dependency_spec.prefix.lib,
|
||||
dependency_spec.prefix.lib64])
|
||||
|
||||
|
||||
@@ -53,8 +53,8 @@ class Extrae(Package):
|
||||
programming models either alone or in conjunction with MPI :
|
||||
OpenMP, CUDA, OpenCL, pthread, OmpSs"""
|
||||
homepage = "http://www.bsc.es/computer-sciences/extrae"
|
||||
url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-3.0.1.tar.bz2"
|
||||
version('3.0.1', 'a6a8ca96cd877723cd8cc5df6bdb922b')
|
||||
url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-3.3.0.tar.bz2"
|
||||
version('3.3.0', 'f46e3f1a6086b5b3ac41c9585b42952d')
|
||||
|
||||
depends_on("mpi")
|
||||
depends_on("dyninst")
|
||||
@@ -62,6 +62,9 @@ class Extrae(Package):
|
||||
depends_on("boost")
|
||||
depends_on("libdwarf")
|
||||
depends_on("papi")
|
||||
depends_on("libelf")
|
||||
depends_on("libxml2")
|
||||
depends_on("binutils+libiberty")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
if 'openmpi' in spec:
|
||||
@@ -80,6 +83,9 @@ def install(self, spec, prefix):
|
||||
"--with-papi=%s" % spec['papi'].prefix,
|
||||
"--with-dyninst-headers=%s" % spec[
|
||||
'dyninst'].prefix.include,
|
||||
"--with-elf=%s" % spec['libelf'].prefix,
|
||||
"--with-xml-prefix=%s" % spec['libxml2'].prefix,
|
||||
"--with-binutils=%s" % spec['binutils'].prefix,
|
||||
"--with-dyninst-libs=%s" % spec['dyninst'].prefix.lib)
|
||||
|
||||
make()
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/CMakeLists.txt 2016-08-16 02:30:13.466078087 +0200
|
||||
+++ b/CMakeLists.txt 2016-08-16 02:30:36.879586772 +0200
|
||||
@@ -553,7 +553,7 @@
|
||||
set(ENV{HDF5_ROOT} "$ENV{HDF5_DIR}")
|
||||
endif()
|
||||
set(HDF5_PREFER_PARALLEL TRUE)
|
||||
- find_package(HDF5)
|
||||
+ find_package(HDF5 COMPONENTS C)
|
||||
set_package_properties(HDF5 PROPERTIES TYPE OPTIONAL
|
||||
DESCRIPTION "Hierarchical Data Format 5 (HDF5)"
|
||||
URL "https://www.hdfgroup.org/HDF5")
|
||||
@@ -62,17 +62,15 @@ class Fenics(Package):
|
||||
# variant('slepc4py', default=True, description='Uses SLEPc4py')
|
||||
# variant('pastix', default=True, description='Compile with Pastix')
|
||||
|
||||
patch('petsc-3.7.patch', when='^petsc@3.7:')
|
||||
patch('petsc-3.7.patch', when='@1.6.1^petsc@3.7:')
|
||||
patch('petsc-version-detection.patch', when='@:1.6.1')
|
||||
patch('hdf5~cxx-detection.patch')
|
||||
|
||||
extends('python')
|
||||
|
||||
depends_on('py-numpy')
|
||||
depends_on('py-ply')
|
||||
depends_on('py-six')
|
||||
depends_on('py-sphinx@1.0.1:', when='+doc')
|
||||
depends_on('eigen@3.2.0:')
|
||||
depends_on('boost')
|
||||
depends_on('eigen@3.2.0:', type='build')
|
||||
depends_on('boost+filesystem+program_options+system+iostreams+timer+regex+chrono')
|
||||
|
||||
depends_on('mpi', when='+mpi')
|
||||
depends_on('hdf5', when='+hdf5')
|
||||
depends_on('parmetis@4.0.2:^metis+real64', when='+parmetis')
|
||||
@@ -85,12 +83,27 @@ class Fenics(Package):
|
||||
depends_on('suite-sparse', when='+suite-sparse')
|
||||
depends_on('qt', when='+qt')
|
||||
|
||||
# This are the build dependencies
|
||||
depends_on('py-setuptools')
|
||||
depends_on('cmake@2.8.12:')
|
||||
depends_on('swig@3.0.3:')
|
||||
depends_on('py-ply', type=nolink)
|
||||
depends_on('py-six', type=nolink)
|
||||
depends_on('py-numpy', type=nolink)
|
||||
depends_on('py-sympy', type=nolink)
|
||||
depends_on('swig@3.0.3:', type=nolink)
|
||||
depends_on('cmake@2.8.12:', type=nolink)
|
||||
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('py-sphinx@1.0.1:', when='+doc', type='build')
|
||||
|
||||
releases = [
|
||||
{
|
||||
'version': '2016.1.0',
|
||||
'md5': '92e8d00f6487a575987201f0b0d19173',
|
||||
'resources': {
|
||||
'ffc': '35457ae164e481ba5c9189ebae060a47',
|
||||
'fiat': 'ac0c49942831ee434301228842bcc280',
|
||||
'instant': '0e3dbb464c4d90d691f31f0fdd63d4f6',
|
||||
'ufl': '37433336e5c9b58d1d5ab4acca9104a7',
|
||||
}
|
||||
},
|
||||
{
|
||||
'version': '1.6.0',
|
||||
'md5': '35cb4baf7ab4152a40fb7310b34d5800',
|
||||
|
||||
@@ -34,9 +34,12 @@ class Fontconfig(Package):
|
||||
|
||||
depends_on('freetype')
|
||||
depends_on('libxml2')
|
||||
depends_on('pkg-config', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix, "--enable-libxml2")
|
||||
configure("--prefix=%s" % prefix,
|
||||
"--enable-libxml2",
|
||||
"--disable-docs")
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
from contextlib import closing
|
||||
from glob import glob
|
||||
import sys
|
||||
from os.path import isfile
|
||||
|
||||
|
||||
class Gcc(Package):
|
||||
@@ -68,6 +69,19 @@ def install(self, spec, prefix):
|
||||
if spec.satisfies("@4.7.1:") and sys.platform != 'darwin':
|
||||
enabled_languages.add('go')
|
||||
|
||||
# Fix a standard header file for OS X Yosemite that
|
||||
# is GCC incompatible by replacing non-GCC compliant macros
|
||||
if 'yosemite' in spec.architecture:
|
||||
if isfile(r'/usr/include/dispatch/object.h'):
|
||||
new_dispatch_dir = join_path(prefix, 'include', 'dispatch')
|
||||
mkdirp(new_dispatch_dir)
|
||||
cp = which('cp')
|
||||
new_header = join_path(new_dispatch_dir, 'object.h')
|
||||
cp(r'/usr/include/dispatch/object.h', new_header)
|
||||
filter_file(r'typedef void \(\^dispatch_block_t\)\(void\)',
|
||||
'typedef void* dispatch_block_t',
|
||||
new_header)
|
||||
|
||||
# Generic options to compile GCC
|
||||
options = ["--prefix=%s" % prefix, "--libdir=%s/lib64" % prefix,
|
||||
"--disable-multilib",
|
||||
|
||||
@@ -41,9 +41,18 @@ class Gdb(Package):
|
||||
version('7.9', '8f8ced422fe462a00e0135a643544f17')
|
||||
version('7.8.2', '8b0ea8b3559d3d90b3ff4952f0aeafbc')
|
||||
|
||||
variant('python', default=True, description='Compile with Python support')
|
||||
|
||||
# Required dependency
|
||||
depends_on('texinfo', type='build')
|
||||
|
||||
# Optional dependency
|
||||
depends_on('python', when='+python')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix=%s' % prefix)
|
||||
options = ['--prefix=%s' % prefix]
|
||||
if '+python' in spec:
|
||||
options.extend(['--with-python'])
|
||||
configure(*options)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
85
var/spack/repos/builtin/packages/geant4/package.py
Normal file
85
var/spack/repos/builtin/packages/geant4/package.py
Normal file
@@ -0,0 +1,85 @@
|
||||
##############################################################################
|
||||
# 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 Geant4(Package):
|
||||
"""Geant4 is a toolkit for the simulation of the passage of particles
|
||||
through matter. Its areas of application include high energy, nuclear
|
||||
and accelerator physics, as well as studies in medical and space
|
||||
science."""
|
||||
|
||||
homepage = "http://geant4.cern.ch/"
|
||||
url = "http://geant4.cern.ch/support/source/geant4.10.01.p03.tar.gz"
|
||||
|
||||
version('10.02.p01', 'b81f7082a15f6a34b720b6f15c6289cfe4ddbbbdcef0dc52719f71fac95f7f1c')
|
||||
version('10.01.p03', '4fb4175cc0dabcd517443fbdccd97439')
|
||||
|
||||
variant('qt', default=False, description='Enable Qt support')
|
||||
|
||||
depends_on('cmake@3.5:', type='build')
|
||||
|
||||
depends_on("clhep@2.3.1.1~cxx11+cxx14", when="@10.02.p01")
|
||||
depends_on("clhep@2.2.0.4~cxx11+cxx14", when="@10.01.p03")
|
||||
depends_on("expat")
|
||||
depends_on("zlib")
|
||||
depends_on("xerces-c")
|
||||
depends_on("qt@4.8:", when="+qt")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake_args = list(std_cmake_args)
|
||||
cmake_args.append('-DXERCESC_ROOT_DIR:STRING=%s' %
|
||||
spec['xerces-c'].prefix)
|
||||
cmake_args.append('-DGEANT4_BUILD_CXXSTD=c++14')
|
||||
|
||||
cmake_args += ['-DGEANT4_USE_GDML=ON',
|
||||
'-DGEANT4_USE_SYSTEM_EXPAT=ON',
|
||||
'-DGEANT4_USE_SYSTEM_ZLIB=ON',
|
||||
'-DGEANT4_USE_SYSTEM_CLHEP=ON']
|
||||
|
||||
# fixme: turn off data for now and maybe each data set should
|
||||
# go into a separate package to cut down on disk usage between
|
||||
# different code versions using the same data versions.
|
||||
cmake_args.append('-DGEANT4_INSTALL_DATA=OFF')
|
||||
|
||||
# http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/InstallationGuide/html/ch02s03.html
|
||||
# fixme: likely things that need addressing:
|
||||
# -DGEANT4_USE_OPENGL_X11=ON
|
||||
|
||||
if '+qt' in spec:
|
||||
cmake_args.append('-DGEANT4_USE_QT=ON')
|
||||
|
||||
build_directory = join_path(self.stage.path, 'spack-build')
|
||||
source_directory = self.stage.source_path
|
||||
|
||||
with working_dir(build_directory, create=True):
|
||||
cmake(source_directory, *cmake_args)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
def url_for_version(self, version):
|
||||
"""Handle Geant4's unusual version string."""
|
||||
return "http://geant4.cern.ch/support/source/geant4.%s.tar.gz" % version
|
||||
@@ -26,17 +26,28 @@
|
||||
|
||||
|
||||
class GitLfs(Package):
|
||||
"""Tool for managing large files with Git."""
|
||||
"""Git LFS is a system for managing and versioning large files in
|
||||
association with a Git repository. Instead of storing the large files
|
||||
within the Git repository as blobs, Git LFS stores special "pointer
|
||||
files" in the repository, while storing the actual file contents on a
|
||||
Git LFS server."""
|
||||
|
||||
homepage = "https://git-lfs.github.com"
|
||||
url = "https://github.com/github/git-lfs/archive/v1.4.1.tar.gz"
|
||||
git_url = "https://github.com/github/git-lfs.git"
|
||||
|
||||
version('1.4.1', 'c62a314d96d3a30af4d98fa3305ad317')
|
||||
version('1.4.1', git=git_url, tag='v1.4.1')
|
||||
version('1.3.1', git=git_url, tag='v1.3.1')
|
||||
|
||||
# TODO: Implement this by following the instructions at this location:
|
||||
# https://github.com/github/git-lfs/blob/master/CONTRIBUTING.md#building
|
||||
# variant('test', default=True, description='Build and run tests as part of the build.') # NOQA: E501
|
||||
|
||||
depends_on('go@1.5:', type='build')
|
||||
depends_on('git@1.8.2:', type='run')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
bootstrap = Executable('./scripts/bootstrap')
|
||||
bootstrap()
|
||||
install('bin/git-lfs', prefix.bin)
|
||||
bootstrap_script = Executable(join_path('script', 'bootstrap'))
|
||||
bootstrap_script()
|
||||
|
||||
mkdirp(prefix.bin)
|
||||
install(join_path('bin', 'git-lfs'), prefix.bin)
|
||||
|
||||
@@ -22,6 +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
|
||||
##############################################################################
|
||||
import sys
|
||||
from spack import *
|
||||
|
||||
|
||||
@@ -54,28 +55,33 @@ class Git(Package):
|
||||
# version('2.5.4', '3eca2390cf1fa698b48e2a233563a76b')
|
||||
# version('2.2.1', 'ff41fdb094eed1ec430aed8ee9b9849c')
|
||||
|
||||
depends_on("openssl")
|
||||
depends_on("autoconf", type='build')
|
||||
depends_on("curl")
|
||||
depends_on("expat")
|
||||
depends_on("gettext")
|
||||
depends_on("zlib")
|
||||
depends_on("libiconv")
|
||||
depends_on("openssl")
|
||||
depends_on("pcre")
|
||||
depends_on("perl")
|
||||
depends_on("zlib")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
env['LDFLAGS'] = "-L%s" % spec['gettext'].prefix.lib + " -lintl"
|
||||
configure_args = [
|
||||
"--prefix=%s" % prefix,
|
||||
"--with-libpcre=%s" % spec['pcre'].prefix,
|
||||
"--with-openssl=%s" % spec['openssl'].prefix,
|
||||
"--with-zlib=%s" % spec['zlib'].prefix,
|
||||
"--with-curl=%s" % spec['curl'].prefix,
|
||||
"--with-expat=%s" % spec['expat'].prefix,
|
||||
"--with-iconv=%s" % spec['libiconv'].prefix,
|
||||
"--with-libpcre=%s" % spec['pcre'].prefix,
|
||||
"--with-openssl=%s" % spec['openssl'].prefix,
|
||||
"--with-perl=%s" % join_path(spec['perl'].prefix.bin, 'perl'),
|
||||
"--with-zlib=%s" % spec['zlib'].prefix,
|
||||
]
|
||||
|
||||
which('autoreconf')('-i')
|
||||
configure(*configure_args)
|
||||
if sys.platform == "darwin":
|
||||
# Don't link with -lrt; the system has no (and needs no) librt
|
||||
filter_file(r' -lrt$', '', 'Makefile')
|
||||
make()
|
||||
make("install")
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
--- a/configure.ac 2016-08-16 11:57:34.000000000 -0400
|
||||
+++ b/configure.ac 2016-08-16 11:57:36.000000000 -0400
|
||||
@@ -3357,11 +3357,11 @@
|
||||
enable_compile_warnings=yes)
|
||||
AS_IF([test "x$enable_compile_warnings" = xyes], [
|
||||
CC_CHECK_FLAGS_APPEND([GLIB_WARN_CFLAGS], [CFLAGS], [\
|
||||
-Wall -Wstrict-prototypes -Werror=declaration-after-statement \
|
||||
-Werror=missing-prototypes -Werror=implicit-function-declaration \
|
||||
- -Werror=pointer-arith -Werror=init-self -Werror=format-security \
|
||||
- -Werror=format=2 -Werror=missing-include-dirs])
|
||||
+ -Werror=pointer-arith -Werror=init-self \
|
||||
+ -Werror=missing-include-dirs])
|
||||
])
|
||||
AC_SUBST(GLIB_WARN_CFLAGS)
|
||||
|
||||
#
|
||||
@@ -23,6 +23,7 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
|
||||
class Glib(Package):
|
||||
@@ -38,14 +39,20 @@ class Glib(Package):
|
||||
version('2.48.1', '67bd3b75c9f6d5587b457dc01cdcd5bb')
|
||||
version('2.42.1', '89c4119e50e767d3532158605ee9121a')
|
||||
|
||||
depends_on('autoconf', type='build')
|
||||
depends_on('automake', type='build')
|
||||
depends_on('libtool', type='build')
|
||||
depends_on('pkg-config', type='build')
|
||||
depends_on('libffi')
|
||||
depends_on('zlib')
|
||||
depends_on('pkg-config', type='build')
|
||||
depends_on('gettext')
|
||||
depends_on('pcre+utf', when='@2.48:')
|
||||
|
||||
# The following patch is needed for gcc-6.1
|
||||
patch('g_date_strftime.patch', when='@2.42.1')
|
||||
# Clang doesn't seem to acknowledge the pragma lines to disable the -Werror
|
||||
# around a legitimate usage.
|
||||
patch('no-Werror=format-security.patch')
|
||||
|
||||
def url_for_version(self, version):
|
||||
"""Handle glib's version-based custom URLs."""
|
||||
@@ -53,6 +60,16 @@ def url_for_version(self, version):
|
||||
return url + '/%s/glib-%s.tar.xz' % (version.up_to(2), version)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
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"),
|
||||
)
|
||||
configure("--prefix=%s" % prefix)
|
||||
make()
|
||||
make("install", parallel=False)
|
||||
|
||||
42
var/spack/repos/builtin/packages/gmake/package.py
Normal file
42
var/spack/repos/builtin/packages/gmake/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 Gmake(Package):
|
||||
"""GNU Make."""
|
||||
|
||||
homepage = "http://gnu.org/gnu/make"
|
||||
url = "ftp://ftp.gnu.org/gnu/make/make-4.0.tar.gz"
|
||||
|
||||
version('4.0', 'b5e558f981326d9ca1bfdb841640721a')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix={0}'.format(prefix))
|
||||
|
||||
make()
|
||||
make('install')
|
||||
with working_dir(prefix.bin):
|
||||
symlink('make', 'gmake')
|
||||
@@ -37,4 +37,7 @@ class Gmp(AutotoolsPackage):
|
||||
version('6.0.0a', 'b7ff2d88cae7f8085bd5006096eed470')
|
||||
version('6.0.0', '6ef5869ae735db9995619135bd856b84')
|
||||
|
||||
depends_on("m4", type='build')
|
||||
depends_on('m4', type='build')
|
||||
|
||||
def configure_args(self):
|
||||
return ['--enable-cxx']
|
||||
|
||||
@@ -87,9 +87,9 @@ def install(self, spec, prefix):
|
||||
options.append('-DENABLE_OS_SPECIFIC_INSTALL=OFF')
|
||||
|
||||
# Make sure GMSH picks up correct BlasLapack by providing linker flags
|
||||
options.append('-DBLAS_LAPACK_LIBRARIES=%s %s' %
|
||||
(to_link_flags(spec['lapack'].lapack_shared_lib),
|
||||
to_link_flags(spec['blas'].blas_shared_lib)))
|
||||
blas_lapack = spec['lapack'].lapack_libs + spec['blas'].blas_libs
|
||||
options.append(
|
||||
'-DBLAS_LAPACK_LIBRARIES={0}'.format(blas_lapack.ld_flags))
|
||||
|
||||
# Gmsh does not have an option to compile against external metis.
|
||||
# Its own Metis, however, fails to build
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
##############################################################################
|
||||
# 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 glob
|
||||
@@ -17,25 +41,37 @@ class GoBootstrap(Package):
|
||||
|
||||
extendable = True
|
||||
|
||||
# temporary fix until tags are pulled correctly
|
||||
# NOTE: Go@1.4.2 is the only supported bootstrapping compiler because all
|
||||
# later versions require a Go compiler to build.
|
||||
# See: https://golang.org/doc/install/source
|
||||
version('1.4.2', git='https://go.googlesource.com/go', tag='go1.4.2')
|
||||
|
||||
variant('test',
|
||||
default=True,
|
||||
description="Run tests as part of build, a good idea but quite"
|
||||
" time consuming")
|
||||
variant('test', default=True, description='Build and run tests as part of the build.')
|
||||
|
||||
provides('golang@:1.4.2')
|
||||
|
||||
depends_on('git')
|
||||
depends_on('git', type='alldeps')
|
||||
|
||||
# NOTE: Older versions of Go attempt to download external files that have
|
||||
# since been moved while running the test suite. This patch modifies the
|
||||
# test files so that these tests don't cause false failures.
|
||||
# See: https://github.com/golang/go/issues/15694
|
||||
@when('@:1.4.3')
|
||||
def patch(self):
|
||||
test_suite_file = FileFilter(join_path('src', 'run.bash'))
|
||||
test_suite_file.filter(
|
||||
r'^(.*)(\$GOROOT/src/cmd/api/run.go)(.*)$',
|
||||
r'# \1\2\3',
|
||||
)
|
||||
|
||||
@when('@1.5.0:')
|
||||
def patch(self):
|
||||
pass
|
||||
|
||||
def install(self, spec, prefix):
|
||||
bash = which('bash')
|
||||
with working_dir('src'):
|
||||
if '+test' in spec:
|
||||
bash('all.bash')
|
||||
else:
|
||||
bash('make.bash')
|
||||
bash('{0}.bash'.format('all' if '+test' in spec else 'make'))
|
||||
|
||||
try:
|
||||
os.makedirs(prefix)
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
##############################################################################
|
||||
# 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 glob
|
||||
@@ -12,28 +36,39 @@ class Go(Package):
|
||||
|
||||
extendable = True
|
||||
|
||||
version('1.5.4', git='https://go.googlesource.com/go', tag='go1.5.4')
|
||||
version('1.6.2', git='https://go.googlesource.com/go', tag='go1.6.2')
|
||||
version('1.5.4', git='https://go.googlesource.com/go', tag='go1.5.4')
|
||||
version('1.4.2', git='https://go.googlesource.com/go', tag='go1.4.2')
|
||||
|
||||
variant('test',
|
||||
default=True,
|
||||
description="Run tests as part of build, a good idea but quite"
|
||||
" time consuming")
|
||||
variant('test', default=True, description='Build and run tests as part of the build.')
|
||||
|
||||
provides('golang')
|
||||
|
||||
# to-do, make non-c self-hosting compilers feasible without backflips
|
||||
depends_on('git', type='alldeps')
|
||||
# TODO: Make non-c self-hosting compilers feasible without backflips
|
||||
# should be a dep on external go compiler
|
||||
depends_on('go-bootstrap', type='build')
|
||||
depends_on('git', type='alldeps')
|
||||
|
||||
# NOTE: Older versions of Go attempt to download external files that have
|
||||
# since been moved while running the test suite. This patch modifies the
|
||||
# test files so that these tests don't cause false failures.
|
||||
# See: https://github.com/golang/go/issues/15694
|
||||
@when('@:1.4.3')
|
||||
def patch(self):
|
||||
test_suite_file = FileFilter(join_path('src', 'run.bash'))
|
||||
test_suite_file.filter(
|
||||
r'^(.*)(\$GOROOT/src/cmd/api/run.go)(.*)$',
|
||||
r'# \1\2\3',
|
||||
)
|
||||
|
||||
@when('@1.5.0:')
|
||||
def patch(self):
|
||||
pass
|
||||
|
||||
def install(self, spec, prefix):
|
||||
bash = which('bash')
|
||||
with working_dir('src'):
|
||||
if '+test' in spec:
|
||||
bash('all.bash')
|
||||
else:
|
||||
bash('make.bash')
|
||||
bash('{0}.bash'.format('all' if '+test' in spec else 'make'))
|
||||
|
||||
try:
|
||||
os.makedirs(prefix)
|
||||
|
||||
71
var/spack/repos/builtin/packages/grackle/Make.mach.template
Normal file
71
var/spack/repos/builtin/packages/grackle/Make.mach.template
Normal file
@@ -0,0 +1,71 @@
|
||||
MACH_TEXT = Generic Linux
|
||||
MACH_VALID = 1
|
||||
MACH_FILE = Make.mach.@ARCHITECTURE
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Install paths (local variables)
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
LOCAL_HDF5_INSTALL = @HDF5_ROOT
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Compiler settings
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
MACH_CC_NOMPI = @CC # C compiler
|
||||
MACH_CXX_NOMPI = @CXX # C++ compiler
|
||||
MACH_FC_NOMPI = @F77 # Fortran 77
|
||||
MACH_F90_NOMPI = @FC # Fortran 90
|
||||
MACH_LD_NOMPI = @FC # Linker
|
||||
@LINK_VARIABLES_DEFINITION
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Machine-dependent defines
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
MACH_DEFINES = -DLINUX -DH5_USE_16_API -fPIC
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Compiler flag settings
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
MACH_CPPFLAGS = -P -traditional
|
||||
MACH_CFLAGS =
|
||||
MACH_CXXFLAGS =
|
||||
MACH_FFLAGS = -fno-second-underscore -ffixed-line-length-132
|
||||
MACH_F90FLAGS = -fno-second-underscore
|
||||
MACH_LDFLAGS = @STDCXX_LIB
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Optimization flags
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
MACH_OPT_WARN = -Wall -g
|
||||
MACH_OPT_DEBUG = -g
|
||||
MACH_OPT_HIGH = -O2
|
||||
MACH_OPT_AGGRESSIVE = -O3 -g
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Includes
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
LOCAL_INCLUDES_HDF5 = -I@HDF5_ROOT/include # HDF5 includes
|
||||
|
||||
MACH_INCLUDES = $(LOCAL_INCLUDES_HDF5)
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Libraries
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
LOCAL_LIBS_HDF5 = -L@HDF5_ROOT/lib -lhdf5 # HDF5 libraries
|
||||
LOCAL_LIBS_MACH = # Machine-dependent libraries
|
||||
|
||||
MACH_LIBS = $(LOCAL_LIBS_HDF5) $(LOCAL_LIBS_MACH)
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Installation
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
MACH_INSTALL_PREFIX = @PREFIX
|
||||
MACH_INSTALL_LIB_DIR =
|
||||
MACH_INSTALL_INCLUDE_DIR =
|
||||
89
var/spack/repos/builtin/packages/grackle/package.py
Normal file
89
var/spack/repos/builtin/packages/grackle/package.py
Normal file
@@ -0,0 +1,89 @@
|
||||
##############################################################################
|
||||
# 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.path
|
||||
import shutil
|
||||
import inspect
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Grackle(Package):
|
||||
"""Grackle is a chemistry and radiative cooling library for astrophysical
|
||||
simulations with interfaces for C, C++, and Fortran codes. It is a
|
||||
generalized and trimmed down version of the chemistry network of the Enzo
|
||||
simulation code
|
||||
"""
|
||||
homepage = 'http://grackle.readthedocs.io/en/grackle-2.2/'
|
||||
url = 'https://bitbucket.org/grackle/grackle/get/grackle-2.0.1.tar.bz2'
|
||||
|
||||
version('2.2', 'ec49ed1db5a42db21f478285150c2ba3')
|
||||
version('2.0.1', 'a9624ad13a60c592c1a0a4ea8e1ae86d')
|
||||
|
||||
depends_on('libtool', when='@2.2')
|
||||
|
||||
depends_on('mpi')
|
||||
depends_on('hdf5+mpi')
|
||||
|
||||
parallel = False
|
||||
|
||||
def install(self, spec, prefix):
|
||||
template_name = '{0.architecture}-{0.compiler.name}'
|
||||
grackle_architecture = template_name.format(spec)
|
||||
link_variables = 'MACH_AR = ar' if spec.version < Version(2.2) else 'MACH_LIBTOOL = libtool' # NOQA: ignore=E501
|
||||
substitutions = {
|
||||
'@ARCHITECTURE': grackle_architecture,
|
||||
'@CC': spec['mpi'].mpicc,
|
||||
'@CXX': spec['mpi'].mpicxx,
|
||||
'@FC': spec['mpi'].mpifc,
|
||||
'@F77': spec['mpi'].mpif77,
|
||||
'@STDCXX_LIB': ' '.join(self.compiler.stdcxx_libs),
|
||||
'@HDF5_ROOT': spec['hdf5'].prefix,
|
||||
'@PREFIX': prefix,
|
||||
'@LINK_VARIABLES_DEFINITION': link_variables
|
||||
}
|
||||
|
||||
template = join_path(
|
||||
os.path.dirname(inspect.getmodule(self).__file__),
|
||||
'Make.mach.template'
|
||||
)
|
||||
makefile = join_path(
|
||||
self.stage.source_path,
|
||||
'src',
|
||||
'clib',
|
||||
'Make.mach.{0}'.format(grackle_architecture)
|
||||
)
|
||||
shutil.copy(template, makefile)
|
||||
for key, value in substitutions.items():
|
||||
filter_file(key, value, makefile)
|
||||
|
||||
configure()
|
||||
with working_dir('src/clib'):
|
||||
make('clean')
|
||||
make('machine-{0}'.format(grackle_architecture))
|
||||
make('opt-high')
|
||||
make('show-config')
|
||||
make()
|
||||
mkdirp(prefix.lib)
|
||||
make('install')
|
||||
80
var/spack/repos/builtin/packages/grib-api/package.py
Normal file
80
var/spack/repos/builtin/packages/grib-api/package.py
Normal file
@@ -0,0 +1,80 @@
|
||||
##############################################################################
|
||||
# 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 GribApi(Package):
|
||||
"""The ECMWF GRIB API is an application program interface accessible from
|
||||
C, FORTRAN and Python programs developed for encoding and decoding WMO
|
||||
FM-92 GRIB edition 1 and edition 2 messages."""
|
||||
|
||||
homepage = "https://software.ecmwf.int/wiki/display/GRIB/Home"
|
||||
url = "https://software.ecmwf.int/wiki/download/attachments/3473437/grib_api-1.17.0-Source.tar.gz"
|
||||
|
||||
version('1.17.0', 'bca7114d2c3100501a08190a146818d2')
|
||||
version('1.16.0', '8c7fdee03344e4379d400ae20976a460')
|
||||
|
||||
variant('netcdf', default=False, description='Enable netcdf encoding/decoding using netcdf library')
|
||||
variant('jpeg', default=True, description='Enable jpeg 2000 for grib 2 decoding/encoding')
|
||||
variant('png', default=False, description='Enable png for decoding/encoding')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('libpng', when='+png')
|
||||
depends_on('netcdf', when='+netcdf')
|
||||
depends_on('jasper', when='+jpeg')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
options = []
|
||||
options.extend(std_cmake_args)
|
||||
options.append('-DBUILD_SHARED_LIBS=BOTH')
|
||||
|
||||
# We will add python support later.
|
||||
options.append('-DENABLE_PYTHON=OFF')
|
||||
|
||||
# Disable FORTRAN interface if we don't have it.
|
||||
if (self.compiler.f77 is None) or (self.compiler.fc is None):
|
||||
options.append('-DENABLE_FORTRAN=OFF')
|
||||
|
||||
if '+netcdf' in spec:
|
||||
options.append('-DENABLE_NETCDF=ON')
|
||||
options.append('-DNETCDF_PATH=%s' % spec['netcdf'].prefix)
|
||||
else:
|
||||
options.append('-DENABLE_NETCDF=OFF')
|
||||
|
||||
if '+jpeg' in spec:
|
||||
options.append('-DENABLE_JPG=ON')
|
||||
options.append('-DJASPER_PATH=%s' % spec['jasper'].prefix)
|
||||
else:
|
||||
options.append('-DENABLE_JPG=OFF')
|
||||
|
||||
if '+png' in spec:
|
||||
options.append('-DENABLE_PNG=ON')
|
||||
else:
|
||||
options.append('-DENABLE_PNG=OFF')
|
||||
|
||||
with working_dir('spack-build', create=True):
|
||||
cmake('..', *options)
|
||||
make()
|
||||
make('install')
|
||||
70
var/spack/repos/builtin/packages/h5hut/package.py
Normal file
70
var/spack/repos/builtin/packages/h5hut/package.py
Normal file
@@ -0,0 +1,70 @@
|
||||
##############################################################################
|
||||
# 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 H5hut(Package):
|
||||
"""H5hut (HDF5 Utility Toolkit)
|
||||
High-Performance I/O Library for Particle-based Simulations
|
||||
"""
|
||||
|
||||
homepage = "https://amas.psi.ch/H5hut/"
|
||||
url = "https://amas.psi.ch/H5hut/raw-attachment/wiki/DownloadSources/H5hut-1.99.13.tar.gz"
|
||||
|
||||
version("1.99.13", "2a07a449afe50534de006ac6954a421a")
|
||||
|
||||
variant("fortran", default=True, description="Enable Fortran support")
|
||||
variant("mpi", default=False, description="Enable MPI support")
|
||||
|
||||
depends_on("autoconf @2.60:", type="build")
|
||||
depends_on("automake", type="build")
|
||||
depends_on("hdf5 +mpi", when="+mpi")
|
||||
depends_on("hdf5 @1.8:")
|
||||
# h5hut +mpi uses the obsolete function H5Pset_fapl_mpiposix:
|
||||
depends_on("hdf5 @:1.8.12", when="+mpi")
|
||||
depends_on("libtool", type="build")
|
||||
depends_on("mpi", when="+mpi")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
autogen = Executable("./autogen.sh")
|
||||
autogen()
|
||||
configopts = ["--prefix={0}".format(prefix)]
|
||||
if "+fortran" in spec:
|
||||
if not self.compiler.fc:
|
||||
raise RuntimeError(
|
||||
"Cannot build Fortran variant without a Fortran compiler")
|
||||
configopts.append("--enable-fortran")
|
||||
if "+mpi" in spec:
|
||||
configopts.extend([
|
||||
"--enable-parallel",
|
||||
"CC=%s" % spec["mpi"].mpicc,
|
||||
"CXX=%s" % spec["mpi"].mpicxx])
|
||||
if "+fortran" in spec:
|
||||
configopts.append("FC=%s" % spec["mpi"].mpifc)
|
||||
configure(*configopts)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
53
var/spack/repos/builtin/packages/hadoop/package.py
Normal file
53
var/spack/repos/builtin/packages/hadoop/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 Alfredo Gimenez, gimenez1@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 Hadoop(Package):
|
||||
"""The Apache Hadoop software library is a framework that
|
||||
allows for the distributed processing of large data sets
|
||||
across clusters of computers using simple programming models.
|
||||
"""
|
||||
|
||||
homepage = "http://hadoop.apache.org/"
|
||||
url = "http://mirrors.ocf.berkeley.edu/apache/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz"
|
||||
|
||||
version('2.6.4', '37019f13d7dcd819727be158440b9442')
|
||||
|
||||
depends_on('jdk', type='run')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
def install_dir(dirname):
|
||||
install_tree(dirname, join_path(prefix, dirname))
|
||||
|
||||
install_dir('bin')
|
||||
install_dir('etc')
|
||||
install_dir('include')
|
||||
install_dir('lib')
|
||||
install_dir('libexec')
|
||||
install_dir('sbin')
|
||||
install_dir('share')
|
||||
@@ -32,8 +32,9 @@ class Harfbuzz(Package):
|
||||
|
||||
version('0.9.37', 'bfe733250e34629a188d82e3b971bc1e')
|
||||
|
||||
depends_on("pkg-config", type="build")
|
||||
depends_on("glib")
|
||||
depends_on("icu")
|
||||
depends_on("icu4c")
|
||||
depends_on("freetype")
|
||||
depends_on("cairo")
|
||||
depends_on("zlib")
|
||||
|
||||
@@ -38,13 +38,12 @@ class Hdf(Package):
|
||||
|
||||
variant('szip', default=False, description="Enable szip support")
|
||||
|
||||
depends_on("jpeg")
|
||||
depends_on("szip", when='+szip')
|
||||
depends_on("zlib")
|
||||
depends_on('jpeg')
|
||||
depends_on('szip', when='+szip')
|
||||
depends_on('zlib')
|
||||
|
||||
def url_for_version(self, version):
|
||||
return "https://www.hdfgroup.org/ftp/HDF/releases/HDF" + str(
|
||||
version) + "/src/hdf-" + str(version) + ".tar.gz"
|
||||
depends_on('bison', type='build')
|
||||
depends_on('flex', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
config_args = [
|
||||
@@ -66,4 +65,5 @@ def install(self, spec, prefix):
|
||||
configure(*config_args)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
make('check')
|
||||
make('install')
|
||||
|
||||
@@ -43,6 +43,7 @@ class Hdf5(AutotoolsPackage):
|
||||
version('1.8.16', 'b8ed9a36ae142317f88b0c7ef4b9c618')
|
||||
version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24')
|
||||
version('1.8.13', 'c03426e9e77d7766944654280b467289')
|
||||
version('1.8.12', 'd804802feb99b87fc668a90e6fa34411')
|
||||
|
||||
variant('debug', default=False,
|
||||
description='Builds a debug version of the library')
|
||||
@@ -52,7 +53,7 @@ class Hdf5(AutotoolsPackage):
|
||||
variant('cxx', default=True, description='Enable C++ support')
|
||||
variant('fortran', default=True, description='Enable Fortran support')
|
||||
|
||||
variant('mpi', default=False, description='Enable MPI support')
|
||||
variant('mpi', default=True, description='Enable MPI support')
|
||||
variant('szip', default=False, description='Enable szip support')
|
||||
variant('threadsafe', default=False,
|
||||
description='Enable thread-safe capabilities')
|
||||
|
||||
55
var/spack/repos/builtin/packages/hepmc/package.py
Normal file
55
var/spack/repos/builtin/packages/hepmc/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 Hepmc(Package):
|
||||
"""The HepMC package is an object oriented, C++ event record for
|
||||
High Energy Physics Monte Carlo generators and simulation."""
|
||||
|
||||
homepage = "http://hepmc.web.cern.ch/hepmc/"
|
||||
url = "http://hepmc.web.cern.ch/hepmc/releases/hepmc2.06.09.tgz"
|
||||
|
||||
version('2.06.09', 'c47627ced4255b40e731b8666848b087')
|
||||
version('2.06.08', 'a2e889114cafc4f60742029d69abd907')
|
||||
version('2.06.07', '11d7035dccb0650b331f51520c6172e7')
|
||||
version('2.06.06', '102e5503537a3ecd6ea6f466aa5bc4ae')
|
||||
version('2.06.05', '2a4a2a945adf26474b8bdccf4f881d9c')
|
||||
|
||||
depends_on("cmake", type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
build_directory = join_path(self.stage.path, 'spack-build')
|
||||
source_directory = self.stage.source_path
|
||||
options = [source_directory]
|
||||
options.append('-Dmomentum:STRING=GEV')
|
||||
options.append('-Dlength:STRING=MM')
|
||||
options.extend(std_cmake_args)
|
||||
|
||||
with working_dir(build_directory, create=True):
|
||||
cmake(*options)
|
||||
make()
|
||||
make('install')
|
||||
48
var/spack/repos/builtin/packages/heppdt/package.py
Normal file
48
var/spack/repos/builtin/packages/heppdt/package.py
Normal file
@@ -0,0 +1,48 @@
|
||||
##############################################################################
|
||||
# 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 Heppdt(Package):
|
||||
"""The HepPID library contains translation methods for particle ID's
|
||||
to and from various Monte Carlo generators and the PDG standard
|
||||
numbering scheme. We realize that the generators adhere closely
|
||||
to the standard, but there are occasional differences."""
|
||||
homepage = "http://lcgapp.cern.ch/project/simu/HepPDT/"
|
||||
url = "http://lcgapp.cern.ch/project/simu/HepPDT/download/HepPDT-2.06.01.tar.gz"
|
||||
|
||||
version('3.04.01', 'a8e93c7603d844266b62d6f189f0ac7e')
|
||||
version('3.04.00', '2d2cd7552d3e9539148febacc6287db2')
|
||||
version('3.03.02', '0b85f1809bb8b0b28a46f23c718b2773')
|
||||
version('3.03.01', 'd411f3bfdf9c4350d802241ba2629cc2')
|
||||
version('3.03.00', 'cd84d0a0454be982dcd8c285e060a7b3')
|
||||
version('2.06.01', '5688b4bdbd84b48ed5dd2545a3dc33c0')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix=%s' % prefix)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
@@ -0,0 +1,39 @@
|
||||
#
|
||||
# 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 HpctoolkitExternals(Package):
|
||||
"""HPCToolkit performance analysis tool has many prerequisites and
|
||||
HpctoolkitExternals package provides all these prerequisites."""
|
||||
|
||||
homepage = "http://hpctoolkit.org"
|
||||
|
||||
# Note: No precise release tags/branches provided
|
||||
version('5.4',
|
||||
git='https://github.com/HPCToolkit/hpctoolkit-externals.git',
|
||||
commit='3d2953623357bb06e9a4b51eca90a4b039c2710e')
|
||||
|
||||
parallel = False
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
options = ['CC=%s' % self.compiler.cc,
|
||||
'CXX=%s' % self.compiler.cxx]
|
||||
|
||||
with working_dir('spack-build', create=True):
|
||||
configure = Executable('../configure')
|
||||
configure('--prefix=%s' % prefix, *options)
|
||||
make('install')
|
||||
55
var/spack/repos/builtin/packages/hpctoolkit/package.py
Normal file
55
var/spack/repos/builtin/packages/hpctoolkit/package.py
Normal file
@@ -0,0 +1,55 @@
|
||||
#
|
||||
# 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 Hpctoolkit(Package):
|
||||
"""HPCToolkit is an integrated suite of tools for measurement and analysis
|
||||
of program performance on computers ranging from multicore desktop systems
|
||||
to the nation's largest supercomputers. By using statistical sampling of
|
||||
timers and hardware performance counters, HPCToolkit collects accurate
|
||||
measurements of a program's work, resource consumption, and inefficiency
|
||||
and attributes them to the full calling context in which they occur."""
|
||||
|
||||
homepage = "http://hpctoolkit.org"
|
||||
|
||||
# Note: No precise release tags/branches provided
|
||||
version('5.4', git='https://github.com/HPCToolkit/hpctoolkit.git',
|
||||
commit='d9ca2112762e5a06ea31b5295d793e4a83272d19')
|
||||
|
||||
variant('mpi', default=True, description='Enable MPI supoort')
|
||||
variant('papi', default=True, description='Enable PAPI counter support')
|
||||
|
||||
depends_on('hpctoolkit-externals')
|
||||
depends_on('papi', when='+papi')
|
||||
depends_on('mpi', when='+mpi')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
options = ['CC=%s' % self.compiler.cc,
|
||||
'CXX=%s' % self.compiler.cxx,
|
||||
'--with-externals=%s' % spec['hpctoolkit-externals'].prefix]
|
||||
|
||||
if '+mpi' in spec:
|
||||
options.extend(['MPICXX=%s' % spec['mpi'].mpicxx])
|
||||
|
||||
if '+papi' in spec:
|
||||
options.extend(['--with-papi=%s' % spec['papi'].prefix])
|
||||
|
||||
# TODO: BG-Q configure option
|
||||
with working_dir('spack-build', create=True):
|
||||
configure = Executable('../configure')
|
||||
configure('--prefix=%s' % prefix, *options)
|
||||
make('install')
|
||||
@@ -78,7 +78,7 @@ def configure(self, spec, arch):
|
||||
'MPlib = -L{0}'.format(spec['mpi'].prefix.lib),
|
||||
# Linear Algebra library (BLAS or VSIPL)
|
||||
'LAinc = {0}'.format(spec['blas'].prefix.include),
|
||||
'LAlib = {0}'.format(spec['blas'].blas_shared_lib),
|
||||
'LAlib = {0}'.format(spec['blas'].blas_libs.joined()),
|
||||
# F77 / C interface
|
||||
'F2CDEFS = -DAdd_ -DF77_INTEGER=int -DStringSunStyle',
|
||||
# HPL includes / libraries / specifics
|
||||
|
||||
@@ -42,6 +42,7 @@ class Hwloc(Package):
|
||||
list_url = "http://www.open-mpi.org/software/hwloc/"
|
||||
list_depth = 3
|
||||
|
||||
version('1.11.4', 'b6f23eb59074fd09fdd84905d50b103d')
|
||||
version('1.11.3', 'c1d36a9de6028eac1d18ea4782ef958f')
|
||||
version('1.11.2', 'e4ca55c2a5c5656da4a4e37c8fc51b23')
|
||||
version('1.11.1', 'feb4e416a1b25963ed565d8b42252fdc')
|
||||
|
||||
@@ -54,19 +54,15 @@ def install(self, spec, prefix):
|
||||
os.environ['CXX'] = spec['mpi'].mpicxx
|
||||
os.environ['F77'] = spec['mpi'].mpif77
|
||||
|
||||
# Since +shared does not build on macOS and also Atlas does not have
|
||||
# a single static lib to build against, link against shared libs with
|
||||
# a hope that --whole-archive linker option (or alike) was used
|
||||
# to command the linker to include whole static libs' content into the
|
||||
# shared lib
|
||||
# Note: --with-(lapack|blas)_libs= needs space separated list of names
|
||||
lapack = spec['lapack'].lapack_libs
|
||||
blas = spec['blas'].blas_libs
|
||||
|
||||
configure_args = [
|
||||
'--prefix=%s' % prefix,
|
||||
'--with-lapack-libs=%s' % to_lib_name(
|
||||
spec['lapack'].lapack_shared_lib),
|
||||
'--with-lapack-libs=%s' % ' '.join(lapack.names),
|
||||
'--with-lapack-lib-dirs=%s' % spec['lapack'].prefix.lib,
|
||||
'--with-blas-libs=%s' % to_lib_name(
|
||||
spec['blas'].blas_shared_lib),
|
||||
'--with-blas-libs=%s' % ' '.join(blas.names),
|
||||
'--with-blas-lib-dirs=%s' % spec['blas'].prefix.lib
|
||||
]
|
||||
|
||||
|
||||
@@ -27,18 +27,23 @@
|
||||
|
||||
class Icu4c(Package):
|
||||
"""ICU is a mature, widely used set of C/C++ and Java libraries providing
|
||||
Unicode and Globalization support for software applications.
|
||||
|
||||
"""
|
||||
Unicode and Globalization support for software applications. ICU4C is the
|
||||
C/C++ interface."""
|
||||
|
||||
homepage = "http://site.icu-project.org/"
|
||||
url = "http://downloads.sourceforge.net/project/icu/ICU4C/54.1/icu4c-54_1-src.tgz"
|
||||
url = "http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz"
|
||||
|
||||
version('54_1', 'e844caed8f2ca24c088505b0d6271bc0')
|
||||
version('57.1', '976734806026a4ef8bdd17937c8898b9')
|
||||
|
||||
def url_for_version(self, version):
|
||||
base_url = "http://download.icu-project.org/files/icu4c"
|
||||
return "{0}/{1}/icu4c-{2}-src.tgz".format(
|
||||
base_url, version, version.underscored)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cd("source")
|
||||
configure("--prefix=%s" % prefix)
|
||||
with working_dir('source'):
|
||||
configure('--prefix={0}'.format(prefix))
|
||||
|
||||
make()
|
||||
make("install")
|
||||
make()
|
||||
make('check')
|
||||
make('install')
|
||||
|
||||
@@ -11,7 +11,7 @@ class IntelParallelStudio(IntelInstaller):
|
||||
|
||||
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"""
|
||||
mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
|
||||
|
||||
homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
|
||||
|
||||
@@ -45,6 +45,10 @@ class IntelParallelStudio(IntelInstaller):
|
||||
variant('tools', default=True, description="Install the Intel Advisor, "
|
||||
"VTune Amplifier, and Inspector tools")
|
||||
|
||||
variant('shared', default=True, description='Builds shared library')
|
||||
variant('ilp64', default=False, description='64 bit integers')
|
||||
variant('openmp', default=False, description='OpenMP multithreading layer')
|
||||
|
||||
provides('mpi', when='@cluster:+mpi')
|
||||
provides('mkl', when='+mkl')
|
||||
provides('daal', when='+daal')
|
||||
@@ -55,6 +59,31 @@ class IntelParallelStudio(IntelInstaller):
|
||||
provides('lapack', when='+mkl')
|
||||
# TODO: MKL also provides implementation of Scalapack.
|
||||
|
||||
@property
|
||||
def blas_libs(self):
|
||||
shared = True if '+shared' in self.spec else False
|
||||
suffix = dso_suffix if '+shared' in self.spec else 'a'
|
||||
mkl_integer = ['libmkl_intel_ilp64'] if '+ilp64' in self.spec else ['libmkl_intel_lp64'] # NOQA: ignore=E501
|
||||
mkl_threading = ['libmkl_sequential']
|
||||
if '+openmp' in self.spec:
|
||||
mkl_threading = ['libmkl_intel_thread', 'libiomp5'] if '%intel' in self.spec else ['libmkl_gnu_thread'] # NOQA: ignore=E501
|
||||
# TODO: TBB threading: ['libmkl_tbb_thread', 'libtbb', 'libstdc++']
|
||||
mkl_libs = find_libraries(
|
||||
mkl_integer + ['libmkl_core'] + mkl_threading,
|
||||
root=join_path(self.prefix.lib, 'intel64'),
|
||||
shared=shared
|
||||
)
|
||||
system_libs = [
|
||||
'libpthread.{0}'.format(suffix),
|
||||
'libm.{0}'.format(suffix),
|
||||
'libdl.{0}'.format(suffix)
|
||||
]
|
||||
return mkl_libs + system_libs
|
||||
|
||||
@property
|
||||
def lapack_libs(self):
|
||||
return self.blas_libs
|
||||
|
||||
def check_variants(self, spec):
|
||||
error_message = '\t{variant} can not be turned off if "+all" is set'
|
||||
|
||||
@@ -171,24 +200,6 @@ def install(self, spec, prefix):
|
||||
os.symlink(os.path.join(self.prefix.man, "common", "man1"),
|
||||
os.path.join(self.prefix.man, "man1"))
|
||||
|
||||
def setup_dependent_package(self, module, dspec):
|
||||
# For now use Single Dynamic Library:
|
||||
# To set the threading layer at run time, use the
|
||||
# mkl_set_threading_layer function or set MKL_THREADING_LAYER
|
||||
# variable to one of the following values: INTEL, SEQUENTIAL, PGI.
|
||||
# To set interface layer at run time, use the mkl_set_interface_layer
|
||||
# function or set the MKL_INTERFACE_LAYER variable to LP64 or ILP64.
|
||||
|
||||
# Otherwise one would need to specify several libraries
|
||||
# (e.g. mkl_intel_lp64;mkl_sequential;mkl_core), which reflect
|
||||
# different interface and threading layers.
|
||||
|
||||
name = 'libmkl_rt.%s' % dso_suffix
|
||||
libdir = find_library_path(name, self.prefix.lib64, self.prefix.lib)
|
||||
|
||||
self.spec.blas_shared_lib = join_path(libdir, name)
|
||||
self.spec.lapack_shared_lib = self.spec.blas_shared_lib
|
||||
|
||||
def setup_environment(self, spack_env, run_env):
|
||||
# TODO: Determine variables needed for the professional edition.
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ class Intel(IntelInstaller):
|
||||
|
||||
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"""
|
||||
mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
|
||||
|
||||
homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
|
||||
|
||||
|
||||
@@ -53,9 +53,8 @@ def install(self, spec, prefix):
|
||||
mumps_flags = "-ldmumps -lmumps_common -lpord -lmpiseq"
|
||||
mumps_libcmd = "-L%s " % mumps_dir.lib + mumps_flags
|
||||
|
||||
# By convention, spack links blas & lapack libs to libblas & liblapack
|
||||
blas_lib = "-L%s" % blas_dir.lib + " -lblas"
|
||||
lapack_lib = "-L%s" % lapack_dir.lib + " -llapack"
|
||||
blas_lib = spec['blas'].blas_libs.ld_flags
|
||||
lapack_lib = spec['lapack'].lapack_libs.ld_flags
|
||||
|
||||
configure_args = [
|
||||
"--prefix=%s" % prefix,
|
||||
|
||||
@@ -9,7 +9,7 @@ class Ipp(IntelInstaller):
|
||||
|
||||
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"""
|
||||
mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
|
||||
|
||||
homepage = "https://software.intel.com/en-us/intel-ipp"
|
||||
|
||||
|
||||
44
var/spack/repos/builtin/packages/itstool/package.py
Normal file
44
var/spack/repos/builtin/packages/itstool/package.py
Normal file
@@ -0,0 +1,44 @@
|
||||
##############################################################################
|
||||
# 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 Itstool(Package):
|
||||
"""ITS Tool allows you to translate your XML documents with PO files, using
|
||||
rules from the W3C Internationalization Tag Set (ITS) to determine what
|
||||
to translate and how to separate it into PO file messages."""
|
||||
|
||||
homepage = "http://itstool.org/"
|
||||
url = "http://files.itstool.org/itstool/itstool-2.0.2.tar.bz2"
|
||||
|
||||
version('2.0.2', 'd472d877a7bc49899a73d442085b2f93')
|
||||
version('2.0.1', '40935cfb08228488bd45575e5f001a34')
|
||||
version('2.0.0', 'd8c702c3e8961db83d04182c2aa4730b')
|
||||
version('1.2.0', 'c0925f6869e33af8e7fe56848c129152')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
make()
|
||||
make('install')
|
||||
@@ -68,3 +68,9 @@ def do_fetch(self, mirror_only=False):
|
||||
|
||||
def install(self, spec, prefix):
|
||||
distutils.dir_util.copy_tree(".", prefix)
|
||||
|
||||
def setup_environment(self, spack_env, run_env):
|
||||
run_env.set('JAVA_HOME', self.spec.prefix)
|
||||
|
||||
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
|
||||
spack_env.set('JAVA_HOME', self.spec.prefix)
|
||||
|
||||
@@ -31,6 +31,8 @@ class Jemalloc(Package):
|
||||
homepage = "http://www.canonware.com/jemalloc/"
|
||||
url = "https://github.com/jemalloc/jemalloc/releases/download/4.0.4/jemalloc-4.0.4.tar.bz2"
|
||||
|
||||
version('4.2.1', '094b0a7b8c77c464d0dc8f0643fd3901')
|
||||
version('4.2.0', 'e6b5d5a1ea93a04207528d274efdd144')
|
||||
version('4.1.0', 'c4e53c947905a533d5899e5cc3da1f94')
|
||||
version('4.0.4', '687c5cc53b9a7ab711ccd680351ff988')
|
||||
|
||||
|
||||
@@ -37,9 +37,11 @@ class Julia(Package):
|
||||
git='https://github.com/JuliaLang/julia.git', branch='master')
|
||||
version('release-0.5',
|
||||
git='https://github.com/JuliaLang/julia.git', branch='release-0.5')
|
||||
version('0.5.0', 'b61385671ba74767ab452363c43131fb', preferred=True)
|
||||
version('release-0.4',
|
||||
git='https://github.com/JuliaLang/julia.git', branch='release-0.4')
|
||||
version('0.4.6', 'd88db18c579049c23ab8ef427ccedf5d', preferred=True)
|
||||
version('0.4.7', '75a7a7dd882b7840829d8f165e9b9078')
|
||||
version('0.4.6', 'd88db18c579049c23ab8ef427ccedf5d')
|
||||
version('0.4.5', '69141ff5aa6cee7c0ec8c85a34aa49a6')
|
||||
version('0.4.3', '8a4a59fd335b05090dd1ebefbbe5aaac')
|
||||
|
||||
@@ -68,7 +70,8 @@ class Julia(Package):
|
||||
depends_on("binutils", when='+binutils')
|
||||
depends_on("cmake @2.8:")
|
||||
depends_on("curl")
|
||||
depends_on("git") # I think Julia @0.5: doesn't use git any more
|
||||
depends_on("git", when='@:0.4')
|
||||
depends_on("git", when='@release-0.4')
|
||||
depends_on("openssl")
|
||||
depends_on("python @2.7:2.999")
|
||||
|
||||
@@ -162,7 +165,7 @@ def install(self, spec, prefix):
|
||||
# Configure Julia
|
||||
with open(join_path(prefix, "etc", "julia", "juliarc.jl"),
|
||||
"a") as juliarc:
|
||||
if "@master" in spec or "@release-0.5" in spec:
|
||||
if "@master" in spec or "@release-0.5" in spec or "@0.5:" in spec:
|
||||
# This is required for versions @0.5:
|
||||
juliarc.write(
|
||||
'# Point package manager to working certificates\n')
|
||||
|
||||
52
var/spack/repos/builtin/packages/libemos/package.py
Normal file
52
var/spack/repos/builtin/packages/libemos/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 Libemos(Package):
|
||||
"""The Interpolation library (EMOSLIB) includes Interpolation software and
|
||||
BUFR & CREX encoding/decoding routines."""
|
||||
|
||||
homepage = "https://software.ecmwf.int/wiki/display/EMOS/Emoslib"
|
||||
url = "https://software.ecmwf.int/wiki/download/attachments/3473472/libemos-4.4.2-Source.tar.gz"
|
||||
|
||||
version('4.4.2', 'f15a9aff0f40861f3f046c9088197376')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('grib-api')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
options = []
|
||||
options.extend(std_cmake_args)
|
||||
|
||||
options.append('-DGRIB_API_PATH=%s' % spec['grib_api'].prefix)
|
||||
|
||||
# To support long pathnames that spack generates
|
||||
options.append('-DCMAKE_Fortran_FLAGS=-ffree-line-length-none')
|
||||
|
||||
with working_dir('spack-build', create=True):
|
||||
cmake('..', *options)
|
||||
make()
|
||||
make('install')
|
||||
@@ -40,18 +40,33 @@ class Libgd(Package):
|
||||
homepage = "https://github.com/libgd/libgd"
|
||||
url = "https://github.com/libgd/libgd/archive/gd-2.1.1.tar.gz"
|
||||
|
||||
version('2.2.3', 'a67bd15fa33d4aac0a1c7904aed19f49')
|
||||
version('2.1.1', 'e91a1a99903e460e7ba00a794e72cc1e')
|
||||
|
||||
# Build dependencies
|
||||
depends_on('autoconf', type='build')
|
||||
depends_on('automake', type='build')
|
||||
depends_on('libtool', type='build')
|
||||
depends_on('m4', type='build')
|
||||
depends_on('gettext', type='build')
|
||||
depends_on('pkg-config', type='build')
|
||||
|
||||
depends_on('libpng')
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('libtiff')
|
||||
depends_on('fontconfig')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
with working_dir('spack-build', create=True):
|
||||
cmake('..',
|
||||
'-DENABLE_JPEG:BOOL=ON',
|
||||
'-DENABLE_PNG:BOOL=ON',
|
||||
'-DENABLE_TIFF:BOOL=ON',
|
||||
*std_cmake_args)
|
||||
make()
|
||||
make("install")
|
||||
autoreconf("--install", "--force",
|
||||
"-I", "m4",
|
||||
"-I", join_path(spec['gettext'].prefix,
|
||||
"share", "aclocal"),
|
||||
"-I", join_path(spec['pkg-config'].prefix,
|
||||
"share", "aclocal"),
|
||||
"-I", join_path(spec['automake'].prefix,
|
||||
"share", "aclocal"),
|
||||
"-I", join_path(spec['libtool'].prefix,
|
||||
"share", "aclocal")
|
||||
)
|
||||
configure('--prefix={0}'.format(prefix))
|
||||
make()
|
||||
make("install")
|
||||
|
||||
104
var/spack/repos/builtin/packages/libint/package.py
Normal file
104
var/spack/repos/builtin/packages/libint/package.py
Normal file
@@ -0,0 +1,104 @@
|
||||
##############################################################################
|
||||
# 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 Libint(Package):
|
||||
"""Libint is a high-performance library for computing
|
||||
Gaussian integrals in quantum mechanics."""
|
||||
|
||||
homepage = "https://github.com/evaleev/libint"
|
||||
url = "https://github.com/evaleev/libint/archive/v2.1.0.tar.gz"
|
||||
|
||||
version('2.1.0', 'd0dcb985fe32ddebc78fe571ce37e2d6')
|
||||
version('1.1.6', '990f67b55f49ecc18f32c58da9240684')
|
||||
version('1.1.5', '379b7d0718ff398715d6898807adf628')
|
||||
|
||||
# Build dependencies
|
||||
depends_on('autoconf@2.52:', type='build')
|
||||
depends_on('automake', type='build')
|
||||
depends_on('libtool', type='build')
|
||||
|
||||
# Libint 2 dependencies
|
||||
depends_on('boost', when='@2:')
|
||||
depends_on('gmp', when='@2:')
|
||||
|
||||
def url_for_version(self, version):
|
||||
base_url = "https://github.com/evaleev/libint/archive"
|
||||
if version == Version('1.0.0'):
|
||||
return "{0}/LIBINT_1_00.tar.gz".format(base_url)
|
||||
elif version < Version('2.1.0'):
|
||||
return "{0}/release-{1}.tar.gz".format(base_url, version.dashed)
|
||||
else:
|
||||
return "{0}/v{1}.tar.gz".format(base_url, version)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Generate configure
|
||||
libtoolize()
|
||||
aclocal('-I', 'lib/autoconf')
|
||||
autoconf()
|
||||
|
||||
config_args = [
|
||||
'--prefix={0}'.format(prefix),
|
||||
'--enable-shared'
|
||||
]
|
||||
|
||||
# Optimizations for the Intel compiler, suggested by CP2K
|
||||
optflags = '-O2'
|
||||
if self.compiler.name == 'intel':
|
||||
optflags += ' -xAVX -axCORE-AVX2 -ipo'
|
||||
if which('xiar'):
|
||||
env['AR'] = 'xiar'
|
||||
|
||||
env['CFLAGS'] = optflags
|
||||
env['CXXFLAGS'] = optflags
|
||||
|
||||
# Optimization flag names have changed in libint 2
|
||||
if self.version < Version('2.0.0'):
|
||||
config_args.extend([
|
||||
'--with-cc-optflags={0}'.format(optflags),
|
||||
'--with-cxx-optflags={0}'.format(optflags)
|
||||
])
|
||||
else:
|
||||
config_args.extend([
|
||||
'--with-cxx-optflags={0}'.format(optflags),
|
||||
'--with-cxxgen-optflags={0}'.format(optflags)
|
||||
])
|
||||
|
||||
# Options required by CP2K, removed in libint 2
|
||||
if self.version < Version('2.0.0'):
|
||||
config_args.extend([
|
||||
'--with-libint-max-am=5',
|
||||
'--with-libderiv-max-am1=4'
|
||||
])
|
||||
|
||||
configure(*config_args)
|
||||
make()
|
||||
|
||||
# Testing suite was added in libint 2
|
||||
if self.version >= Version('2.0.0'):
|
||||
make('check')
|
||||
|
||||
make('install')
|
||||
42
var/spack/repos/builtin/packages/libmesh/package.py
Normal file
42
var/spack/repos/builtin/packages/libmesh/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 Libmesh(Package):
|
||||
"""The libMesh library provides a framework for the numerical simulation of
|
||||
partial differential equations using arbitrary unstructured
|
||||
discretizations on serial and parallel platforms."""
|
||||
|
||||
homepage = "http://libmesh.github.io/"
|
||||
url = "https://github.com/libMesh/libmesh/releases/download/v1.0.0/libmesh-1.0.0.tar.bz2"
|
||||
|
||||
version('1.0.0', 'cb464fc63ea0b71b1e69fa3f5d4f93a4')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix={0}'.format(prefix))
|
||||
|
||||
make()
|
||||
make('install')
|
||||
@@ -30,6 +30,7 @@ class Libpng(Package):
|
||||
homepage = "http://www.libpng.org/pub/png/libpng.html"
|
||||
url = "http://download.sourceforge.net/libpng/libpng-1.6.16.tar.gz"
|
||||
|
||||
version('1.6.24', '65213080dd30a9b16193d9b83adc1ee9')
|
||||
version('1.6.16', '1a4ad377919ab15b54f6cb6a3ae2622d')
|
||||
version('1.6.15', '829a256f3de9307731d4f52dc071916d')
|
||||
version('1.6.14', '2101b3de1d5f348925990f9aa8405660')
|
||||
@@ -37,9 +38,10 @@ class Libpng(Package):
|
||||
version('1.4.19', '89bcbc4fc8b31f4a403906cf4f662330')
|
||||
version('1.2.56', '9508fc59d10a1ffadd9aae35116c19ee')
|
||||
|
||||
depends_on('zlib')
|
||||
depends_on('zlib@1.0.4:') # 1.2.5 or later recommended
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
make()
|
||||
make("check")
|
||||
make("install")
|
||||
|
||||
68
var/spack/repos/builtin/packages/libquo/package.py
Normal file
68
var/spack/repos/builtin/packages/libquo/package.py
Normal file
@@ -0,0 +1,68 @@
|
||||
##############################################################################
|
||||
# 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 Libquo(Package):
|
||||
"""A high-level, easy to use programming interface tailored specifically
|
||||
for MPI/MPI+X codes that may benefit from evolving process binding
|
||||
policies during their execution. QUO allows for arbitrary process binding
|
||||
policies to be enacted and reverted during the execution of an MPI/MPI+X
|
||||
application as different computational phases are entered and exited,
|
||||
respectively."""
|
||||
|
||||
homepage = "https://github.com/losalamos/libquo"
|
||||
url = "https://github.com/losalamos/libquo/archive/v1.2.9.tar.gz"
|
||||
|
||||
version('1.2.9', 'ca82ab33f13e2b89983f81e7c02e98c2')
|
||||
|
||||
depends_on('mpi')
|
||||
depends_on('autoconf', type='build')
|
||||
depends_on('automake', type='build')
|
||||
depends_on('libtool', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
autoreconf_options = [
|
||||
'--install',
|
||||
'--verbose',
|
||||
'--force',
|
||||
'-I', 'config',
|
||||
'-I', os.path.join(spec['automake'].prefix,
|
||||
'share', 'aclocal'),
|
||||
'-I', os.path.join(spec['libtool'].prefix,
|
||||
'share', 'aclocal')
|
||||
]
|
||||
autoreconf(*autoreconf_options)
|
||||
|
||||
configure_options = [
|
||||
'--prefix={0}'.format(prefix),
|
||||
'CC=%s' % join_path(spec['mpi'].prefix.bin, "mpicc"),
|
||||
'FC=%s' % join_path(spec['mpi'].prefix.bin, "mpif90")
|
||||
]
|
||||
configure(*configure_options)
|
||||
|
||||
make()
|
||||
make('install')
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
class Libuuid(Package):
|
||||
"""Portable uuid C library"""
|
||||
# FIXME: add a proper url for your package's homepage here.
|
||||
|
||||
homepage = "http://sourceforge.net/projects/libuuid/"
|
||||
url = "http://downloads.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flibuuid%2F&ts=1433881396&use_mirror=iweb"
|
||||
|
||||
@@ -36,6 +36,5 @@ class Libuuid(Package):
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
|
||||
# FIXME: Add logic to build and install here
|
||||
make()
|
||||
make("install")
|
||||
|
||||
@@ -32,11 +32,27 @@ class Libxc(Package):
|
||||
homepage = "http://www.tddft.org/programs/octopus/wiki/index.php/Libxc"
|
||||
url = "http://www.tddft.org/programs/octopus/down.php?file=libxc/libxc-2.2.2.tar.gz"
|
||||
|
||||
version('3.0.0', '8227fa3053f8fc215bd9d7b0d36de03c')
|
||||
version('2.2.2', 'd9f90a0d6e36df6c1312b6422280f2ec')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix=%s' % prefix,
|
||||
# Optimizations for the Intel compiler, suggested by CP2K
|
||||
optflags = '-O2'
|
||||
if self.compiler.name == 'intel':
|
||||
optflags += ' -xAVX -axCORE-AVX2 -ipo'
|
||||
if which('xiar'):
|
||||
env['AR'] = 'xiar'
|
||||
|
||||
env['CFLAGS'] = optflags
|
||||
env['FCFLAGS'] = optflags
|
||||
|
||||
configure('--prefix={0}'.format(prefix),
|
||||
'--enable-shared')
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
||||
# libxc provides a testsuite, but many tests fail
|
||||
# http://www.tddft.org/pipermail/libxc/2013-February/000032.html
|
||||
# make('check')
|
||||
|
||||
make('install')
|
||||
|
||||
50
var/spack/repos/builtin/packages/libxstream/package.py
Normal file
50
var/spack/repos/builtin/packages/libxstream/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 Libxstream(Package):
|
||||
'''LIBXSTREAM is a library to work with streams, events, and code regions
|
||||
that are able to run asynchronous while preserving the usual stream
|
||||
conditions.'''
|
||||
|
||||
homepage = 'https://github.com/hfp/libxstream'
|
||||
url = 'https://github.com/hfp/libxstream.git'
|
||||
|
||||
version('0.9.0', git='https://github.com/hfp/libxstream.git')
|
||||
|
||||
def patch(self):
|
||||
kwargs = {'ignore_absent': False, 'backup': True, 'string': True}
|
||||
makefile = FileFilter('Makefile.inc')
|
||||
|
||||
makefile.filter('CC =', 'CC ?=', **kwargs)
|
||||
makefile.filter('CXX =', 'CXX ?=', **kwargs)
|
||||
makefile.filter('FC =', 'FC ?=', **kwargs)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make()
|
||||
install_tree('lib', prefix.lib)
|
||||
install_tree('include', prefix.include)
|
||||
install_tree('documentation', prefix.share + '/libxstream/doc/')
|
||||
@@ -22,9 +22,10 @@
|
||||
# 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
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Llvm(Package):
|
||||
"""The LLVM Project is a collection of modular and reusable compiler and
|
||||
@@ -32,11 +33,13 @@ class Llvm(Package):
|
||||
with traditional virtual machines, though it does provide helpful
|
||||
libraries that can be used to build them. The name "LLVM" itself
|
||||
is not an acronym; it is the full name of the project.
|
||||
|
||||
"""
|
||||
|
||||
homepage = 'http://llvm.org/'
|
||||
url = 'http://llvm.org/releases/3.7.1/llvm-3.7.1.src.tar.xz'
|
||||
|
||||
family = 'compiler' # Used by lmod
|
||||
|
||||
# currently required by mesa package
|
||||
version('3.0', 'a8e5f5f1c1adebae7b4a654c376a6005',
|
||||
url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz')
|
||||
@@ -111,7 +114,7 @@ class Llvm(Package):
|
||||
'destination': 'projects',
|
||||
'placement': 'libcxxabi',
|
||||
},
|
||||
'clang': {
|
||||
'cfe': {
|
||||
'url': base_url % {'pkg': 'cfe'},
|
||||
'destination': 'tools',
|
||||
'placement': 'clang',
|
||||
@@ -141,63 +144,93 @@ class Llvm(Package):
|
||||
{
|
||||
'version': 'trunk',
|
||||
'repo': 'http://llvm.org/svn/llvm-project/llvm/trunk',
|
||||
'resources': {
|
||||
'compiler-rt': 'http://llvm.org/svn/llvm-project/compiler-rt/trunk',
|
||||
'openmp': 'http://llvm.org/svn/llvm-project/openmp/trunk',
|
||||
'polly': 'http://llvm.org/svn/llvm-project/polly/trunk',
|
||||
'libcxx': 'http://llvm.org/svn/llvm-project/libcxx/trunk',
|
||||
'libcxxabi': 'http://llvm.org/svn/llvm-project/libcxxabi/trunk',
|
||||
'clang': 'http://llvm.org/svn/llvm-project/cfe/trunk',
|
||||
'clang-tools-extra': 'http://llvm.org/svn/llvm-project/clang-tools-extra/trunk',
|
||||
'lldb': 'http://llvm.org/svn/llvm-project/lldb/trunk',
|
||||
'llvm-libunwind': 'http://llvm.org/svn/llvm-project/libunwind/trunk',
|
||||
'resources': {
|
||||
'compiler-rt': 'http://llvm.org/svn/llvm-project/compiler-rt/trunk',
|
||||
'openmp': 'http://llvm.org/svn/llvm-project/openmp/trunk',
|
||||
'polly': 'http://llvm.org/svn/llvm-project/polly/trunk',
|
||||
'libcxx': 'http://llvm.org/svn/llvm-project/libcxx/trunk',
|
||||
'libcxxabi': 'http://llvm.org/svn/llvm-project/libcxxabi/trunk',
|
||||
'cfe': 'http://llvm.org/svn/llvm-project/cfe/trunk',
|
||||
'clang-tools-extra': 'http://llvm.org/svn/llvm-project/clang-tools-extra/trunk',
|
||||
'lldb': 'http://llvm.org/svn/llvm-project/lldb/trunk',
|
||||
'llvm-libunwind': 'http://llvm.org/svn/llvm-project/libunwind/trunk',
|
||||
}
|
||||
},
|
||||
{
|
||||
'version': '3.9.0',
|
||||
'md5': 'f2093e98060532449eb7d2fcfd0bc6c6',
|
||||
'resources': {
|
||||
'compiler-rt': 'b7ea34c9d744da16ffc0217b6990d095',
|
||||
'openmp': '5390164f2374e1444e82393541ecf6c7',
|
||||
'polly': '1cf328cbae25267749b68cfa6f113674',
|
||||
'libcxx': '0a11efefd864ce6f321194e441f7e569',
|
||||
'libcxxabi': 'd02642308e22e614af6b061b9b4fedfa',
|
||||
'cfe': '29e1d86bee422ab5345f5e9fb808d2dc',
|
||||
'clang-tools-extra': 'f4f663068c77fc742113211841e94d5e',
|
||||
'lldb': '968d053c3c3d7297983589164c6999e9',
|
||||
'llvm-libunwind': '3e5c87c723a456be599727a444b1c166',
|
||||
}
|
||||
},
|
||||
{
|
||||
'version': '3.8.0',
|
||||
'md5': '07a7a74f3c6bd65de4702bf941b511a0',
|
||||
'resources': {
|
||||
'compiler-rt': 'd6fcbe14352ffb708e4d1ac2e48bb025',
|
||||
'openmp': '8fd7cc35d48051613cf1e750e9f22e40',
|
||||
'polly': '1b3b20f52d34a4024e21a4ea7112caa7',
|
||||
'libcxx': 'd6e0bdbbee39f7907ad74fd56d03b88a',
|
||||
'libcxxabi': 'bbe6b4d72c7c5978550d370af529bcf7',
|
||||
'clang': 'cc99e7019bb74e6459e80863606250c5',
|
||||
'clang-tools-extra': 'c2344f50e0eea0b402f0092a80ddc036',
|
||||
'lldb': 'a5da35ed9cc8c8817ee854e3dbfba00e',
|
||||
'llvm-libunwind': '162ade468607f153cca12be90b5194fa',
|
||||
}
|
||||
},
|
||||
{
|
||||
'version': '3.7.1',
|
||||
'md5': 'bf8b3a2c79e61212c5409041dfdbd319',
|
||||
'resources': {
|
||||
'compiler-rt': '1c6975daf30bb3b0473b53c3a1a6ff01',
|
||||
'openmp': 'b4ad08cda4e5c22e42b66062b140438e',
|
||||
'polly': '3a2a7367002740881637f4d47bca4dc3',
|
||||
'libcxx': 'f9c43fa552a10e14ff53b94d04bea140',
|
||||
'libcxxabi': '52d925afac9f97e9dcac90745255c169',
|
||||
'clang': '0acd026b5529164197563d135a8fd83e',
|
||||
'clang-tools-extra': '5d49ff745037f061a7c86aeb6a24c3d2',
|
||||
'lldb': 'a106d8a0d21fc84d76953822fbaf3398',
|
||||
'llvm-libunwind': '814bd52c9247c5d04629658fbcb3ab8c',
|
||||
}
|
||||
},
|
||||
{
|
||||
'version': '3.7.0',
|
||||
'md5': 'b98b9495e5655a672d6cb83e1a180f8e',
|
||||
'resources': {
|
||||
'compiler-rt': '383c10affd513026f08936b5525523f5',
|
||||
'openmp': 'f482c86fdead50ba246a1a2b0bbf206f',
|
||||
'polly': '32f93ffc9cc7e042df22089761558f8b',
|
||||
'libcxx': '46aa5175cbe1ad42d6e9c995968e56dd',
|
||||
'libcxxabi': '5aa769e2fca79fa5335cfae8f6258772',
|
||||
'clang': '8f9d27335e7331cf0a4711e952f21f01',
|
||||
'clang-tools-extra': 'd5a87dacb65d981a427a536f6964642e',
|
||||
'lldb': 'e5931740400d1dc3e7db4c7ba2ceff68',
|
||||
'llvm-libunwind': '9a75392eb7eb8ed5c0840007e212baf5',
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
'version': '3.8.1',
|
||||
'md5': '538467e6028bbc9259b1e6e015d25845',
|
||||
'resources': {
|
||||
'compiler-rt': 'f140db073d2453f854fbe01cc46f3110',
|
||||
'openmp': '078b8d4c51ad437a4f8b5989f5ec4156',
|
||||
'polly': '8a40e697a4ba1c8b640b85d074bd6e25',
|
||||
'libcxx': '1bc60150302ff76a0d79d6f9db22332e',
|
||||
'libcxxabi': '3c63b03ba2f30a01279ca63384a67773',
|
||||
'cfe': '4ff2f8844a786edb0220f490f7896080',
|
||||
'clang-tools-extra': '6e49f285d0b366cc3cab782d8c92d382',
|
||||
'lldb': '9e4787b71be8e432fffd31e13ac87623',
|
||||
'llvm-libunwind': 'd66e2387e1d37a8a0c8fe6a0063a3bab',
|
||||
}
|
||||
},
|
||||
{
|
||||
'version': '3.8.0',
|
||||
'md5': '07a7a74f3c6bd65de4702bf941b511a0',
|
||||
'resources': {
|
||||
'compiler-rt': 'd6fcbe14352ffb708e4d1ac2e48bb025',
|
||||
'openmp': '8fd7cc35d48051613cf1e750e9f22e40',
|
||||
'polly': '1b3b20f52d34a4024e21a4ea7112caa7',
|
||||
'libcxx': 'd6e0bdbbee39f7907ad74fd56d03b88a',
|
||||
'libcxxabi': 'bbe6b4d72c7c5978550d370af529bcf7',
|
||||
'cfe': 'cc99e7019bb74e6459e80863606250c5',
|
||||
'clang-tools-extra': 'c2344f50e0eea0b402f0092a80ddc036',
|
||||
'lldb': 'a5da35ed9cc8c8817ee854e3dbfba00e',
|
||||
'llvm-libunwind': '162ade468607f153cca12be90b5194fa',
|
||||
}
|
||||
},
|
||||
{
|
||||
'version': '3.7.1',
|
||||
'md5': 'bf8b3a2c79e61212c5409041dfdbd319',
|
||||
'resources': {
|
||||
'compiler-rt': '1c6975daf30bb3b0473b53c3a1a6ff01',
|
||||
'openmp': 'b4ad08cda4e5c22e42b66062b140438e',
|
||||
'polly': '3a2a7367002740881637f4d47bca4dc3',
|
||||
'libcxx': 'f9c43fa552a10e14ff53b94d04bea140',
|
||||
'libcxxabi': '52d925afac9f97e9dcac90745255c169',
|
||||
'cfe': '0acd026b5529164197563d135a8fd83e',
|
||||
'clang-tools-extra': '5d49ff745037f061a7c86aeb6a24c3d2',
|
||||
'lldb': 'a106d8a0d21fc84d76953822fbaf3398',
|
||||
'llvm-libunwind': '814bd52c9247c5d04629658fbcb3ab8c',
|
||||
}
|
||||
},
|
||||
{
|
||||
'version': '3.7.0',
|
||||
'md5': 'b98b9495e5655a672d6cb83e1a180f8e',
|
||||
'resources': {
|
||||
'compiler-rt': '383c10affd513026f08936b5525523f5',
|
||||
'openmp': 'f482c86fdead50ba246a1a2b0bbf206f',
|
||||
'polly': '32f93ffc9cc7e042df22089761558f8b',
|
||||
'libcxx': '46aa5175cbe1ad42d6e9c995968e56dd',
|
||||
'libcxxabi': '5aa769e2fca79fa5335cfae8f6258772',
|
||||
'cfe': '8f9d27335e7331cf0a4711e952f21f01',
|
||||
'clang-tools-extra': 'd5a87dacb65d981a427a536f6964642e',
|
||||
'lldb': 'e5931740400d1dc3e7db4c7ba2ceff68',
|
||||
'llvm-libunwind': '9a75392eb7eb8ed5c0840007e212baf5',
|
||||
}
|
||||
},
|
||||
{
|
||||
'version': '3.6.2',
|
||||
'md5': '0c1ee3597d75280dee603bae9cbf5cc2',
|
||||
@@ -206,7 +239,7 @@ class Llvm(Package):
|
||||
'openmp': '65dd5863b9b270960a96817e9152b123',
|
||||
'libcxx': '22214c90697636ef960a49aef7c1823a',
|
||||
'libcxxabi': '17518e361e4e228f193dd91e8ef54ba2',
|
||||
'clang': 'ff862793682f714bb7862325b9c06e20',
|
||||
'cfe': 'ff862793682f714bb7862325b9c06e20',
|
||||
'clang-tools-extra': '3ebc1dc41659fcec3db1b47d81575e06',
|
||||
'lldb': '51e5eb552f777b950bb0ff326e60d5f0',
|
||||
}
|
||||
@@ -219,7 +252,7 @@ class Llvm(Package):
|
||||
'openmp': '121ddb10167d7fc38b1f7e4b029cf059',
|
||||
'libcxx': '406f09b1dab529f3f7879f4d548329d2',
|
||||
'libcxxabi': 'b22c707e8d474a99865ad3c521c3d464',
|
||||
'clang': '93f9532f8f7e6f1d8e5c1116907051cb',
|
||||
'cfe': '93f9532f8f7e6f1d8e5c1116907051cb',
|
||||
'clang-tools-extra': 'f13f31ed3038acadc6fa63fef812a246',
|
||||
'lldb': 'cc5ea8a414c62c33e760517f8929a204',
|
||||
}
|
||||
|
||||
55
var/spack/repos/builtin/packages/lulesh/package.py
Normal file
55
var/spack/repos/builtin/packages/lulesh/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 *
|
||||
import os
|
||||
|
||||
|
||||
class Lulesh(Package):
|
||||
"""Livermore Unstructured Lagrangian Explicit Shock Hydrodynamics (LULESH)
|
||||
"""
|
||||
|
||||
homepage = "https://codesign.llnl.gov/lulesh.php"
|
||||
url = "https://codesign.llnl.gov/lulesh/lulesh2.0.3.tgz"
|
||||
|
||||
version("2.0.3", "336644a8750f71c7c6b9d2960976e7aa")
|
||||
|
||||
patch("remove_defaults.patch")
|
||||
|
||||
variant('mpip', default=False)
|
||||
|
||||
depends_on("mpi", type="build")
|
||||
depends_on("mpip", when="+mpip")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
if '+mpip' in spec:
|
||||
os.environ["LDFLAGS"] = " -lmpiP -ldwarf -lelf"
|
||||
|
||||
if os.uname()[4] == "x86_64":
|
||||
os.environ["LDFLAGS"] += " -lunwind"
|
||||
|
||||
os.environ["CXX"] = spec['mpi'].mpicxx + " -DUSE_MPI=1"
|
||||
os.environ["PREFIX"] = prefix
|
||||
make()
|
||||
make("install")
|
||||
@@ -0,0 +1,60 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,17 +1,9 @@
|
||||
#default build suggestion of MPI + OPENMP with gcc on Livermore machines you might have to change the compiler name
|
||||
|
||||
-SHELL = /bin/sh
|
||||
.SUFFIXES: .cc .o
|
||||
|
||||
LULESH_EXEC = lulesh2.0
|
||||
|
||||
-MPI_INC = /opt/local/include/openmpi
|
||||
-MPI_LIB = /opt/local/lib
|
||||
-
|
||||
-SERCXX = g++ -DUSE_MPI=0
|
||||
-MPICXX = mpig++ -DUSE_MPI=1
|
||||
-CXX = $(MPICXX)
|
||||
-
|
||||
SOURCES2.0 = \
|
||||
lulesh.cc \
|
||||
lulesh-comm.cc \
|
||||
@@ -20,28 +12,6 @@
|
||||
lulesh-init.cc
|
||||
OBJECTS2.0 = $(SOURCES2.0:.cc=.o)
|
||||
|
||||
-#Default build suggestions with OpenMP for g++
|
||||
-CXXFLAGS = -g -O3 -fopenmp -I. -Wall
|
||||
-LDFLAGS = -g -O3 -fopenmp
|
||||
-
|
||||
-#Below are reasonable default flags for a serial build
|
||||
-#CXXFLAGS = -g -O3 -I. -Wall
|
||||
-#LDFLAGS = -g -O3
|
||||
-
|
||||
-#common places you might find silo on the Livermore machines.
|
||||
-#SILO_INCDIR = /opt/local/include
|
||||
-#SILO_LIBDIR = /opt/local/lib
|
||||
-#SILO_INCDIR = ./silo/4.9/1.8.10.1/include
|
||||
-#SILO_LIBDIR = ./silo/4.9/1.8.10.1/lib
|
||||
-
|
||||
-#If you do not have silo and visit you can get them at:
|
||||
-#silo: https://wci.llnl.gov/codes/silo/downloads.html
|
||||
-#visit: https://wci.llnl.gov/codes/visit/download.html
|
||||
-
|
||||
-#below is and example of how to make with silo, hdf5 to get vizulization by default all this is turned off. All paths are Livermore specific.
|
||||
-#CXXFLAGS = -g -DVIZ_MESH -I${SILO_INCDIR} -Wall -Wno-pragmas
|
||||
-#LDFLAGS = -g -L${SILO_LIBDIR} -Wl,-rpath -Wl,${SILO_LIBDIR} -lsiloh5 -lhdf5
|
||||
-
|
||||
.cc.o: lulesh.h
|
||||
@echo "Building $<"
|
||||
$(CXX) -c $(CXXFLAGS) -o $@ $<
|
||||
@@ -56,6 +26,7 @@
|
||||
/bin/rm -f *.o *~ $(OBJECTS) $(LULESH_EXEC)
|
||||
/bin/rm -rf *.dSYM
|
||||
|
||||
-tar: clean
|
||||
- cd .. ; tar cvf lulesh-2.0.tar LULESH-2.0 ; mv lulesh-2.0.tar LULESH-2.0
|
||||
-
|
||||
+install: lulesh2.0
|
||||
+ @echo "Installing"
|
||||
+ mkdir -p $(PREFIX)/bin
|
||||
+ install --mode=755 lulesh2.0 $(PREFIX)/bin/
|
||||
@@ -23,6 +23,7 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import sys
|
||||
|
||||
|
||||
class M4(Package):
|
||||
@@ -47,6 +48,11 @@ def install(self, spec, prefix):
|
||||
else:
|
||||
configure_args.append('--without-libsigsegv-prefix')
|
||||
|
||||
# http://lists.gnu.org/archive/html/bug-m4/2016-09/msg00002.html
|
||||
if (sys.platform == "darwin") and (spec.satisfies('%gcc')) and \
|
||||
(spec.architecture.platform_os.version == "10.12"):
|
||||
configure_args.append('ac_cv_type_struct_sched_param=yes')
|
||||
|
||||
configure("--prefix=%s" % prefix, *configure_args)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
--- a/tools/xml2mv.py 2016-06-27 17:49:27.000000000 +0200
|
||||
+++ a/tools/xml2mv.py 2016-09-13 16:25:17.246960456 +0200
|
||||
@@ -1 +1 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/env python
|
||||
115
var/spack/repos/builtin/packages/magics/package.py
Normal file
115
var/spack/repos/builtin/packages/magics/package.py
Normal file
@@ -0,0 +1,115 @@
|
||||
##############################################################################
|
||||
# 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 Magics(Package):
|
||||
"""Magics is the latest generation of the ECMWF's Meteorological plotting
|
||||
software MAGICS. Although completely redesigned in C++, it is intended
|
||||
to be as backwards-compatible as possible with the Fortran interface."""
|
||||
|
||||
homepage = "https://software.ecmwf.int/wiki/display/MAGP/Magics"
|
||||
url = "https://software.ecmwf.int/wiki/download/attachments/3473464/Magics-2.29.0-Source.tar.gz"
|
||||
|
||||
# Maintainers of Magics do not keep tarballs of minor releases. Once the
|
||||
# next minor released is published the previous one becomes unavailable.
|
||||
# That is why the preferred version is the latest stable one.
|
||||
version('2.29.4', '91c561f413316fb665b3bb563f3878d1')
|
||||
version('2.29.0', 'db20a4d3c51a2da5657c31ae3de59709', preferred=True)
|
||||
|
||||
# The patch changes the hardcoded path to python in shebang to enable the
|
||||
# usage of the first python installation that appears in $PATH
|
||||
patch('no_hardcoded_python.patch')
|
||||
|
||||
# The patch reorders includes and adds namespaces where necessary to
|
||||
# resolve ambiguity of invocations of isnan and isinf functions. The
|
||||
# patch is not needed since the version 2.29.1
|
||||
patch('resolve_isnan_ambiguity.patch', when='@2.29.0')
|
||||
|
||||
variant('bufr', default=False, description='Enable BUFR support')
|
||||
variant('netcdf', default=False, description='Enable NetCDF support')
|
||||
variant('cairo', default=True, description='Enable cairo support[png/jpeg]')
|
||||
variant('metview', default=False, description='Enable metview support')
|
||||
variant('qt', default=False, description='Enable metview support with qt')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('pkg-config', type='build')
|
||||
|
||||
# Currently python is only necessary to run
|
||||
# building preprocessing scripts.
|
||||
depends_on('python', type='build')
|
||||
depends_on('grib-api')
|
||||
depends_on('proj')
|
||||
depends_on('boost')
|
||||
depends_on('expat')
|
||||
depends_on('pango', when='+cairo')
|
||||
depends_on('netcdf-cxx', when='+netcdf')
|
||||
depends_on('libemos', when='+bufr')
|
||||
depends_on('qt', when='+metview+qt')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
options = []
|
||||
options.extend(std_cmake_args)
|
||||
options.append('-DENABLE_ODB=OFF')
|
||||
options.append('-DENABLE_PYTHON=OFF')
|
||||
options.append('-DBOOST_ROOT=%s' % spec['boost'].prefix)
|
||||
options.append('-DPROJ4_PATH=%s' % spec['proj'].prefix)
|
||||
options.append('-DGRIB_API_PATH=%s' % spec['grib-api'].prefix)
|
||||
options.append('-DENABLE_TESTS=OFF')
|
||||
|
||||
if '+bufr' in spec:
|
||||
options.append('-DENABLE_BUFR=ON')
|
||||
options.append('-DLIBEMOS_PATH=%s' % spec['libemos'].prefix)
|
||||
else:
|
||||
options.append('-DENABLE_BUFR=OFF')
|
||||
|
||||
if '+netcdf' in spec:
|
||||
options.append('-DENABLE_NETCDF=ON')
|
||||
options.append('-DNETCDF_PATH=%s' % spec['netcdf-cxx'].prefix)
|
||||
else:
|
||||
options.append('-DENABLE_NETCDF=OFF')
|
||||
|
||||
if '+cairo' in spec:
|
||||
options.append('-DENABLE_CAIRO=ON')
|
||||
else:
|
||||
options.append('-DENABLE_CAIRO=OFF')
|
||||
|
||||
if '+metview' in spec:
|
||||
if '+qt' in spec:
|
||||
options.append('-DENABLE_METVIEW=ON')
|
||||
if spec['qt'].version.up_to(1) == '5':
|
||||
options.append('-DENABLE_QT5=ON')
|
||||
else:
|
||||
options.append('-DENABLE_METVIEW_NO_QT=ON')
|
||||
else:
|
||||
options.append('-DENABLE_METVIEW=OFF')
|
||||
|
||||
if (self.compiler.f77 is None) or (self.compiler.fc is None):
|
||||
options.append('-DENABLE_FORTRAN=OFF')
|
||||
|
||||
with working_dir('spack-build', create=True):
|
||||
cmake('..', *options)
|
||||
make()
|
||||
make('install')
|
||||
@@ -0,0 +1,73 @@
|
||||
--- a/src/common/Polyline.cc 2016-04-28 14:38:09.000000000 +0200
|
||||
+++ b/src/common/Polyline.cc 2016-09-14 13:31:35.784617803 +0200
|
||||
@@ -31,2 +30,0 @@
|
||||
-#include "TeCoord2D.h"
|
||||
-#include "TeGeometryAlgorithms.h"
|
||||
--- a/src/decoders/GribRegularInterpretor.cc 2016-04-28 14:38:09.000000000 +0200
|
||||
+++ b/src/decoders/GribRegularInterpretor.cc 2016-09-14 13:43:41.673614590 +0200
|
||||
@@ -2083,2 +2083,2 @@
|
||||
- if (isnan(val1)) {
|
||||
- if (isnan(val2)) {
|
||||
+ if (std::isnan(val1)) {
|
||||
+ if (std::isnan(val2)) {
|
||||
@@ -2090 +2090 @@
|
||||
- if (isnan(val2)) {
|
||||
+ if (std::isnan(val2)) {
|
||||
@@ -2101 +2101 @@
|
||||
- if (isnan(val) || isinf(val) || isinf(-val)) {
|
||||
+ if (std::isnan(val) || std::isinf(val) || std::isinf(-val)) {
|
||||
@@ -2105 +2105 @@
|
||||
- if (isnan(val))
|
||||
+ if (std::isnan(val))
|
||||
--- a/src/decoders/GribSatelliteInterpretor.cc 2016-04-28 14:38:09.000000000 +0200
|
||||
+++ b/src/decoders/GribSatelliteInterpretor.cc 2016-09-14 13:48:55.243699910 +0200
|
||||
@@ -33,5 +32,0 @@
|
||||
-#include "TeProjection.h"
|
||||
-#include "TeDataTypes.h"
|
||||
-#include "TeRasterParams.h"
|
||||
-#include "TeDecoderMemory.h"
|
||||
-#include "TeRasterRemap.h"
|
||||
--- a/src/decoders/NetcdfGeoMatrixInterpretor.cc 2016-04-28 14:38:09.000000000 +0200
|
||||
+++ b/src/decoders/NetcdfGeoMatrixInterpretor.cc 2016-09-14 13:52:37.481201085 +0200
|
||||
@@ -93 +93 @@
|
||||
- if ( !isnan(*d) ) {
|
||||
+ if ( !std::isnan(*d) ) {
|
||||
--- a/src/decoders/NetcdfOrcaInterpretor.cc 2016-04-28 14:38:09.000000000 +0200
|
||||
+++ b/src/decoders/NetcdfOrcaInterpretor.cc 2016-09-14 13:51:16.248650570 +0200
|
||||
@@ -210,2 +210,2 @@
|
||||
- if ( isnan(val1) ) {
|
||||
- if ( isnan(val2) ) {
|
||||
+ if ( std::isnan(val1) ) {
|
||||
+ if ( std::isnan(val2) ) {
|
||||
@@ -218 +218 @@
|
||||
- if ( isnan(val2) ) {
|
||||
+ if ( std::isnan(val2) ) {
|
||||
@@ -226 +226 @@
|
||||
- if (isnan(val) || isinf(val) || isinf(-val) ) {
|
||||
+ if (std::isnan(val) || std::isinf(val) || std::isinf(-val) ) {
|
||||
@@ -230 +230 @@
|
||||
- if (isnan(val) ) val = missing;
|
||||
+ if (std::isnan(val) ) val = missing;
|
||||
@@ -296 +296 @@
|
||||
- if (isnan(value) )
|
||||
+ if (std::isnan(value) )
|
||||
--- a/src/terralib/kernel/TeCentroid.cpp 2016-04-28 14:38:09.000000000 +0200
|
||||
+++ b/src/terralib/kernel/TeCentroid.cpp 2016-09-14 14:17:31.675996554 +0200
|
||||
@@ -23,0 +24,2 @@
|
||||
+#include "TeGeometryAlgorithms.h"
|
||||
+
|
||||
@@ -30 +31,0 @@
|
||||
-#include "TeGeometryAlgorithms.h"
|
||||
--- a/src/terralib/kernel/TeDatabase.h 2014-11-07 17:39:24.000000000 +0100
|
||||
+++ b/src/terralib/kernel/TeDatabase.h 2016-09-14 14:20:01.041100590 +0200
|
||||
@@ -33,0 +34 @@
|
||||
+#include "TeGeometry.h"
|
||||
@@ -38 +38,0 @@
|
||||
-#include "TeGeometry.h"
|
||||
--- a/src/terralib/kernel/TeOverlayUtils.h 2014-11-07 17:39:24.000000000 +0100
|
||||
+++ b/src/terralib/kernel/TeOverlayUtils.h 2016-09-14 14:21:51.649920405 +0200
|
||||
@@ -37,0 +38,2 @@
|
||||
+#include "TeGeometry.h"
|
||||
+
|
||||
@@ -44 +45,0 @@
|
||||
-#include "TeGeometry.h"
|
||||
@@ -35,6 +35,7 @@ class Mbedtls(Package):
|
||||
homepage = "https://tls.mbed.org"
|
||||
url = "https://github.com/ARMmbed/mbedtls/archive/mbedtls-2.2.1.tar.gz"
|
||||
|
||||
version('2.3.0', '98158e1160a0825a3e8db38881a177a0')
|
||||
version('2.2.1', '73a38f96898d6d03e32f55dd9f9a67be')
|
||||
version('2.2.0', 'eaf4586c1ef93ae872e606b6c1203942')
|
||||
version('2.1.4', '40cdf67b6c6d92c9cbcfd552d39ea3ae')
|
||||
|
||||
@@ -22,23 +22,48 @@
|
||||
# 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 llnl.util.tty as tty
|
||||
import os
|
||||
|
||||
|
||||
class Mercurial(Package):
|
||||
"""Mercurial is a free, distributed source control management tool."""
|
||||
|
||||
homepage = "https://www.mercurial-scm.org"
|
||||
url = "https://www.mercurial-scm.org/release/mercurial-3.9.tar.gz"
|
||||
|
||||
version('3.9' , 'e2b355da744e94747daae3a5339d28a0')
|
||||
version('3.9.1', '3759dd10edb8c1a6dfb8ff0ce82658ce')
|
||||
version('3.9', 'e2b355da744e94747daae3a5339d28a0')
|
||||
version('3.8.4', 'cec2c3db688cb87142809089c6ae13e9')
|
||||
version('3.8.3', '97aced7018614eeccc9621a3dea35fda')
|
||||
version('3.8.2', 'c38daa0cbe264fc621dc3bb05933b0b3')
|
||||
version('3.8.1', '172a8c588adca12308c2aca16608d7f4')
|
||||
|
||||
depends_on("python @2.6:2.7.999")
|
||||
depends_on("py-docutils", type="build")
|
||||
extends('python')
|
||||
depends_on('python@2.6:2.8')
|
||||
depends_on('py-docutils', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make('PREFIX=%s' % prefix, 'install')
|
||||
make('install', 'PREFIX={0}'.format(prefix))
|
||||
|
||||
# Configuration of HTTPS certificate authorities
|
||||
# https://www.mercurial-scm.org/wiki/CACertificates
|
||||
hgrc_filename = join_path(prefix.etc, 'mercurial', 'hgrc')
|
||||
mkdirp(os.path.dirname(hgrc_filename))
|
||||
|
||||
with open(hgrc_filename, 'w') as hgrc:
|
||||
if os.path.exists('/etc/ssl/certs/ca-certificates.crt'):
|
||||
# Debian/Ubuntu/Gentoo/Arch Linux
|
||||
hgrc.write('[web]\ncacerts = /etc/ssl/certs/ca-certificates.crt') # noqa
|
||||
elif os.path.exists('/etc/pki/tls/certs/ca-bundle.crt'):
|
||||
# Fedora/RHEL/CentOS
|
||||
hgrc.write('[web]\ncacerts = /etc/pki/tls/certs/ca-bundle.crt')
|
||||
elif os.path.exists('/etc/ssl/ca-bundle.pem'):
|
||||
# openSUSE/SLE
|
||||
hgrc.write('[web]\ncacerts = /etc/ssl/ca-bundle.pem')
|
||||
else:
|
||||
tty.warn('CA certificate not found. You may not be able to '
|
||||
'connect to an HTTPS server. If your CA certificate '
|
||||
'is in a non-standard location, you should add it to '
|
||||
'{0}'.format(hgrc_filename))
|
||||
|
||||
@@ -43,16 +43,12 @@ class Metis(Package):
|
||||
version('5.0.2', 'acb521a4e8c2e6dd559a7f9abd0468c5')
|
||||
version('4.0.3', 'd3848b454532ef18dc83e4fb160d1e10')
|
||||
|
||||
variant('shared', default=True,
|
||||
description='Enables the build of shared libraries')
|
||||
variant('debug', default=False,
|
||||
description='Builds the library in debug mode')
|
||||
variant('gdb', default=False, description='Enables gdb support')
|
||||
variant('shared', default=True, description='Enables the build of shared libraries.')
|
||||
variant('debug', default=False, description='Builds the library in debug mode.')
|
||||
variant('gdb', default=False, description='Enables gdb support.')
|
||||
|
||||
variant('idx64', default=False,
|
||||
description='Use int64_t as default index type')
|
||||
variant('real64', default=False,
|
||||
description='Use double precision floating point types')
|
||||
variant('idx64', default=False, description='Sets the bit width of METIS\'s index type to 64.')
|
||||
variant('real64', default=False, description='Sets the bit width of METIS\'s real type to 64.')
|
||||
|
||||
depends_on('cmake@2.8:', when='@5:', type='build')
|
||||
|
||||
@@ -62,13 +58,38 @@ def url_for_version(self, version):
|
||||
verdir = 'OLD/' if version < Version('4.0.3') else ''
|
||||
return '%s/%smetis-%s.tar.gz' % (Metis.base_url, verdir, version)
|
||||
|
||||
@when('@:4')
|
||||
def patch(self):
|
||||
pass
|
||||
|
||||
@when('@5:')
|
||||
def patch(self):
|
||||
source_path = self.stage.source_path
|
||||
metis_header = FileFilter(join_path(source_path, 'include', 'metis.h'))
|
||||
|
||||
metis_header.filter(
|
||||
r'(\b)(IDXTYPEWIDTH )(\d+)(\b)',
|
||||
r'\1\2{0}\4'.format('64' if '+idx64' in self.spec else '32'),
|
||||
)
|
||||
metis_header.filter(
|
||||
r'(\b)(REALTYPEWIDTH )(\d+)(\b)',
|
||||
r'\1\2{0}\4'.format('64' if '+real64' in self.spec else '32'),
|
||||
)
|
||||
|
||||
# Make clang 7.3 happy.
|
||||
# Prevents "ld: section __DATA/__thread_bss extends beyond end of file"
|
||||
# See upstream LLVM issue https://llvm.org/bugs/show_bug.cgi?id=27059
|
||||
# and https://github.com/Homebrew/homebrew-science/blob/master/metis.rb
|
||||
if self.spec.satisfies('%clang@7.3.0'):
|
||||
filter_file('#define MAX_JBUFS 128', '#define MAX_JBUFS 24',
|
||||
join_path(source_path, 'GKlib', 'error.c'))
|
||||
|
||||
@when('@:4')
|
||||
def install(self, spec, prefix):
|
||||
# Process library spec and options
|
||||
unsupp_vars = [v for v in ('+gdb', '+idx64', '+real64') if v in spec]
|
||||
if unsupp_vars:
|
||||
msg = 'Given variants %s are unsupported by METIS 4!' % unsupp_vars
|
||||
raise InstallError(msg)
|
||||
if any('+{0}'.format(v) in spec for v in ['gdb', 'idx64', 'real64']):
|
||||
raise InstallError('METIS@:4 does not support the following '
|
||||
'variants: gdb, idx64, real64.')
|
||||
|
||||
options = ['COPTIONS=-fPIC']
|
||||
if '+debug' in spec:
|
||||
@@ -118,49 +139,48 @@ def install(self, spec, prefix):
|
||||
join_path('Programs', 'io.o'), join_path('Test', 'mtest.c'),
|
||||
'-o', '%s/mtest' % prefix.bin, '-lmetis', '-lm')
|
||||
|
||||
test_bin = lambda testname: join_path(prefix.bin, testname)
|
||||
test_graph = lambda graphname: join_path(prefix.share, graphname)
|
||||
if self.run_tests:
|
||||
test_bin = lambda testname: join_path(prefix.bin, testname)
|
||||
test_graph = lambda graphname: join_path(prefix.share, graphname)
|
||||
|
||||
graph = test_graph('4elt.graph')
|
||||
os.system('%s %s' % (test_bin('mtest'), graph))
|
||||
os.system('%s %s 40' % (test_bin('kmetis'), graph))
|
||||
os.system('%s %s' % (test_bin('onmetis'), graph))
|
||||
graph = test_graph('test.mgraph')
|
||||
os.system('%s %s 2' % (test_bin('pmetis'), graph))
|
||||
os.system('%s %s 2' % (test_bin('kmetis'), graph))
|
||||
os.system('%s %s 5' % (test_bin('kmetis'), graph))
|
||||
graph = test_graph('metis.mesh')
|
||||
os.system('%s %s 10' % (test_bin('partnmesh'), graph))
|
||||
os.system('%s %s 10' % (test_bin('partdmesh'), graph))
|
||||
os.system('%s %s' % (test_bin('mesh2dual'), graph))
|
||||
graph = test_graph('4elt.graph')
|
||||
os.system('%s %s' % (test_bin('mtest'), graph))
|
||||
os.system('%s %s 40' % (test_bin('kmetis'), graph))
|
||||
os.system('%s %s' % (test_bin('onmetis'), graph))
|
||||
graph = test_graph('test.mgraph')
|
||||
os.system('%s %s 2' % (test_bin('pmetis'), graph))
|
||||
os.system('%s %s 2' % (test_bin('kmetis'), graph))
|
||||
os.system('%s %s 5' % (test_bin('kmetis'), graph))
|
||||
graph = test_graph('metis.mesh')
|
||||
os.system('%s %s 10' % (test_bin('partnmesh'), graph))
|
||||
os.system('%s %s 10' % (test_bin('partdmesh'), graph))
|
||||
os.system('%s %s' % (test_bin('mesh2dual'), graph))
|
||||
|
||||
# FIXME: The following code should replace the testing code in the
|
||||
# block above since it causes installs to fail when one or more of the
|
||||
# Metis tests fail, but it currently doesn't work because the 'mtest',
|
||||
# 'onmetis', and 'partnmesh' tests return error codes that trigger
|
||||
# false positives for failure.
|
||||
"""
|
||||
Executable(test_bin('mtest'))(test_graph('4elt.graph'))
|
||||
Executable(test_bin('kmetis'))(test_graph('4elt.graph'), '40')
|
||||
Executable(test_bin('onmetis'))(test_graph('4elt.graph'))
|
||||
# FIXME: The following code should replace the testing code in the
|
||||
# block above since it causes installs to fail when one or more of
|
||||
# the Metis tests fail, but it currently doesn't work because the
|
||||
# 'mtest', 'onmetis', and 'partnmesh' tests return error codes that
|
||||
# trigger false positives for failure.
|
||||
"""
|
||||
Executable(test_bin('mtest'))(test_graph('4elt.graph'))
|
||||
Executable(test_bin('kmetis'))(test_graph('4elt.graph'), '40')
|
||||
Executable(test_bin('onmetis'))(test_graph('4elt.graph'))
|
||||
|
||||
Executable(test_bin('pmetis'))(test_graph('test.mgraph'), '2')
|
||||
Executable(test_bin('kmetis'))(test_graph('test.mgraph'), '2')
|
||||
Executable(test_bin('kmetis'))(test_graph('test.mgraph'), '5')
|
||||
Executable(test_bin('pmetis'))(test_graph('test.mgraph'), '2')
|
||||
Executable(test_bin('kmetis'))(test_graph('test.mgraph'), '2')
|
||||
Executable(test_bin('kmetis'))(test_graph('test.mgraph'), '5')
|
||||
|
||||
Executable(test_bin('partnmesh'))(test_graph('metis.mesh'), '10')
|
||||
Executable(test_bin('partdmesh'))(test_graph('metis.mesh'), '10')
|
||||
Executable(test_bin('mesh2dual'))(test_graph('metis.mesh'))
|
||||
"""
|
||||
Executable(test_bin('partnmesh'))(test_graph('metis.mesh'), '10')
|
||||
Executable(test_bin('partdmesh'))(test_graph('metis.mesh'), '10')
|
||||
Executable(test_bin('mesh2dual'))(test_graph('metis.mesh'))
|
||||
"""
|
||||
|
||||
@when('@5:')
|
||||
def install(self, spec, prefix):
|
||||
options = []
|
||||
options.extend(std_cmake_args)
|
||||
|
||||
build_directory = join_path(self.stage.path, 'spack-build')
|
||||
source_directory = self.stage.source_path
|
||||
build_directory = join_path(source_directory, 'build')
|
||||
|
||||
options = std_cmake_args[:]
|
||||
options.append('-DGKLIB_PATH:PATH=%s/GKlib' % source_directory)
|
||||
options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
|
||||
|
||||
@@ -172,26 +192,24 @@ def install(self, spec, prefix):
|
||||
if '+gdb' in spec:
|
||||
options.append('-DGDB:BOOL=ON')
|
||||
|
||||
metis_header = join_path(source_directory, 'include', 'metis.h')
|
||||
if '+idx64' in spec:
|
||||
filter_file('IDXTYPEWIDTH 32', 'IDXTYPEWIDTH 64', metis_header)
|
||||
if '+real64' in spec:
|
||||
filter_file('REALTYPEWIDTH 32', 'REALTYPEWIDTH 64', metis_header)
|
||||
|
||||
# Make clang 7.3 happy.
|
||||
# Prevents "ld: section __DATA/__thread_bss extends beyond end of file"
|
||||
# See upstream LLVM issue https://llvm.org/bugs/show_bug.cgi?id=27059
|
||||
# and https://github.com/Homebrew/homebrew-science/blob/master/metis.rb
|
||||
if spec.satisfies('%clang@7.3.0'):
|
||||
filter_file('#define MAX_JBUFS 128', '#define MAX_JBUFS 24',
|
||||
join_path(source_directory, 'GKlib', 'error.c'))
|
||||
|
||||
with working_dir(build_directory, create=True):
|
||||
cmake(source_directory, *options)
|
||||
make()
|
||||
make('install')
|
||||
|
||||
# now run some tests:
|
||||
# install GKlib headers, which will be needed for ParMETIS
|
||||
GKlib_dist = join_path(prefix.include, 'GKlib')
|
||||
mkdirp(GKlib_dist)
|
||||
hfiles = glob.glob(join_path(source_directory, 'GKlib', '*.h'))
|
||||
for hfile in hfiles:
|
||||
install(hfile, GKlib_dist)
|
||||
|
||||
if self.run_tests:
|
||||
# FIXME: On some systems, the installed binaries for METIS cannot
|
||||
# be executed without first being read.
|
||||
ls = which('ls')
|
||||
ls('-a', '-l', prefix.bin)
|
||||
|
||||
for f in ['4elt', 'copter2', 'mdual']:
|
||||
graph = join_path(source_directory, 'graphs', '%s.graph' % f)
|
||||
Executable(join_path(prefix.bin, 'graphchk'))(graph)
|
||||
@@ -202,10 +220,3 @@ def install(self, spec, prefix):
|
||||
Executable(join_path(prefix.bin, 'gpmetis'))(graph, '2')
|
||||
graph = join_path(source_directory, 'graphs', 'metis.mesh')
|
||||
Executable(join_path(prefix.bin, 'mpmetis'))(graph, '2')
|
||||
|
||||
# install GKlib headers, which will be needed for ParMETIS
|
||||
GKlib_dist = join_path(prefix.include, 'GKlib')
|
||||
mkdirp(GKlib_dist)
|
||||
hfiles = glob.glob(join_path(source_directory, 'GKlib', '*.h'))
|
||||
for hfile in hfiles:
|
||||
install(hfile, GKlib_dist)
|
||||
|
||||
@@ -89,8 +89,7 @@ def install(self, spec, prefix):
|
||||
options = ['PREFIX=%s' % prefix]
|
||||
|
||||
if '+lapack' in spec:
|
||||
lapack_lib = '-L{0} -llapack -L{1} -lblas'.format(
|
||||
spec['lapack'].prefix.lib, spec['blas'].prefix.lib)
|
||||
lapack_lib = (spec['lapack'].lapack_libs + spec['blas'].blas_libs).ld_flags # NOQA: ignore=E501
|
||||
options.extend([
|
||||
'MFEM_USE_LAPACK=YES',
|
||||
'LAPACK_OPT=-I%s' % spec['lapack'].prefix.include,
|
||||
|
||||
@@ -9,7 +9,7 @@ class Mkl(IntelInstaller):
|
||||
|
||||
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.
|
||||
mirror, see http://spack.readthedocs.io/en/latest/mirrors.html.
|
||||
|
||||
To set the threading layer at run time set MKL_THREADING_LAYER
|
||||
variable to one of the following values: INTEL (default), SEQUENTIAL, PGI.
|
||||
@@ -24,13 +24,41 @@ class Mkl(IntelInstaller):
|
||||
version('11.3.3.210', 'f72546df27f5ebb0941b5d21fd804e34',
|
||||
url="file://%s/l_mkl_11.3.3.210.tgz" % os.getcwd())
|
||||
|
||||
variant('shared', default=True, description='Builds shared library')
|
||||
variant('ilp64', default=False, description='64 bit integers')
|
||||
variant('openmp', default=False, description='OpenMP multithreading layer')
|
||||
|
||||
# virtual dependency
|
||||
provides('blas')
|
||||
provides('lapack')
|
||||
# TODO: MKL also provides implementation of Scalapack.
|
||||
|
||||
def install(self, spec, prefix):
|
||||
@property
|
||||
def blas_libs(self):
|
||||
shared = True if '+shared' in self.spec else False
|
||||
suffix = dso_suffix if '+shared' in self.spec else 'a'
|
||||
mkl_integer = ['libmkl_intel_ilp64'] if '+ilp64' in self.spec else ['libmkl_intel_lp64'] # NOQA: ignore=E501
|
||||
mkl_threading = ['libmkl_sequential']
|
||||
if '+openmp' in self.spec:
|
||||
mkl_threading = ['libmkl_intel_thread', 'libiomp5'] if '%intel' in self.spec else ['libmkl_gnu_thread'] # NOQA: ignore=E501
|
||||
# TODO: TBB threading: ['libmkl_tbb_thread', 'libtbb', 'libstdc++']
|
||||
mkl_libs = find_libraries(
|
||||
mkl_integer + ['libmkl_core'] + mkl_threading,
|
||||
root=join_path(self.prefix.lib, 'intel64'),
|
||||
shared=shared
|
||||
)
|
||||
system_libs = [
|
||||
'libpthread.{0}'.format(suffix),
|
||||
'libm.{0}'.format(suffix),
|
||||
'libdl.{0}'.format(suffix)
|
||||
]
|
||||
return mkl_libs + system_libs
|
||||
|
||||
@property
|
||||
def lapack_libs(self):
|
||||
return self.blas_libs
|
||||
|
||||
def install(self, spec, prefix):
|
||||
self.intel_prefix = os.path.join(prefix, "pkg")
|
||||
IntelInstaller.install(self, spec, prefix)
|
||||
|
||||
@@ -45,25 +73,6 @@ def install(self, spec, prefix):
|
||||
os.symlink(os.path.join(mkl_lib_dir, f),
|
||||
os.path.join(self.prefix, "lib", f))
|
||||
|
||||
def setup_dependent_package(self, module, dspec):
|
||||
# For now use Single Dynamic Library:
|
||||
# To set the threading layer at run time, use the
|
||||
# mkl_set_threading_layer function or set MKL_THREADING_LAYER
|
||||
# variable to one of the following values: INTEL, SEQUENTIAL, PGI.
|
||||
# To set interface layer at run time, use the mkl_set_interface_layer
|
||||
# function or set the MKL_INTERFACE_LAYER variable to LP64 or ILP64.
|
||||
|
||||
# Otherwise one would need to specify several libraries
|
||||
# (e.g. mkl_intel_lp64;mkl_sequential;mkl_core), which reflect
|
||||
# different interface and threading layers.
|
||||
|
||||
name = 'libmkl_rt.%s' % dso_suffix
|
||||
libdir = find_library_path(name, self.prefix.lib64, self.prefix.lib)
|
||||
|
||||
# Now set blas/lapack libs:
|
||||
self.spec.blas_shared_lib = join_path(libdir, name)
|
||||
self.spec.lapack_shared_lib = self.spec.blas_shared_lib
|
||||
|
||||
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
|
||||
# set up MKLROOT for everyone using MKL package
|
||||
spack_env.set('MKLROOT', self.prefix)
|
||||
|
||||
@@ -37,7 +37,7 @@ class Moab(Package):
|
||||
homepage = "https://bitbucket.org/fathomteam/moab"
|
||||
url = "http://ftp.mcs.anl.gov/pub/fathom/moab-4.6.3.tar.gz"
|
||||
|
||||
version('4.9.1', 'bcb8bee3e58c076c7f31884db119088e')
|
||||
version('4.9.1', '19cc2189fa266181ad9109b18d0b2ab8')
|
||||
version('4.9.0', '40695d0a159040683cfa05586ad4a7c2')
|
||||
version('4.8.2', '1dddd10f162fce3cfffaedc48f6f467d')
|
||||
|
||||
|
||||
44
var/spack/repos/builtin/packages/mpip/package.py
Normal file
44
var/spack/repos/builtin/packages/mpip/package.py
Normal file
@@ -0,0 +1,44 @@
|
||||
##############################################################################
|
||||
# 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 Mpip(Package):
|
||||
"""mpiP: Lightweight, Scalable MPI Profiling"""
|
||||
homepage = "http://mpip.sourceforge.net/"
|
||||
url = "http://downloads.sourceforge.net/project/mpip/mpiP/mpiP-3.4.1/mpiP-3.4.1.tar.gz"
|
||||
|
||||
version("3.4.1", "1168adc83777ac31d6ebd385823aabbd")
|
||||
|
||||
depends_on("libelf", type="build")
|
||||
depends_on("libdwarf", type="build")
|
||||
depends_on('libunwind', when=os.uname()[4] == "x86_64", type="build")
|
||||
depends_on("mpi", type="build")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=" + prefix, "--without-f77")
|
||||
make()
|
||||
make("install")
|
||||
@@ -75,9 +75,8 @@ def write_makefile_inc(self):
|
||||
raise RuntimeError(
|
||||
'You cannot use the variants parmetis or ptscotch without mpi')
|
||||
|
||||
makefile_conf = ["LIBBLAS = %s" % to_link_flags(
|
||||
self.spec['blas'].blas_shared_lib)
|
||||
]
|
||||
blas = self.spec['blas'].blas_libs
|
||||
makefile_conf = ["LIBBLAS = %s" % blas.ld_flags]
|
||||
|
||||
orderings = ['-Dpord']
|
||||
|
||||
@@ -136,11 +135,12 @@ def write_makefile_inc(self):
|
||||
'OPTC = %s -O ' % fpic])
|
||||
|
||||
if '+mpi' in self.spec:
|
||||
scalapack = self.spec['scalapack'].scalapack_libs
|
||||
makefile_conf.extend(
|
||||
["CC = %s" % join_path(self.spec['mpi'].prefix.bin, 'mpicc'),
|
||||
"FC = %s" % join_path(self.spec['mpi'].prefix.bin, 'mpif90'),
|
||||
"FL = %s" % join_path(self.spec['mpi'].prefix.bin, 'mpif90'),
|
||||
"SCALAP = %s" % self.spec['scalapack'].fc_link,
|
||||
"SCALAP = %s" % scalapack.ld_flags,
|
||||
"MUMPS_TYPE = par"])
|
||||
else:
|
||||
makefile_conf.extend(
|
||||
|
||||
@@ -28,14 +28,12 @@
|
||||
class Mvapich2(Package):
|
||||
"""MVAPICH2 is an MPI implementation for Infiniband networks."""
|
||||
homepage = "http://mvapich.cse.ohio-state.edu/"
|
||||
url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2rc2.tar.gz"
|
||||
url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2.tar.gz"
|
||||
|
||||
version('2.2rc2', 'f9082ffc3b853ad1b908cf7f169aa878')
|
||||
version('2.2b', '5651e8b7a72d7c77ca68da48f3a5d108')
|
||||
version('2.2a', 'b8ceb4fc5f5a97add9b3ff1b9cbe39d2')
|
||||
version('2.1', '0095ceecb19bbb7fb262131cb9c2cdd6')
|
||||
version('2.0', '9fbb68a4111a8b6338e476dc657388b4')
|
||||
version('1.9', '5dc58ed08fd3142c260b70fe297e127c')
|
||||
version('2.2', '939b65ebe5b89a5bc822cdab0f31f96e')
|
||||
version('2.1', '0095ceecb19bbb7fb262131cb9c2cdd6')
|
||||
version('2.0', '9fbb68a4111a8b6338e476dc657388b4')
|
||||
version('1.9', '5dc58ed08fd3142c260b70fe297e127c')
|
||||
|
||||
patch('ad_lustre_rwcontig_open_source.patch', when='@1.9')
|
||||
|
||||
@@ -95,6 +93,7 @@ class Mvapich2(Package):
|
||||
##########
|
||||
|
||||
# FIXME : CUDA support is missing
|
||||
depends_on('bison')
|
||||
depends_on('libpciaccess')
|
||||
|
||||
def url_for_version(self, version):
|
||||
|
||||
@@ -50,7 +50,10 @@ def install(self, spec, prefix):
|
||||
"--enable-widec",
|
||||
"--enable-overwrite",
|
||||
"--disable-lib-suffixes",
|
||||
"--without-ada"]
|
||||
"--without-ada",
|
||||
"--enable-pc-files",
|
||||
"--with-pkg-config-libdir={0}/lib/pkgconfig".format(prefix)
|
||||
]
|
||||
configure(*opts)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
@@ -34,6 +34,7 @@ class Ncview(Package):
|
||||
|
||||
depends_on("netcdf")
|
||||
depends_on("udunits2")
|
||||
depends_on("libpng")
|
||||
|
||||
# OS Dependencies
|
||||
# Ubuntu: apt-get install libxaw7-dev
|
||||
|
||||
@@ -50,12 +50,18 @@ class Netcdf(Package):
|
||||
|
||||
# Required for NetCDF-4 support
|
||||
depends_on("zlib")
|
||||
depends_on('hdf5@:1.8+mpi', when='@:4.4.0+mpi')
|
||||
depends_on('hdf5+mpi', when='@4.4.1:+mpi')
|
||||
depends_on('hdf5@:1.8~mpi', when='@:4.4.0~mpi')
|
||||
depends_on('hdf5~mpi', when='@4.4.1:~mpi')
|
||||
depends_on('hdf5')
|
||||
|
||||
# NetCDF 4.4.0 and prior have compatibility issues with HDF5 1.10 and later
|
||||
# https://github.com/Unidata/netcdf-c/issues/250
|
||||
depends_on('hdf5@:1.8', when='@:4.4.0')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Workaround until variant forwarding works properly
|
||||
if '+mpi' in spec and spec.satisfies('^hdf5~mpi'):
|
||||
raise RuntimeError('Invalid spec. Package netcdf requires '
|
||||
'hdf5+mpi, but spec asked for hdf5~mpi.')
|
||||
|
||||
# Environment variables
|
||||
CPPFLAGS = []
|
||||
LDFLAGS = []
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user