Merge branch 'develop' into eschnett/sympol
This commit is contained in:
40
var/spack/mock_configs/site_spackconfig/compilers.yaml
Normal file
40
var/spack/mock_configs/site_spackconfig/compilers.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
compilers:
|
||||
all:
|
||||
clang@3.3:
|
||||
cc: /path/to/clang
|
||||
cxx: /path/to/clang++
|
||||
f77: None
|
||||
fc: None
|
||||
modules: None
|
||||
strategy: PATH
|
||||
gcc@4.5.0:
|
||||
cc: /path/to/gcc
|
||||
cxx: /path/to/g++
|
||||
f77: /path/to/gfortran
|
||||
fc: /path/to/gfortran
|
||||
modules: None
|
||||
strategy: PATH
|
||||
gcc@5.2.0:
|
||||
cc: cc
|
||||
cxx: CC
|
||||
f77: ftn
|
||||
fc: ftn
|
||||
modules:
|
||||
- PrgEnv-gnu
|
||||
- gcc/5.2.0
|
||||
strategy: MODULES
|
||||
intel@15.0.1:
|
||||
cc: cc
|
||||
ccx: CC
|
||||
f77: ftn
|
||||
fc: ftn
|
||||
modules:
|
||||
- PrgEnv-intel
|
||||
- intel/15.0.1
|
||||
strategy: MODULES
|
||||
intel@15.1.2:
|
||||
cc: /path/to/icc
|
||||
cxx: /path/to/ic++
|
||||
f77: /path/to/ifort
|
||||
fc: /path/to/ifort
|
||||
strategy: PATH
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class A(Package):
|
||||
"""Simple package with no dependencies"""
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class B(Package):
|
||||
"""Simple package with no dependencies"""
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class C(Package):
|
||||
"""Simple package with no dependencies"""
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Callpath(Package):
|
||||
homepage = "https://github.com/tgamblin/callpath"
|
||||
url = "http://github.com/tgamblin/callpath-1.0.tar.gz"
|
||||
|
@@ -25,6 +25,7 @@
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
|
||||
def check(condition, msg):
|
||||
"""Raise an install error if condition is False."""
|
||||
if not condition:
|
||||
@@ -38,8 +39,7 @@ class CmakeClient(Package):
|
||||
|
||||
version('1.0', '4cb3ff35b2472aae70f542116d616e63')
|
||||
|
||||
depends_on('cmake')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def setup_environment(self, spack_env, run_env):
|
||||
spack_cc # Ensure spack module-scope variable is avaiabl
|
||||
@@ -47,8 +47,8 @@ def setup_environment(self, spack_env, run_env):
|
||||
"setup_environment couldn't read global set by cmake.")
|
||||
|
||||
check(self.spec['cmake'].link_arg == "test link arg",
|
||||
"link arg on dependency spec not readable from setup_environment.")
|
||||
|
||||
"link arg on dependency spec not readable from "
|
||||
"setup_environment.")
|
||||
|
||||
def setup_dependent_environment(self, spack_env, run_env, dspec):
|
||||
spack_cc # Ensure spack module-scope variable is avaiable
|
||||
@@ -56,8 +56,8 @@ def setup_dependent_environment(self, spack_env, run_env, dspec):
|
||||
"setup_dependent_environment couldn't read global set by cmake.")
|
||||
|
||||
check(self.spec['cmake'].link_arg == "test link arg",
|
||||
"link arg on dependency spec not readable from setup_dependent_environment.")
|
||||
|
||||
"link arg on dependency spec not readable from "
|
||||
"setup_dependent_environment.")
|
||||
|
||||
def setup_dependent_package(self, module, dspec):
|
||||
spack_cc # Ensure spack module-scope variable is avaiable
|
||||
@@ -65,9 +65,8 @@ def setup_dependent_package(self, module, dspec):
|
||||
"setup_dependent_package couldn't read global set by cmake.")
|
||||
|
||||
check(self.spec['cmake'].link_arg == "test link arg",
|
||||
"link arg on dependency spec not readable from setup_dependent_package.")
|
||||
|
||||
|
||||
"link arg on dependency spec not readable from "
|
||||
"setup_dependent_package.")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# check that cmake is in the global scope.
|
||||
|
@@ -25,6 +25,7 @@
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
|
||||
def check(condition, msg):
|
||||
"""Raise an install error if condition is False."""
|
||||
if not condition:
|
||||
@@ -39,7 +40,6 @@ class Cmake(Package):
|
||||
version('3.4.3', '4cb3ff35b2472aae70f542116d616e63',
|
||||
url='https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz')
|
||||
|
||||
|
||||
def setup_environment(self, spack_env, run_env):
|
||||
spack_cc # Ensure spack module-scope variable is avaiable
|
||||
spack_env.set('for_install', 'for_install')
|
||||
@@ -48,7 +48,6 @@ def setup_dependent_environment(self, spack_env, run_env, dspec):
|
||||
spack_cc # Ensure spack module-scope variable is avaiable
|
||||
spack_env.set('from_cmake', 'from_cmake')
|
||||
|
||||
|
||||
def setup_dependent_package(self, module, dspec):
|
||||
spack_cc # Ensure spack module-scope variable is avaiable
|
||||
|
||||
@@ -57,7 +56,6 @@ def setup_dependent_package(self, module, dspec):
|
||||
|
||||
self.spec.link_arg = "test link arg"
|
||||
|
||||
|
||||
def install(self, spec, prefix):
|
||||
mkdirp(prefix.bin)
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class DirectMpich(Package):
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/direct_mpich-1.0.tar.gz"
|
||||
|
18
var/spack/repos/builtin.mock/packages/dtbuild1/package.py
Normal file
18
var/spack/repos/builtin.mock/packages/dtbuild1/package.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtbuild1(Package):
|
||||
"""Package for use as a build tool for deptypes testing which has its own
|
||||
deptree"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtbuild1-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
depends_on('dtbuild2', type='build')
|
||||
depends_on('dtlink2')
|
||||
depends_on('dtrun2', type='run')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
13
var/spack/repos/builtin.mock/packages/dtbuild2/package.py
Normal file
13
var/spack/repos/builtin.mock/packages/dtbuild2/package.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtbuild2(Package):
|
||||
"""Simple package which acts as a build dependency"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtbuild2-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
13
var/spack/repos/builtin.mock/packages/dtbuild3/package.py
Normal file
13
var/spack/repos/builtin.mock/packages/dtbuild3/package.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtbuild3(Package):
|
||||
"""Simple package which acts as a build dependency"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtbuild3-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
15
var/spack/repos/builtin.mock/packages/dtlink1/package.py
Normal file
15
var/spack/repos/builtin.mock/packages/dtlink1/package.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtlink1(Package):
|
||||
"""Simple package which acts as a link dependency"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtlink1-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
depends_on('dtlink3')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
13
var/spack/repos/builtin.mock/packages/dtlink2/package.py
Normal file
13
var/spack/repos/builtin.mock/packages/dtlink2/package.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtlink2(Package):
|
||||
"""Simple package which acts as a link dependency"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtlink2-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
16
var/spack/repos/builtin.mock/packages/dtlink3/package.py
Normal file
16
var/spack/repos/builtin.mock/packages/dtlink3/package.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtlink3(Package):
|
||||
"""Simple package which acts as a link dependency"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtlink3-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
depends_on('dtbuild2', type='build')
|
||||
depends_on('dtlink4')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
13
var/spack/repos/builtin.mock/packages/dtlink4/package.py
Normal file
13
var/spack/repos/builtin.mock/packages/dtlink4/package.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtlink4(Package):
|
||||
"""Simple package which acts as a link dependency"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtlink4-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
13
var/spack/repos/builtin.mock/packages/dtlink5/package.py
Normal file
13
var/spack/repos/builtin.mock/packages/dtlink5/package.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtlink5(Package):
|
||||
"""Simple package which acts as a link dependency"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtlink5-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
16
var/spack/repos/builtin.mock/packages/dtrun1/package.py
Normal file
16
var/spack/repos/builtin.mock/packages/dtrun1/package.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtrun1(Package):
|
||||
"""Simple package which acts as a run dependency"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtrun1-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
depends_on('dtlink5')
|
||||
depends_on('dtrun3', type='run')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
13
var/spack/repos/builtin.mock/packages/dtrun2/package.py
Normal file
13
var/spack/repos/builtin.mock/packages/dtrun2/package.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtrun2(Package):
|
||||
"""Simple package which acts as a run dependency"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtrun2-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
15
var/spack/repos/builtin.mock/packages/dtrun3/package.py
Normal file
15
var/spack/repos/builtin.mock/packages/dtrun3/package.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtrun3(Package):
|
||||
"""Simple package which acts as a run dependency"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtrun3-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
depends_on('dtbuild3', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
17
var/spack/repos/builtin.mock/packages/dttop/package.py
Normal file
17
var/spack/repos/builtin.mock/packages/dttop/package.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dttop(Package):
|
||||
"""Package with a complicated dependency tree"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dttop-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
depends_on('dtbuild1', type='build')
|
||||
depends_on('dtlink1')
|
||||
depends_on('dtrun1', type='run')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
15
var/spack/repos/builtin.mock/packages/dtuse/package.py
Normal file
15
var/spack/repos/builtin.mock/packages/dtuse/package.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dtuse(Package):
|
||||
"""Simple package which uses dttop"""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/dtuse-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
|
||||
depends_on('dttop')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Dyninst(Package):
|
||||
homepage = "https://paradyn.org"
|
||||
url = "http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class E(Package):
|
||||
"""Simple package with no dependencies"""
|
||||
|
||||
|
@@ -0,0 +1,38 @@
|
||||
|
||||
##############################################################################
|
||||
# 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 Externalmodule(Package):
|
||||
homepage = "http://somewhere.com"
|
||||
url = "http://somewhere.com/module-1.0.tar.gz"
|
||||
|
||||
version('1.0', '1234567890abcdef1234567890abcdef')
|
||||
|
||||
depends_on('externalprereq')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Externalprereq(Package):
|
||||
homepage = "http://somewhere.com"
|
||||
url = "http://somewhere.com/prereq-1.0.tar.gz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Externaltest(Package):
|
||||
homepage = "http://somewhere.com"
|
||||
url = "http://somewhere.com/test-1.0.tar.gz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Externaltool(Package):
|
||||
homepage = "http://somewhere.com"
|
||||
url = "http://somewhere.com/tool-1.0.tar.gz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Externalvirtual(Package):
|
||||
homepage = "http://somewhere.com"
|
||||
url = "http://somewhere.com/stuff-1.0.tar.gz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Fake(Package):
|
||||
homepage = "http://www.fake-spack-example.org"
|
||||
url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class GitTest(Package):
|
||||
"""Mock package that uses git for fetching."""
|
||||
homepage = "http://www.git-fetch-example.com"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class HgTest(Package):
|
||||
"""Test package that does fetching with mercurial."""
|
||||
homepage = "http://www.hg-fetch-example.com"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Hypre(Package):
|
||||
"""Hypre is included here as an example of a package that depends on
|
||||
both LAPACK and BLAS."""
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class IndirectMpich(Package):
|
||||
"""Test case for a package that depends on MPI and one of its
|
||||
dependencies requires a *particular version* of MPI.
|
||||
|
@@ -23,11 +23,11 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
# Only build certain parts of dwarf because the other ones break.
|
||||
dwarf_dirs = ['libdwarf', 'dwarfdump2']
|
||||
|
||||
|
||||
class Libdwarf(Package):
|
||||
homepage = "http://www.prevanders.net/dwarf.html"
|
||||
url = "http://www.prevanders.net/libdwarf-20130729.tar.gz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Libelf(Package):
|
||||
homepage = "http://www.mr511.de/software/english.html"
|
||||
url = "http://www.mr511.de/software/libelf-0.8.13.tar.gz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Mpich(Package):
|
||||
homepage = "http://www.mpich.org"
|
||||
url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Mpich2(Package):
|
||||
homepage = "http://www.mpich.org"
|
||||
url = "http://www.mpich.org/static/downloads/1.5/mpich2-1.5.tar.gz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Mpileaks(Package):
|
||||
homepage = "http://www.llnl.gov"
|
||||
url = "http://www.llnl.gov/mpileaks-1.0.tar.gz"
|
||||
@@ -35,6 +36,8 @@ class Mpileaks(Package):
|
||||
|
||||
variant('debug', default=False, description='Debug variant')
|
||||
variant('opt', default=False, description='Optimized variant')
|
||||
variant('shared', default=True, description='Build shared library')
|
||||
variant('static', default=True, description='Build static library')
|
||||
|
||||
depends_on("mpi")
|
||||
depends_on("callpath")
|
||||
|
@@ -23,6 +23,7 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import spack.architecture
|
||||
|
||||
|
||||
class Multimethod(Package):
|
||||
@@ -49,7 +50,6 @@ def no_version_2(self):
|
||||
def no_version_2(self):
|
||||
return 4
|
||||
|
||||
|
||||
#
|
||||
# These functions overlap, so there is ambiguity, but we'll take
|
||||
# the first one.
|
||||
@@ -62,7 +62,6 @@ def version_overlap(self):
|
||||
def version_overlap(self):
|
||||
return 2
|
||||
|
||||
|
||||
#
|
||||
# More complicated case with cascading versions.
|
||||
#
|
||||
@@ -81,7 +80,6 @@ def mpi_version(self):
|
||||
def mpi_version(self):
|
||||
return 1
|
||||
|
||||
|
||||
#
|
||||
# Use these to test whether the default method is called when no
|
||||
# match is found. This also tests whether we can switch methods
|
||||
@@ -98,31 +96,25 @@ def has_a_default(self):
|
||||
def has_a_default(self):
|
||||
return 'intel'
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Make sure we can switch methods on different architectures
|
||||
# Make sure we can switch methods on different target
|
||||
#
|
||||
@when('arch=x86_64')
|
||||
def different_by_architecture(self):
|
||||
return 'x86_64'
|
||||
|
||||
@when('arch=ppc64')
|
||||
def different_by_architecture(self):
|
||||
return 'ppc64'
|
||||
|
||||
@when('arch=ppc32')
|
||||
def different_by_architecture(self):
|
||||
return 'ppc32'
|
||||
|
||||
@when('arch=arm64')
|
||||
def different_by_architecture(self):
|
||||
return 'arm64'
|
||||
|
||||
platform = spack.architecture.platform()
|
||||
targets = platform.targets.values()
|
||||
if len(targets) > 1:
|
||||
targets = targets[:-1]
|
||||
|
||||
for target in targets:
|
||||
@when('target=' + target.name)
|
||||
def different_by_target(self):
|
||||
if isinstance(self.spec.architecture.target, basestring):
|
||||
return self.spec.architecture.target
|
||||
else:
|
||||
return self.spec.architecture.target.name
|
||||
#
|
||||
# Make sure we can switch methods on different dependencies
|
||||
#
|
||||
|
||||
@when('^mpich')
|
||||
def different_by_dep(self):
|
||||
return 'mpich'
|
||||
@@ -131,7 +123,6 @@ def different_by_dep(self):
|
||||
def different_by_dep(self):
|
||||
return 'zmpi'
|
||||
|
||||
|
||||
#
|
||||
# Make sure we can switch on virtual dependencies
|
||||
#
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class NetlibBlas(Package):
|
||||
homepage = "http://www.netlib.org/lapack/"
|
||||
url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class NetlibLapack(Package):
|
||||
homepage = "http://www.netlib.org/lapack/"
|
||||
url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class OpenblasWithLapack(Package):
|
||||
"""Dummy version of OpenBLAS that also provides LAPACK, for testing."""
|
||||
homepage = "http://www.openblas.net"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Openblas(Package):
|
||||
"""OpenBLAS: An optimized BLAS library"""
|
||||
homepage = "http://www.openblas.net"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class OptionalDepTest2(Package):
|
||||
"""Depends on the optional-dep-test package"""
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class OptionalDepTest3(Package):
|
||||
"""Depends on the optional-dep-test package"""
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class OptionalDepTest(Package):
|
||||
"""Description"""
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Python(Package):
|
||||
"""Dummy Python package to demonstrate preferred versions."""
|
||||
homepage = "http://www.python.org"
|
||||
@@ -40,4 +41,3 @@ class Python(Package):
|
||||
|
||||
def install(self, spec, prefix):
|
||||
pass
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class SvnTest(Package):
|
||||
"""Mock package that uses svn for fetching."""
|
||||
url = "http://www.example.com/svn-test-1.0.tar.gz"
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class TrivialInstallTestPackage(Package):
|
||||
"""This package is a stub with a trivial install method. It allows us
|
||||
to test the install and uninstall logic of spack."""
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Zmpi(Package):
|
||||
"""This is a fake MPI package used to demonstrate virtual package providers
|
||||
with dependencies."""
|
||||
|
@@ -51,7 +51,7 @@ class Imagemagick(Package):
|
||||
url="http://sourceforge.net/projects/imagemagick/files/old-sources/6.x/6.8/ImageMagick-6.8.9-10.tar.gz/download")
|
||||
|
||||
depends_on('jpeg')
|
||||
depends_on('libtool')
|
||||
depends_on('libtool', type='build')
|
||||
depends_on('libpng')
|
||||
depends_on('freetype')
|
||||
depends_on('fontconfig')
|
||||
|
@@ -25,6 +25,7 @@
|
||||
import os
|
||||
from spack import *
|
||||
|
||||
|
||||
class Luajit(Package):
|
||||
"""Flast flexible JITed lua"""
|
||||
homepage = "http://www.luajit.org"
|
||||
|
@@ -41,6 +41,7 @@ class Mitos(Package):
|
||||
depends_on('dyninst@8.2.1:')
|
||||
depends_on('hwloc')
|
||||
depends_on('mpi')
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
with working_dir('spack-build', create=True):
|
||||
|
@@ -22,30 +22,25 @@
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
import functools
|
||||
import glob
|
||||
import inspect
|
||||
import os
|
||||
import re
|
||||
from contextlib import closing
|
||||
|
||||
import spack
|
||||
from llnl.util.lang import match_predicate
|
||||
from spack import *
|
||||
from spack.util.environment import *
|
||||
import shutil
|
||||
|
||||
|
||||
class R(Package):
|
||||
"""
|
||||
R is 'GNU S', a freely available language and environment for statistical computing and graphics which provides a
|
||||
wide variety of statistical and graphical techniques: linear and nonlinear modelling, statistical tests, time series
|
||||
analysis, classification, clustering, etc. Please consult the R project homepage for further information.
|
||||
"""
|
||||
"""R is 'GNU S', a freely available language and environment for
|
||||
statistical computing and graphics which provides a wide variety of
|
||||
statistical and graphical techniques: linear and nonlinear modelling,
|
||||
statistical tests, time series analysis, classification, clustering, etc.
|
||||
Please consult the R project homepage for further information."""
|
||||
|
||||
homepage = "https://www.r-project.org"
|
||||
url = "http://cran.cnr.berkeley.edu/src/base/R-3/R-3.1.2.tar.gz"
|
||||
|
||||
|
||||
extendable = True
|
||||
|
||||
version('3.3.1', 'f50a659738b73036e2f5635adbd229c5')
|
||||
version('3.3.0', '5a7506c8813432d1621c9725e86baf7a')
|
||||
version('3.2.3', '1ba3dac113efab69e706902810cc2970')
|
||||
version('3.2.2', '57cef5c2e210a5454da1979562a10e5b')
|
||||
version('3.2.1', 'c2aac8b40f84e08e7f8c9068de9239a3')
|
||||
@@ -53,7 +48,8 @@ class R(Package):
|
||||
version('3.1.3', '53a85b884925aa6b5811dfc361d73fc4')
|
||||
version('3.1.2', '3af29ec06704cbd08d4ba8d69250ae74')
|
||||
|
||||
variant('external-lapack', default=False, description='Links to externally installed BLAS/LAPACK')
|
||||
variant('external-lapack', default=False,
|
||||
description='Links to externally installed BLAS/LAPACK')
|
||||
|
||||
# Virtual dependencies
|
||||
depends_on('blas', when='+external-lapack')
|
||||
@@ -65,6 +61,7 @@ class R(Package):
|
||||
depends_on('icu')
|
||||
depends_on('glib')
|
||||
depends_on('zlib')
|
||||
depends_on('bzip2')
|
||||
depends_on('libtiff')
|
||||
depends_on('jpeg')
|
||||
depends_on('cairo')
|
||||
@@ -72,59 +69,107 @@ class R(Package):
|
||||
depends_on('freetype')
|
||||
depends_on('tcl')
|
||||
depends_on('tk')
|
||||
depends_on('curl')
|
||||
depends_on('pcre')
|
||||
depends_on('jdk')
|
||||
|
||||
@property
|
||||
def etcdir(self):
|
||||
return join_path(prefix, 'rlib', 'R', 'etc')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
rlibdir = join_path(prefix, 'rlib')
|
||||
options = ['--prefix=%s' % prefix,
|
||||
'--libdir=%s' % rlibdir,
|
||||
'--enable-R-shlib',
|
||||
'--enable-BLAS-shlib',
|
||||
'--enable-R-framework=no']
|
||||
configure_args = ['--prefix=%s' % prefix,
|
||||
'--libdir=%s' % rlibdir,
|
||||
'--enable-R-shlib',
|
||||
'--enable-BLAS-shlib',
|
||||
'--enable-R-framework=no']
|
||||
if '+external-lapack' in spec:
|
||||
options.extend(['--with-blas', '--with-lapack'])
|
||||
configure_args.extend(['--with-blas', '--with-lapack'])
|
||||
|
||||
configure(*options)
|
||||
configure(*configure_args)
|
||||
make()
|
||||
make('install')
|
||||
|
||||
# Make a copy of Makeconf because it will be needed to properly build R
|
||||
# dependencies in Spack.
|
||||
src_makeconf = join_path(self.etcdir, 'Makeconf')
|
||||
dst_makeconf = join_path(self.etcdir, 'Makeconf.spack')
|
||||
shutil.copy(src_makeconf, dst_makeconf)
|
||||
|
||||
self.filter_compilers(spec, prefix)
|
||||
|
||||
def filter_compilers(self, spec, prefix):
|
||||
"""Run after install to tell the configuration files and Makefiles
|
||||
to use the compilers that Spack built the package with.
|
||||
|
||||
If this isn't done, they'll have CC and CXX set to Spack's generic
|
||||
cc and c++. We want them to be bound to whatever compiler
|
||||
they were built with."""
|
||||
|
||||
kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
|
||||
|
||||
filter_file(env['CC'], self.compiler.cc,
|
||||
join_path(self.etcdir, 'Makeconf'), **kwargs)
|
||||
filter_file(env['CXX'], self.compiler.cxx,
|
||||
join_path(self.etcdir, 'Makeconf'), **kwargs)
|
||||
filter_file(env['F77'], self.compiler.f77,
|
||||
join_path(self.etcdir, 'Makeconf'), **kwargs)
|
||||
filter_file(env['FC'], self.compiler.fc,
|
||||
join_path(self.etcdir, 'Makeconf'), **kwargs)
|
||||
|
||||
# ========================================================================
|
||||
# Set up environment to make install easy for R extensions.
|
||||
# ========================================================================
|
||||
|
||||
@property
|
||||
def r_lib_dir(self):
|
||||
return os.path.join('rlib', 'R', 'library')
|
||||
return join_path('rlib', 'R', 'library')
|
||||
|
||||
def setup_dependent_environment(self, spack_env, run_env, extension_spec):
|
||||
# Set R_LIBS to include the library dir for the
|
||||
# extension and any other R extensions it depends on.
|
||||
r_libs_path = []
|
||||
for d in extension_spec.traverse():
|
||||
for d in extension_spec.traverse(deptype=nolink, deptype_query='run'):
|
||||
if d.package.extends(self.spec):
|
||||
r_libs_path.append(os.path.join(d.prefix, self.r_lib_dir))
|
||||
r_libs_path.append(join_path(d.prefix, self.r_lib_dir))
|
||||
|
||||
r_libs_path = ':'.join(r_libs_path)
|
||||
spack_env.set('R_LIBS', r_libs_path)
|
||||
spack_env.set('R_MAKEVARS_SITE',
|
||||
join_path(self.etcdir, 'Makeconf.spack'))
|
||||
|
||||
# For run time environment set only the path for extension_spec and prepend it to R_LIBS
|
||||
# Use the number of make_jobs set in spack. The make program will
|
||||
# determine how many jobs can actually be started.
|
||||
spack_env.set('MAKEFLAGS', '-j{0}'.format(make_jobs))
|
||||
|
||||
# For run time environment set only the path for extension_spec and
|
||||
# prepend it to R_LIBS
|
||||
if extension_spec.package.extends(self.spec):
|
||||
run_env.prepend_path('R_LIBS', os.path.join(extension_spec.prefix, self.r_lib_dir))
|
||||
run_env.prepend_path('R_LIBS', join_path(
|
||||
extension_spec.prefix, self.r_lib_dir))
|
||||
|
||||
def setup_environment(self, spack_env, run_env):
|
||||
run_env.prepend_path('LIBRARY_PATH',
|
||||
join_path(self.prefix, 'rlib', 'R', 'lib'))
|
||||
run_env.prepend_path('LD_LIBRARY_PATH',
|
||||
join_path(self.prefix, 'rlib', 'R', 'lib'))
|
||||
run_env.prepend_path('CPATH',
|
||||
join_path(self.prefix, 'rlib', 'R', 'include'))
|
||||
|
||||
def setup_dependent_package(self, module, ext_spec):
|
||||
"""
|
||||
Called before R modules' install() methods.
|
||||
"""Called before R modules' install() methods. In most cases,
|
||||
extensions will only need to have one line:
|
||||
R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir),
|
||||
self.stage.source_path)"""
|
||||
|
||||
In most cases, extensions will only need to have one line::
|
||||
|
||||
R('CMD', 'INSTALL', '--library=%s' % self.module.r_lib_dir, '%s' % self.stage.archive_file)
|
||||
"""
|
||||
# R extension builds can have a global R executable function
|
||||
module.R = Executable(join_path(self.spec.prefix.bin, 'R'))
|
||||
|
||||
# Add variable for library directry
|
||||
module.r_lib_dir = os.path.join(ext_spec.prefix, self.r_lib_dir)
|
||||
module.r_lib_dir = join_path(ext_spec.prefix, self.r_lib_dir)
|
||||
|
||||
# Make the site packages directory for extensions, if it does not exist already.
|
||||
# Make the site packages directory for extensions, if it does not exist
|
||||
# already.
|
||||
if ext_spec.package.is_extension:
|
||||
mkdirp(module.r_lib_dir)
|
||||
|
@@ -24,12 +24,14 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Samrai(Package):
|
||||
"""SAMRAI (Structured Adaptive Mesh Refinement Application Infrastructure)
|
||||
is an object-oriented C++ software library enables exploration of numerical,
|
||||
algorithmic, parallel computing, and software issues associated with applying
|
||||
structured adaptive mesh refinement (SAMR) technology in large-scale parallel
|
||||
application development.
|
||||
is an object-oriented C++ software library enables exploration of
|
||||
numerical, algorithmic, parallel computing, and software issues
|
||||
associated with applying structured adaptive mesh refinement
|
||||
(SAMR) technology in large-scale parallel application development.
|
||||
|
||||
"""
|
||||
homepage = "https://computation.llnl.gov/project/SAMRAI/"
|
||||
url = "https://computation.llnl.gov/project/SAMRAI/download/SAMRAI-v3.9.1.tar.gz"
|
||||
|
51
var/spack/repos/builtin/packages/ack/package.py
Normal file
51
var/spack/repos/builtin/packages/ack/package.py
Normal file
@@ -0,0 +1,51 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Ack(Package):
|
||||
"""ack 2.14 is a tool like grep, optimized for programmers.
|
||||
|
||||
Designed for programmers with large heterogeneous trees of
|
||||
source code, ack is written purely in portable Perl 5 and takes
|
||||
advantage of the power of Perl's regular expressions."""
|
||||
|
||||
homepage = "http://beyondgrep.com/"
|
||||
url = "http://beyondgrep.com/ack-2.14-single-file"
|
||||
|
||||
version('2.14', 'e74150a1609d28a70b450ef9cc2ed56b', expand=False)
|
||||
|
||||
depends_on('perl')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
mkdirp(prefix.bin)
|
||||
ack = 'ack-{0}-single-file'.format(self.version)
|
||||
|
||||
# rewrite the script's #! line to call the perl dependency
|
||||
shbang = '#!' + join_path(spec['perl'].prefix.bin, 'perl')
|
||||
filter_file(r'^#!/usr/bin/env perl', shbang, ack)
|
||||
|
||||
install(ack, join_path(prefix.bin, "ack"))
|
||||
set_executable(join_path(prefix.bin, "ack"))
|
@@ -24,8 +24,10 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Activeharmony(Package):
|
||||
"""Active Harmony: a framework for auto-tuning (the automated search for values to improve the performance of a target application)."""
|
||||
"""Active Harmony: a framework for auto-tuning (the automated search for
|
||||
values to improve the performance of a target application)."""
|
||||
homepage = "http://www.dyninst.org/harmony"
|
||||
url = "http://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz"
|
||||
|
||||
@@ -34,6 +36,3 @@ class Activeharmony(Package):
|
||||
def install(self, spec, prefix):
|
||||
make("CFLAGS=-O3")
|
||||
make("install", 'PREFIX=%s' % prefix)
|
||||
|
||||
from spack import *
|
||||
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class AdeptUtils(Package):
|
||||
"""Utility libraries for LLNL performance tools."""
|
||||
|
||||
@@ -35,6 +36,7 @@ class AdeptUtils(Package):
|
||||
|
||||
depends_on("boost")
|
||||
depends_on("mpi")
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake(*std_cmake_args)
|
||||
|
41
var/spack/repos/builtin/packages/adios/package.py
Normal file
41
var/spack/repos/builtin/packages/adios/package.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import os
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Adios(Package):
|
||||
"""
|
||||
The Adaptable IO System (ADIOS) provides a simple,
|
||||
flexible way for scientists to describe the
|
||||
data in their code that may need to be written,
|
||||
read, or processed outside of the running simulation
|
||||
"""
|
||||
|
||||
homepage = "http://www.olcf.ornl.gov/center-projects/adios/"
|
||||
url = "https://github.com/ornladios/ADIOS/archive/v1.9.0.tar.gz"
|
||||
|
||||
version('1.9.0', '310ff02388bbaa2b1c1710ee970b5678')
|
||||
|
||||
# Lots of setting up here for this package
|
||||
# module swap PrgEnv-intel PrgEnv-$COMP
|
||||
# module load cray-netcdf/4.3.3.1
|
||||
# module load cray-hdf5/1.8.14
|
||||
# module load python/2.7.10
|
||||
depends_on('hdf5')
|
||||
depends_on('mxml')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure_args = ["--prefix=%s" % prefix,
|
||||
"--with-mxml=%s" % spec['mxml'].prefix,
|
||||
"--with-hdf5=%s" % spec['hdf5'].prefix,
|
||||
"--with-netcdf=%s" % os.environ["NETCDF_DIR"],
|
||||
"--with-infiniband=no",
|
||||
"MPICC=cc", "MPICXX=CC", "MPIFC=ftn",
|
||||
"CPPFLAGS=-DMPICH_IGNORE_CXX_SEEK"]
|
||||
|
||||
if spec.satisfies('%gcc'):
|
||||
configure_args.extend(["CC=gcc", "CXX=g++", "FC=gfortran"])
|
||||
|
||||
configure(*configure_args)
|
||||
make()
|
||||
make("install")
|
@@ -23,21 +23,24 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import sys
|
||||
|
||||
|
||||
class AdolC(Package):
|
||||
"""A package for the automatic differentiation of first and higher derivatives of vector functions in C and C++ programs by operator overloading."""
|
||||
"""A package for the automatic differentiation of first and higher
|
||||
derivatives of vector functions in C and C++ programs by operator
|
||||
overloading."""
|
||||
homepage = "https://projects.coin-or.org/ADOL-C"
|
||||
url = "http://www.coin-or.org/download/source/ADOL-C/ADOL-C-2.6.1.tgz"
|
||||
|
||||
version('head', svn='https://projects.coin-or.org/svn/ADOL-C/trunk/')
|
||||
version('2.6.1', '1032b28427d6e399af4610e78c0f087b')
|
||||
|
||||
|
||||
variant('doc', default=True, description='Install documentation')
|
||||
variant('openmp', default=False, description='Enable OpenMP support')
|
||||
variant('sparse', default=False, description='Enable sparse drivers')
|
||||
variant('tests', default=True, description='Build all included examples as a test case')
|
||||
|
||||
variant('tests', default=True,
|
||||
description='Build all included examples as a test case')
|
||||
|
||||
patch('openmp_exam.patch')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
@@ -49,10 +52,14 @@ def install(self, spec, prefix):
|
||||
if '+openmp' in spec:
|
||||
if spec.satisfies('%gcc'):
|
||||
make_args.extend([
|
||||
'--with-openmp-flag=-fopenmp' # FIXME: Is this required? -I <path to omp.h> -L <LLVM OpenMP library path>
|
||||
# FIXME: Is this required? -I <path to omp.h> -L <LLVM
|
||||
# OpenMP library path>
|
||||
'--with-openmp-flag=-fopenmp'
|
||||
])
|
||||
else:
|
||||
raise InstallError("OpenMP flags for compilers other than GCC are not implemented.")
|
||||
raise InstallError(
|
||||
"OpenMP flags for compilers other than GCC "
|
||||
"are not implemented.")
|
||||
|
||||
if '+sparse' in spec:
|
||||
make_args.extend([
|
||||
@@ -63,7 +70,7 @@ def install(self, spec, prefix):
|
||||
# whether Adol-C works as expected
|
||||
if '+tests' in spec:
|
||||
make_args.extend([
|
||||
'--enable-docexa', # Documeted examples
|
||||
'--enable-docexa', # Documeted examples
|
||||
'--enable-addexa' # Additional examples
|
||||
])
|
||||
if '+openmp' in spec:
|
||||
@@ -74,31 +81,36 @@ def install(self, spec, prefix):
|
||||
configure(*make_args)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
||||
# Copy the config.h file, as some packages might require it
|
||||
source_directory = self.stage.source_path
|
||||
config_h = join_path(source_directory,'ADOL-C','src','config.h')
|
||||
install(config_h, join_path(prefix.include,'adolc'))
|
||||
|
||||
config_h = join_path(source_directory, 'ADOL-C', 'src', 'config.h')
|
||||
install(config_h, join_path(prefix.include, 'adolc'))
|
||||
|
||||
# Install documentation to {prefix}/share
|
||||
if '+doc' in spec:
|
||||
install_tree(join_path('ADOL-C','doc'),
|
||||
join_path(prefix.share,'doc'))
|
||||
|
||||
install_tree(join_path('ADOL-C', 'doc'),
|
||||
join_path(prefix.share, 'doc'))
|
||||
|
||||
# Install examples to {prefix}/share
|
||||
if '+tests' in spec:
|
||||
install_tree(join_path('ADOL-C','examples'),
|
||||
join_path(prefix.share,'examples'))
|
||||
|
||||
install_tree(join_path('ADOL-C', 'examples'),
|
||||
join_path(prefix.share, 'examples'))
|
||||
|
||||
# Run some examples that don't require user input
|
||||
# TODO: Check that bundled examples produce the correct results
|
||||
with working_dir(join_path(source_directory,'ADOL-C','examples')):
|
||||
with working_dir(join_path(
|
||||
source_directory, 'ADOL-C', 'examples')):
|
||||
Executable('./tapeless_scalar')()
|
||||
Executable('./tapeless_vector')()
|
||||
|
||||
with working_dir(join_path(source_directory,'ADOL-C','examples','additional_examples')):
|
||||
|
||||
with working_dir(join_path(
|
||||
source_directory,
|
||||
'ADOL-C', 'examples', 'additional_examples')):
|
||||
Executable('./checkpointing/checkpointing')()
|
||||
|
||||
|
||||
if '+openmp' in spec:
|
||||
with working_dir(join_path(source_directory,'ADOL-C','examples','additional_examples')):
|
||||
with working_dir(join_path(
|
||||
source_directory,
|
||||
'ADOL-C', 'examples', 'additional_examples')):
|
||||
Executable('./checkpointing/checkpointing')()
|
||||
|
@@ -24,8 +24,9 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Antlr(Package):
|
||||
|
||||
|
||||
homepage = "http://www.antlr.org"
|
||||
url = "https://github.com/antlr/antlr/tarball/v2.7.7"
|
||||
|
||||
@@ -41,22 +42,23 @@ class Antlr(Package):
|
||||
# CharScanner.hpp must include this line: #include <cstring> or else
|
||||
# ncap2 will not compile (this tarball is already patched).
|
||||
version('2.7.7', '914865e853fe8e1e61a9f23d045cb4ab',
|
||||
# Patched version as described above
|
||||
url='http://dust.ess.uci.edu/tmp/antlr-2.7.7.tar.gz')
|
||||
# Unpatched version
|
||||
# url='http://dust.ess.uci.edu/nco/antlr-2.7.7.tar.gz')
|
||||
# Patched version as described above
|
||||
url='http://dust.ess.uci.edu/tmp/antlr-2.7.7.tar.gz')
|
||||
# Unpatched version
|
||||
# url='http://dust.ess.uci.edu/nco/antlr-2.7.7.tar.gz')
|
||||
|
||||
variant('cxx', default=False, description='Enable ANTLR for C++')
|
||||
variant('java', default=False, description='Enable ANTLR for Java')
|
||||
variant('python', default=False, description='Enable ANTLR for Python')
|
||||
variant('csharp', default=False, description='Enable ANTLR for Csharp')
|
||||
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Check for future enabling of variants
|
||||
for v in ('+java', '+python', '+csharp'):
|
||||
if v in spec:
|
||||
raise Error('Illegal variant %s; for now, Spack only knows how to build antlr or antlr+cxx')
|
||||
raise Error(
|
||||
('Illegal variant %s; ' % v) + 'for now, '
|
||||
'Spack only knows how to build antlr or antlr+cxx')
|
||||
|
||||
config_args = [
|
||||
'--prefix=%s' % prefix,
|
||||
|
55
var/spack/repos/builtin/packages/ape/package.py
Normal file
55
var/spack/repos/builtin/packages/ape/package.py
Normal file
@@ -0,0 +1,55 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Ape(Package):
|
||||
"""A tool for generating atomic pseudopotentials within a Density-Functional
|
||||
Theory framework"""
|
||||
|
||||
homepage = "http://www.tddft.org/programs/APE/"
|
||||
url = "http://www.tddft.org/programs/APE/sites/default/files/ape-2.2.1.tar.gz"
|
||||
|
||||
version('2.2.1', 'ab81da85bd749c0c136af088c7f9ad58')
|
||||
|
||||
depends_on('gsl')
|
||||
depends_on('libxc')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
args = []
|
||||
args.extend([
|
||||
'--prefix=%s' % prefix,
|
||||
'--with-gsl-prefix=%s' % spec['gsl'].prefix,
|
||||
'--with-libxc-prefix=%s' % spec['libxc'].prefix
|
||||
])
|
||||
|
||||
if spec.satisfies('%clang') or spec.satisfies('%gcc'):
|
||||
args.extend([
|
||||
'FCFLAGS=-O2 -ffree-line-length-none'
|
||||
])
|
||||
|
||||
configure(*args)
|
||||
make()
|
||||
make('install')
|
@@ -25,6 +25,7 @@
|
||||
from spack import *
|
||||
from spack.util.environment import *
|
||||
|
||||
|
||||
class Apex(Package):
|
||||
homepage = "http://github.com/khuck/xpress-apex"
|
||||
url = "http://github.com/khuck/xpress-apex/archive/v0.1.tar.gz"
|
||||
@@ -33,23 +34,23 @@ class Apex(Package):
|
||||
|
||||
depends_on("binutils+libiberty")
|
||||
depends_on("boost@1.54:")
|
||||
depends_on("cmake@2.8.12:")
|
||||
depends_on('cmake@2.8.12:', type='build')
|
||||
depends_on("activeharmony@4.5:")
|
||||
depends_on("ompt-openmp")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
path=get_path("PATH")
|
||||
path = get_path("PATH")
|
||||
path.remove(spec["binutils"].prefix.bin)
|
||||
path_set("PATH", path)
|
||||
with working_dir("build", create=True):
|
||||
cmake('-DBOOST_ROOT=%s' % spec['boost'].prefix,
|
||||
'-DUSE_BFD=TRUE',
|
||||
'-DBFD_ROOT=%s' % spec['binutils'].prefix,
|
||||
'-DUSE_ACTIVEHARMONY=TRUE',
|
||||
'-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
|
||||
'-DUSE_OMPT=TRUE',
|
||||
'-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
|
||||
'..', *std_cmake_args)
|
||||
'-DUSE_BFD=TRUE',
|
||||
'-DBFD_ROOT=%s' % spec['binutils'].prefix,
|
||||
'-DUSE_ACTIVEHARMONY=TRUE',
|
||||
'-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
|
||||
'-DUSE_OMPT=TRUE',
|
||||
'-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
|
||||
'..', *std_cmake_args)
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class AprUtil(Package):
|
||||
"""Apache Portable Runtime Utility"""
|
||||
homepage = 'https://apr.apache.org/'
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Apr(Package):
|
||||
"""Apache portable runtime."""
|
||||
homepage = 'https://apr.apache.org/'
|
||||
|
69
var/spack/repos/builtin/packages/armadillo/package.py
Normal file
69
var/spack/repos/builtin/packages/armadillo/package.py
Normal file
@@ -0,0 +1,69 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Armadillo(Package):
|
||||
"""Armadillo is a high quality linear algebra library (matrix maths)
|
||||
for the C++ language, aiming towards a good balance between speed and
|
||||
ease of use."""
|
||||
|
||||
homepage = "http://arma.sourceforge.net/"
|
||||
url = "http://sourceforge.net/projects/arma/files/armadillo-7.200.1.tar.xz"
|
||||
|
||||
version('7.200.2', 'b21585372d67a8876117fd515d8cf0a2')
|
||||
version('7.200.1', 'ed86d6df0058979e107502e1fe3e469e')
|
||||
|
||||
variant('hdf5', default=False, description='Include HDF5 support')
|
||||
|
||||
depends_on('cmake@2.8:', type='build')
|
||||
depends_on('arpack-ng') # old arpack causes undefined symbols
|
||||
depends_on('blas')
|
||||
depends_on('lapack')
|
||||
depends_on('superlu@5.2:')
|
||||
depends_on('hdf5', when='+hdf5')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake_args = [
|
||||
# ARPACK support
|
||||
'-DARPACK_LIBRARY={0}/libarpack.{1}'.format(
|
||||
spec['arpack-ng'].prefix.lib, dso_suffix),
|
||||
# BLAS support
|
||||
'-DBLAS_LIBRARY={0}'.format(spec['blas'].blas_shared_lib),
|
||||
# LAPACK support
|
||||
'-DLAPACK_LIBRARY={0}'.format(spec['lapack'].lapack_shared_lib),
|
||||
# SuperLU support
|
||||
'-DSuperLU_INCLUDE_DIR={0}'.format(spec['superlu'].prefix.include),
|
||||
'-DSuperLU_LIBRARY={0}/libsuperlu.a'.format(
|
||||
spec['superlu'].prefix.lib64),
|
||||
# HDF5 support
|
||||
'-DDETECT_HDF5={0}'.format('ON' if '+hdf5' in spec else 'OFF')
|
||||
]
|
||||
|
||||
cmake_args.extend(std_cmake_args)
|
||||
cmake('.', *cmake_args)
|
||||
|
||||
make()
|
||||
make('install')
|
@@ -0,0 +1,24 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 607d221..50426c3 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -389,3 +389,19 @@ target_link_libraries(bug_1323 arpack ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
|
||||
add_test(bug_1323 Tests/bug_1323)
|
||||
|
||||
add_dependencies(check dnsimp_test bug_1315_single bug_1315_double bug_1323)
|
||||
+
|
||||
+############################
|
||||
+# install
|
||||
+############################
|
||||
+# 'make install' to the correct location
|
||||
+install(TARGETS arpack
|
||||
+ ARCHIVE DESTINATION lib
|
||||
+ LIBRARY DESTINATION lib
|
||||
+ RUNTIME DESTINATION bin)
|
||||
+
|
||||
+if (MPI)
|
||||
+ install(TARGETS parpack
|
||||
+ ARCHIVE DESTINATION lib
|
||||
+ LIBRARY DESTINATION lib
|
||||
+ RUNTIME DESTINATION bin)
|
||||
+endif ()
|
@@ -27,7 +27,8 @@
|
||||
|
||||
class ArpackNg(Package):
|
||||
"""
|
||||
ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.
|
||||
ARPACK-NG is a collection of Fortran77 subroutines designed to solve large
|
||||
scale eigenvalue problems.
|
||||
|
||||
Important Features:
|
||||
|
||||
@@ -38,43 +39,85 @@ class ArpackNg(Package):
|
||||
Generalized Problems.
|
||||
* Routines for Banded Matrices - Standard or Generalized Problems.
|
||||
* Routines for The Singular Value Decomposition.
|
||||
* Example driver routines that may be used as templates to implement numerous
|
||||
Shift-Invert strategies for all problem types, data types and precision.
|
||||
* Example driver routines that may be used as templates to implement
|
||||
numerous Shift-Invert strategies for all problem types, data types and
|
||||
precision.
|
||||
|
||||
This project is a joint project between Debian, Octave and Scilab in order to
|
||||
provide a common and maintained version of arpack.
|
||||
This project is a joint project between Debian, Octave and Scilab in order
|
||||
to provide a common and maintained version of arpack.
|
||||
|
||||
Indeed, no single release has been published by Rice university for the last
|
||||
few years and since many software (Octave, Scilab, R, Matlab...) forked it and
|
||||
implemented their own modifications, arpack-ng aims to tackle this by providing
|
||||
a common repository and maintained versions.
|
||||
Indeed, no single release has been published by Rice university for the
|
||||
last few years and since many software (Octave, Scilab, R, Matlab...)
|
||||
forked it and implemented their own modifications, arpack-ng aims to tackle
|
||||
this by providing a common repository and maintained versions.
|
||||
|
||||
arpack-ng is replacing arpack almost everywhere.
|
||||
"""
|
||||
homepage = 'https://github.com/opencollab/arpack-ng'
|
||||
url = 'https://github.com/opencollab/arpack-ng/archive/3.3.0.tar.gz'
|
||||
|
||||
version('3.4.0', 'ae9ca13f2143a7ea280cb0e2fd4bfae4')
|
||||
version('3.3.0', 'ed3648a23f0a868a43ef44c97a21bad5')
|
||||
|
||||
variant('shared', default=True, description='Enables the build of shared libraries')
|
||||
variant('shared', default=True,
|
||||
description='Enables the build of shared libraries')
|
||||
variant('mpi', default=False, description='Activates MPI support')
|
||||
|
||||
# The function pdlamch10 does not set the return variable. This is fixed upstream
|
||||
# The function pdlamch10 does not set the return variable.
|
||||
# This is fixed upstream
|
||||
# see https://github.com/opencollab/arpack-ng/issues/34
|
||||
patch('pdlamch10.patch', when='@3.3:')
|
||||
patch('pdlamch10.patch', when='@3.3.0')
|
||||
|
||||
patch('make_install.patch', when='@3.4.0')
|
||||
patch('parpack_cmake.patch', when='@3.4.0')
|
||||
|
||||
depends_on('blas')
|
||||
depends_on('lapack')
|
||||
depends_on('automake')
|
||||
depends_on('autoconf')
|
||||
depends_on('libtool@2.4.2:')
|
||||
depends_on('automake', when='@3.3.0', type='build')
|
||||
depends_on('autoconf', when='@3.3.0', type='build')
|
||||
depends_on('libtool@2.4.2:', when='@3.3.0', type='build')
|
||||
depends_on('cmake@2.8.6:', when='@3.4.0:', type='build')
|
||||
|
||||
depends_on('mpi', when='+mpi')
|
||||
|
||||
@when('@3.4.0:')
|
||||
def install(self, spec, prefix):
|
||||
|
||||
options = ['-DEXAMPLES=ON']
|
||||
options.extend(std_cmake_args)
|
||||
options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
|
||||
|
||||
# Make sure we use Spack's blas/lapack:
|
||||
options.extend([
|
||||
'-DLAPACK_FOUND=true',
|
||||
'-DLAPACK_INCLUDE_DIRS=%s' % spec['lapack'].prefix.include,
|
||||
'-DLAPACK_LIBRARIES=%s' % (
|
||||
spec['lapack'].lapack_shared_lib if '+shared' in spec else
|
||||
spec['lapack'].lapack_static_lib),
|
||||
'-DBLAS_FOUND=true',
|
||||
'-DBLAS_INCLUDE_DIRS=%s' % spec['blas'].prefix.include,
|
||||
'-DBLAS_LIBRARIES=%s' % (
|
||||
spec['blas'].blas_shared_lib if '+shared' in spec else
|
||||
spec['blas'].blas_static_lib)
|
||||
])
|
||||
|
||||
if '+mpi' in spec:
|
||||
options.append('-DMPI=ON')
|
||||
|
||||
# TODO: -DINTERFACE64=ON
|
||||
|
||||
if '+shared' in spec:
|
||||
options.append('-DBUILD_SHARED_LIBS=ON')
|
||||
|
||||
cmake('.', *options)
|
||||
make()
|
||||
if self.run_tests:
|
||||
make('test')
|
||||
make('install')
|
||||
|
||||
@when('@3.3.0')
|
||||
def install(self, spec, prefix):
|
||||
# Apparently autotools are not bootstrapped
|
||||
# TODO: switch to use the CMake build in the next version
|
||||
# rather than bootstrapping.
|
||||
which('libtoolize')()
|
||||
bootstrap = Executable('./bootstrap')
|
||||
|
||||
@@ -83,13 +126,26 @@ def install(self, spec, prefix):
|
||||
if '+mpi' in spec:
|
||||
options.extend([
|
||||
'--enable-mpi',
|
||||
'F77=mpif77' #FIXME: avoid hardcoding MPI wrapper names
|
||||
'F77=%s' % spec['mpi'].mpif77
|
||||
])
|
||||
|
||||
if '~shared' in spec:
|
||||
options.append('--enable-shared=no')
|
||||
if '+shared' in spec:
|
||||
options.extend([
|
||||
'--with-blas=%s' % to_link_flags(
|
||||
spec['blas'].blas_shared_lib),
|
||||
'--with-lapack=%s' % to_link_flags(
|
||||
spec['lapack'].lapack_shared_lib)
|
||||
])
|
||||
else:
|
||||
options.extend([
|
||||
'--with-blas=%s' % spec['blas'].blas_static_lib,
|
||||
'--with-lapack=%s' % spec['lapack'].lapack_static_lib,
|
||||
'--enable-shared=no'
|
||||
])
|
||||
|
||||
bootstrap()
|
||||
configure(*options)
|
||||
make()
|
||||
if self.run_tests:
|
||||
make('check')
|
||||
make('install')
|
||||
|
@@ -0,0 +1,18 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 607d221..345b7fc 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -113,11 +113,12 @@ set_target_properties(arpack PROPERTIES OUTPUT_NAME arpack${LIBSUFFIX})
|
||||
|
||||
if (MPI)
|
||||
# add_library(parpack SHARED
|
||||
- add_library(parpack
|
||||
+ add_library(parpack
|
||||
${parpacksrc_STAT_SRCS}
|
||||
${parpackutil_STAT_SRCS})
|
||||
|
||||
target_link_libraries(parpack ${MPI_Fortran_LIBRARIES})
|
||||
+ target_link_libraries(parpack arpack)
|
||||
set_target_properties(parpack PROPERTIES OUTPUT_NAME parpack${LIBSUFFIX})
|
||||
endif ()
|
||||
|
@@ -24,12 +24,12 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import os
|
||||
import shutil
|
||||
|
||||
|
||||
class Arpack(Package):
|
||||
"""A collection of Fortran77 subroutines designed to solve large scale
|
||||
eigenvalue problems.
|
||||
"""
|
||||
eigenvalue problems."""
|
||||
|
||||
homepage = "http://www.caam.rice.edu/software/ARPACK/"
|
||||
url = "http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz"
|
||||
|
||||
@@ -39,27 +39,35 @@ class Arpack(Package):
|
||||
depends_on('lapack')
|
||||
|
||||
def patch(self):
|
||||
# Filter the cray makefile to make a spack one.
|
||||
shutil.move('ARMAKES/ARmake.CRAY', 'ARmake.inc')
|
||||
makefile = FileFilter('ARmake.inc')
|
||||
|
||||
# Be sure to use Spack F77 wrapper
|
||||
makefile.filter('^FC.*', 'FC = f77')
|
||||
makefile.filter('^FFLAGS.*', 'FFLAGS = -O2 -g')
|
||||
# Section 1: Paths and Libraries
|
||||
|
||||
# Set up some variables.
|
||||
makefile.filter('^PLAT.*', 'PLAT = ')
|
||||
makefile.filter('^home.*', 'home = %s' % os.getcwd())
|
||||
makefile.filter('^BLASdir.*', 'BLASdir = %s' % self.spec['blas'].prefix)
|
||||
makefile.filter('^LAPACKdir.*', 'LAPACKdir = %s' % self.spec['lapack'].prefix)
|
||||
# Change the build directory
|
||||
makefile.filter('^home.*', 'home = %s' % os.getcwd())
|
||||
|
||||
# build the library in our own prefix.
|
||||
makefile.filter('^ARPACKLIB.*', 'ARPACKLIB = %s/libarpack.a' % os.getcwd())
|
||||
# Use external BLAS/LAPACK
|
||||
makefile.filter('^BLASdir.*',
|
||||
'BLASdir = %s' % self.spec['blas'].prefix)
|
||||
makefile.filter('^LAPACKdir.*',
|
||||
'LAPACKdir = %s' % self.spec['lapack'].prefix)
|
||||
|
||||
# Do not include the platform in the library name
|
||||
makefile.filter('^PLAT.*', 'PLAT = ')
|
||||
makefile.filter('^ARPACKLIB.*', 'ARPACKLIB = $(home)/libarpack.a')
|
||||
|
||||
# Section 2: Compilers
|
||||
|
||||
# Be sure to use the Spack compiler wrapper
|
||||
makefile.filter('^FC.*', 'FC = {0}'.format(os.environ['F77']))
|
||||
makefile.filter('^FFLAGS.*', 'FFLAGS = -O2 -g -fPIC')
|
||||
|
||||
if not which('ranlib'):
|
||||
makefile.filter('^RANLIB.*', 'RANLIB = touch')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
with working_dir('SRC'):
|
||||
make('all')
|
||||
|
||||
mkdirp(prefix.lib)
|
||||
mkdir(prefix.lib)
|
||||
install('libarpack.a', prefix.lib)
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Asciidoc(Package):
|
||||
""" A presentable text document format for writing articles, UNIX man
|
||||
pages and other small to medium sized documents."""
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Atk(Package):
|
||||
"""ATK provides the set of accessibility interfaces that are
|
||||
implemented by other toolkits and applications. Using the ATK
|
||||
@@ -32,9 +33,16 @@ class Atk(Package):
|
||||
homepage = "https://developer.gnome.org/atk/"
|
||||
url = "http://ftp.gnome.org/pub/gnome/sources/atk/2.14/atk-2.14.0.tar.xz"
|
||||
|
||||
version('2.20.0', '5187b0972f4d3905f285540b31395e20')
|
||||
version('2.14.0', 'ecb7ca8469a5650581b1227d78051b8b')
|
||||
|
||||
depends_on("glib")
|
||||
depends_on('glib')
|
||||
depends_on('pkg-config', type='build')
|
||||
|
||||
def url_for_version(self, version):
|
||||
"""Handle atk's version-based custom URLs."""
|
||||
url = 'http://ftp.gnome.org/pub/gnome/sources/atk'
|
||||
return 'url+/%s/atk-%s.tar.xz' % (version.up_to(2), version)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
|
@@ -23,20 +23,24 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
from spack.package_test import *
|
||||
from spack.util.executable import Executable
|
||||
import os.path
|
||||
|
||||
|
||||
class Atlas(Package):
|
||||
"""
|
||||
Automatically Tuned Linear Algebra Software, generic shared ATLAS is an approach for the automatic generation and
|
||||
optimization of numerical software. Currently ATLAS supplies optimized versions for the complete set of linear
|
||||
algebra kernels known as the Basic Linear Algebra Subroutines (BLAS), and a subset of the linear algebra routines
|
||||
in the LAPACK library.
|
||||
"""Automatically Tuned Linear Algebra Software, generic shared ATLAS is an
|
||||
approach for the automatic generation and optimization of numerical
|
||||
software. Currently ATLAS supplies optimized versions for the complete set
|
||||
of linear algebra kernels known as the Basic Linear Algebra Subroutines
|
||||
(BLAS), and a subset of the linear algebra routines in the LAPACK library.
|
||||
"""
|
||||
homepage = "http://math-atlas.sourceforge.net/"
|
||||
|
||||
version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da',
|
||||
url='http://downloads.sourceforge.net/project/math-atlas/Stable/3.10.2/atlas3.10.2.tar.bz2', preferred=True)
|
||||
url='https://sourceforge.net/projects/math-atlas/files/Stable/3.10.2/atlas3.10.2.tar.bz2', preferred=True)
|
||||
# not all packages (e.g. Trilinos@12.6.3) stopped using deprecated in 3.6.0
|
||||
# Lapack routines. Stick with 3.5.0 until this is fixed.
|
||||
resource(name='lapack',
|
||||
url='http://www.netlib.org/lapack/lapack-3.5.0.tgz',
|
||||
md5='b1d3e3e425b2e44a06760ff173104bdf',
|
||||
@@ -44,7 +48,7 @@ class Atlas(Package):
|
||||
when='@3:')
|
||||
|
||||
version('3.11.34', '0b6c5389c095c4c8785fd0f724ec6825',
|
||||
url='http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.11.34/atlas3.11.34.tar.bz2/download')
|
||||
url='http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.11.34/atlas3.11.34.tar.bz2')
|
||||
|
||||
variant('shared', default=True, description='Builds shared library')
|
||||
|
||||
@@ -66,9 +70,24 @@ def install(self, spec, prefix):
|
||||
|
||||
options = []
|
||||
if '+shared' in spec:
|
||||
options.append('--shared')
|
||||
options.extend([
|
||||
'--shared'
|
||||
])
|
||||
# TODO: for non GNU add '-Fa', 'alg', '-fPIC' ?
|
||||
|
||||
# Lapack resource
|
||||
# configure for 64-bit build
|
||||
options.extend([
|
||||
'-b', '64'
|
||||
])
|
||||
|
||||
# set compilers:
|
||||
options.extend([
|
||||
'-C', 'ic', spack_cc,
|
||||
'-C', 'if', spack_f77
|
||||
])
|
||||
|
||||
# Lapack resource to provide full lapack build. Note that
|
||||
# ATLAS only provides a few LAPACK routines natively.
|
||||
lapack_stage = self.stage[1]
|
||||
lapack_tarfile = os.path.basename(lapack_stage.fetcher.url)
|
||||
lapack_tarfile_path = join_path(lapack_stage.path, lapack_tarfile)
|
||||
@@ -81,4 +100,35 @@ def install(self, spec, prefix):
|
||||
make('check')
|
||||
make('ptcheck')
|
||||
make('time')
|
||||
if '+shared' in spec:
|
||||
with working_dir('lib'):
|
||||
make('shared_all')
|
||||
|
||||
make("install")
|
||||
self.install_test()
|
||||
|
||||
def setup_dependent_package(self, module, dspec):
|
||||
# libsatlas.[so,dylib,dll ] contains all serial APIs (serial lapack,
|
||||
# serial BLAS), and all ATLAS symbols needed to support them. Whereas
|
||||
# libtatlas.[so,dylib,dll ] is parallel (multithreaded) version.
|
||||
name = 'libsatlas.%s' % dso_suffix
|
||||
libdir = find_library_path(name,
|
||||
self.prefix.lib64,
|
||||
self.prefix.lib)
|
||||
|
||||
if '+shared' in self.spec:
|
||||
self.spec.blas_shared_lib = join_path(libdir, name)
|
||||
self.spec.lapack_shared_lib = self.spec.blas_shared_lib
|
||||
|
||||
def install_test(self):
|
||||
source_file = join_path(os.path.dirname(self.module.__file__),
|
||||
'test_cblas_dgemm.c')
|
||||
blessed_file = join_path(os.path.dirname(self.module.__file__),
|
||||
'test_cblas_dgemm.output')
|
||||
|
||||
include_flags = ["-I%s" % join_path(self.spec.prefix, "include")]
|
||||
link_flags = ["-L%s" % join_path(self.spec.prefix, "lib"),
|
||||
"-lsatlas"]
|
||||
|
||||
output = compile_c_and_execute(source_file, include_flags, link_flags)
|
||||
compare_output_file(output, blessed_file)
|
||||
|
49
var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c
Normal file
49
var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c
Normal file
@@ -0,0 +1,49 @@
|
||||
#include <cblas.h>
|
||||
#include <stdio.h>
|
||||
|
||||
double m[] = {
|
||||
3, 1, 3,
|
||||
1, 5, 9,
|
||||
2, 6, 5
|
||||
};
|
||||
|
||||
double x[] = {
|
||||
-1, 3, -3
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void dgesv_(int *n, int *nrhs, double *a, int *lda,
|
||||
int *ipivot, double *b, int *ldb, int *info);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(void) {
|
||||
int i;
|
||||
// blas:
|
||||
double A[6] = {1.0, 2.0, 1.0, -3.0, 4.0, -1.0};
|
||||
double B[6] = {1.0, 2.0, 1.0, -3.0, 4.0, -1.0};
|
||||
double C[9] = {.5, .5, .5, .5, .5, .5, .5, .5, .5};
|
||||
cblas_dgemm(CblasColMajor, CblasNoTrans, CblasTrans,
|
||||
3, 3, 2, 1, A, 3, B, 3, 2, C, 3);
|
||||
for (i = 0; i < 9; i++)
|
||||
printf("%f\n", C[i]);
|
||||
|
||||
// lapack:
|
||||
int ipiv[3];
|
||||
int j;
|
||||
int info;
|
||||
int n = 1;
|
||||
int nrhs = 1;
|
||||
int lda = 3;
|
||||
int ldb = 3;
|
||||
dgesv_(&n,&nrhs, &m[0], &lda, ipiv, &x[0], &ldb, &info);
|
||||
for (i=0; i<3; ++i)
|
||||
printf("%5.1f\n", x[i]);
|
||||
|
||||
return 0;
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
11.000000
|
||||
-9.000000
|
||||
5.000000
|
||||
-9.000000
|
||||
21.000000
|
||||
-1.000000
|
||||
5.000000
|
||||
-1.000000
|
||||
3.000000
|
||||
-0.3
|
||||
3.0
|
||||
-3.0
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Atop(Package):
|
||||
"""Atop is an ASCII full-screen performance monitor for Linux"""
|
||||
homepage = "http://www.atoptool.nl/index.php"
|
||||
@@ -37,4 +38,4 @@ def install(self, spec, prefix):
|
||||
install("atop", join_path(prefix.bin, "atop"))
|
||||
mkdirp(join_path(prefix.man, "man1"))
|
||||
install(join_path("man", "atop.1"),
|
||||
join_path(prefix.man, "man1", "atop.1"))
|
||||
join_path(prefix.man, "man1", "atop.1"))
|
||||
|
@@ -24,18 +24,36 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Autoconf(Package):
|
||||
"""Autoconf -- system configuration part of autotools"""
|
||||
homepage = "https://www.gnu.org/software/autoconf/"
|
||||
url = "http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz"
|
||||
"""
|
||||
Autoconf -- system configuration part of autotools
|
||||
"""
|
||||
homepage = 'https://www.gnu.org/software/autoconf/'
|
||||
url = 'http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz'
|
||||
|
||||
version('2.69', '82d05e03b93e45f5a39b828dc9c6c29b')
|
||||
version('2.62', '6c1f3b3734999035d77da5024aab4fbd')
|
||||
|
||||
depends_on("m4")
|
||||
depends_on('m4', type='build')
|
||||
|
||||
def _make_executable(self, name):
|
||||
return Executable(join_path(self.prefix.bin, name))
|
||||
|
||||
def setup_dependent_package(self, module, dependent_spec):
|
||||
# Autoconf is very likely to be a build dependency,
|
||||
# so we add the tools it provides to the dependent module
|
||||
executables = ['autoconf',
|
||||
'autoheader',
|
||||
'autom4te',
|
||||
'autoreconf',
|
||||
'autoscan',
|
||||
'autoupdate',
|
||||
'ifnames']
|
||||
for name in executables:
|
||||
setattr(module, name, self._make_executable(name))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Automaded(Package):
|
||||
"""AutomaDeD (Automata-based Debugging for Dissimilar parallel
|
||||
tasks) is a tool for automatic diagnosis of performance and
|
||||
@@ -44,6 +45,7 @@ class Automaded(Package):
|
||||
depends_on('mpi')
|
||||
depends_on('boost')
|
||||
depends_on('callpath')
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake("-DSTATE_TRACKER_WITH_CALLPATH=ON", *std_cmake_args)
|
||||
|
@@ -24,10 +24,13 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Automake(Package):
|
||||
"""Automake -- make file builder part of autotools"""
|
||||
homepage = "http://www.gnu.org/software/automake/"
|
||||
url = "http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz"
|
||||
"""
|
||||
Automake -- make file builder part of autotools
|
||||
"""
|
||||
homepage = 'http://www.gnu.org/software/automake/'
|
||||
url = 'http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz'
|
||||
|
||||
version('1.15', '716946a105ca228ab545fc37a70df3a3')
|
||||
version('1.14.1', 'd052a3e884631b9c7892f2efce542d75')
|
||||
@@ -35,8 +38,17 @@ class Automake(Package):
|
||||
|
||||
depends_on('autoconf')
|
||||
|
||||
def _make_executable(self, name):
|
||||
return Executable(join_path(self.prefix.bin, name))
|
||||
|
||||
def setup_dependent_package(self, module, dependent_spec):
|
||||
# Automake is very likely to be a build dependency,
|
||||
# so we add the tools it provides to the dependent module
|
||||
executables = ['aclocal', 'automake']
|
||||
for name in executables:
|
||||
setattr(module, name, self._make_executable(name))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bash(Package):
|
||||
"""The GNU Project's Bourne Again SHell."""
|
||||
|
||||
|
@@ -24,18 +24,22 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bbcp(Package):
|
||||
"""Securely and quickly copy data from source to target"""
|
||||
homepage = "http://www.slac.stanford.edu/~abh/bbcp/"
|
||||
|
||||
version('git', git='http://www.slac.stanford.edu/~abh/bbcp/bbcp.git', branch="master")
|
||||
version('git', git='http://www.slac.stanford.edu/~abh/bbcp/bbcp.git',
|
||||
branch="master")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cd("src")
|
||||
make()
|
||||
# BBCP wants to build the executable in a directory whose name depends on the system type
|
||||
# BBCP wants to build the executable in a directory whose name depends
|
||||
# on the system type
|
||||
makesname = Executable("../MakeSname")
|
||||
bbcp_executable_path = "../bin/%s/bbcp" % makesname(output=str).rstrip("\n")
|
||||
bbcp_executable_path = "../bin/%s/bbcp" % makesname(
|
||||
output=str).rstrip("\n")
|
||||
destination_path = "%s/bin/" % prefix
|
||||
mkdirp(destination_path)
|
||||
install(bbcp_executable_path, destination_path)
|
||||
|
43
var/spack/repos/builtin/packages/bcftools/package.py
Normal file
43
var/spack/repos/builtin/packages/bcftools/package.py
Normal file
@@ -0,0 +1,43 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bcftools(Package):
|
||||
"""BCFtools is a set of utilities that manipulate variant calls in the
|
||||
Variant Call Format (VCF) and its binary counterpart BCF. All
|
||||
commands work transparently with both VCFs and BCFs, both
|
||||
uncompressed and BGZF-compressed."""
|
||||
|
||||
homepage = "http://samtools.github.io/bcftools/"
|
||||
url = "https://github.com/samtools/bcftools/releases/download/1.3.1/bcftools-1.3.1.tar.bz2"
|
||||
|
||||
version('1.3.1', '575001e9fca37cab0c7a7287ad4b1cdb')
|
||||
|
||||
depends_on('zlib')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make("prefix=%s" % prefix, "all")
|
||||
make("prefix=%s" % prefix, "install")
|
53
var/spack/repos/builtin/packages/bdw-gc/package.py
Normal file
53
var/spack/repos/builtin/packages/bdw-gc/package.py
Normal file
@@ -0,0 +1,53 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class BdwGc(Package):
|
||||
"""The Boehm-Demers-Weiser conservative garbage collector is a garbage
|
||||
collecting replacement for C malloc or C++ new."""
|
||||
|
||||
homepage = "http://www.hboehm.info/gc/"
|
||||
url = "http://www.hboehm.info/gc/gc_source/gc-7.4.4.tar.gz"
|
||||
|
||||
version('7.4.4', '96d18b0448a841c88d56e4ab3d180297')
|
||||
|
||||
variant('libatomic-ops', default=True,
|
||||
description='Use external libatomic-ops')
|
||||
|
||||
depends_on('libatomic-ops', when='+libatomic-ops')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
config_args = [
|
||||
'--prefix={0}'.format(prefix),
|
||||
'--with-libatomic-ops={0}'.format(
|
||||
'yes' if '+libatomic-ops' in spec else 'no')
|
||||
]
|
||||
|
||||
configure(*config_args)
|
||||
|
||||
make()
|
||||
make('check')
|
||||
make('install')
|
@@ -24,14 +24,16 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bear(Package):
|
||||
"""Bear is a tool that generates a compilation database for clang tooling from non-cmake build systems."""
|
||||
"""Bear is a tool that generates a compilation database for clang tooling
|
||||
from non-cmake build systems."""
|
||||
homepage = "https://github.com/rizsotto/Bear"
|
||||
url = "https://github.com/rizsotto/Bear/archive/2.0.4.tar.gz"
|
||||
|
||||
version('2.0.4', 'fd8afb5e8e18f8737ba06f90bd77d011')
|
||||
|
||||
depends_on("cmake")
|
||||
depends_on('cmake', type='build')
|
||||
depends_on("python")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
50
var/spack/repos/builtin/packages/bertini/package.py
Normal file
50
var/spack/repos/builtin/packages/bertini/package.py
Normal file
@@ -0,0 +1,50 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bertini(Package):
|
||||
"""Bertini is a general-purpose solver, written in C, that was created
|
||||
for research about polynomial continuation. It solves for the numerical
|
||||
solution of systems of polynomial equations using homotopy continuation."""
|
||||
|
||||
homepage = "https://bertini.nd.edu/"
|
||||
url = "https://bertini.nd.edu/BertiniSource_v1.5.tar.gz"
|
||||
|
||||
version('1.5', 'e3f6cc6e7f9a0cf1d73185e8671af707')
|
||||
|
||||
variant('mpi', default=True, description='Compile in parallel')
|
||||
|
||||
depends_on('flex', type='build')
|
||||
depends_on('bison', type='build')
|
||||
depends_on('gmp')
|
||||
depends_on('mpfr')
|
||||
depends_on('mpi', when='+mpi')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure('--prefix=%s' % prefix)
|
||||
|
||||
make()
|
||||
make("install")
|
@@ -25,10 +25,11 @@
|
||||
from spack import *
|
||||
from glob import glob
|
||||
|
||||
|
||||
class Bib2xhtml(Package):
|
||||
"""bib2xhtml is a program that converts BibTeX files into HTML."""
|
||||
homepage = "http://www.spinellis.gr/sw/textproc/bib2xhtml/"
|
||||
url='http://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-15-gf506.tar.gz'
|
||||
url = 'http://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-15-gf506.tar.gz'
|
||||
|
||||
version('3.0-15-gf506', 'a26ba02fe0053bbbf2277bdf0acf8645')
|
||||
|
||||
|
@@ -24,28 +24,33 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Binutils(Package):
|
||||
"""GNU binutils, which contain the linker, assembler, objdump and others"""
|
||||
|
||||
homepage = "http://www.gnu.org/software/binutils/"
|
||||
url = "https://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2"
|
||||
|
||||
url="https://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2"
|
||||
|
||||
# 2.26 is incompatible with py-pillow build for some reason.
|
||||
version('2.26', '64146a0faa3b411ba774f47d41de239f')
|
||||
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66')
|
||||
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66', preferred=True)
|
||||
version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b')
|
||||
version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e')
|
||||
version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764')
|
||||
|
||||
depends_on('m4')
|
||||
depends_on('flex')
|
||||
depends_on('bison')
|
||||
depends_on('m4', type='build')
|
||||
depends_on('flex', type='build')
|
||||
depends_on('bison', type='build')
|
||||
|
||||
# Add a patch that creates binutils libiberty_pic.a which is preferred by OpenSpeedShop and cbtf-krell
|
||||
variant('krellpatch', default=False, description="build with openspeedshop based patch.")
|
||||
# Add a patch that creates binutils libiberty_pic.a which is preferred by
|
||||
# OpenSpeedShop and cbtf-krell
|
||||
variant('krellpatch', default=False,
|
||||
description="build with openspeedshop based patch.")
|
||||
variant('gold', default=True, description="build the gold linker")
|
||||
patch('binutilskrell-2.24.patch', when='@2.24+krellpatch')
|
||||
|
||||
patch('cr16.patch')
|
||||
patch('update_symbol-2.26.patch', when='@2.26')
|
||||
|
||||
variant('libiberty', default=False, description='Also install libiberty.')
|
||||
|
||||
|
@@ -0,0 +1,104 @@
|
||||
From 544ddf9322b1b83982e5cb84a54d084ee7e718ea Mon Sep 17 00:00:00 2001
|
||||
From: H.J. Lu <hjl.tools@gmail.com>
|
||||
Date: Wed, 24 Feb 2016 15:13:35 -0800
|
||||
Subject: [PATCH] Update symbol version for symbol from linker script
|
||||
|
||||
We need to update symbol version for symbols from linker script.
|
||||
|
||||
Backport from master
|
||||
|
||||
bfd/
|
||||
|
||||
PR ld/19698
|
||||
* elflink.c (bfd_elf_record_link_assignment): Set versioned if
|
||||
symbol version is unknown.
|
||||
|
||||
ld/
|
||||
|
||||
PR ld/19698
|
||||
* testsuite/ld-elf/pr19698.d: New file.
|
||||
* testsuite/ld-elf/pr19698.s: Likewise.
|
||||
* testsuite/ld-elf/pr19698.t: Likewise.
|
||||
---
|
||||
bfd/ChangeLog | 9 +++++++++
|
||||
bfd/elflink.c | 13 +++++++++++++
|
||||
ld/ChangeLog | 10 ++++++++++
|
||||
ld/testsuite/ld-elf/pr19698.d | 10 ++++++++++
|
||||
ld/testsuite/ld-elf/pr19698.s | 5 +++++
|
||||
ld/testsuite/ld-elf/pr19698.t | 11 +++++++++++
|
||||
6 files changed, 58 insertions(+), 0 deletions(-)
|
||||
create mode 100644 ld/testsuite/ld-elf/pr19698.d
|
||||
create mode 100644 ld/testsuite/ld-elf/pr19698.s
|
||||
create mode 100644 ld/testsuite/ld-elf/pr19698.t
|
||||
|
||||
diff --git a/bfd/elflink.c b/bfd/elflink.c
|
||||
index ae8d148..8fcaadd 100644
|
||||
--- a/bfd/elflink.c
|
||||
+++ b/bfd/elflink.c
|
||||
@@ -555,6 +555,19 @@ bfd_elf_record_link_assignment (bfd *output_bfd,
|
||||
if (h == NULL)
|
||||
return provide;
|
||||
|
||||
+ if (h->versioned == unknown)
|
||||
+ {
|
||||
+ /* Set versioned if symbol version is unknown. */
|
||||
+ char *version = strrchr (name, ELF_VER_CHR);
|
||||
+ if (version)
|
||||
+ {
|
||||
+ if (version > name && version[-1] != ELF_VER_CHR)
|
||||
+ h->versioned = versioned_hidden;
|
||||
+ else
|
||||
+ h->versioned = versioned;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
switch (h->root.type)
|
||||
{
|
||||
case bfd_link_hash_defined:
|
||||
diff --git a/ld/testsuite/ld-elf/pr19698.d b/ld/testsuite/ld-elf/pr19698.d
|
||||
new file mode 100644
|
||||
index 0000000..a39f67a
|
||||
--- /dev/null
|
||||
+++ b/ld/testsuite/ld-elf/pr19698.d
|
||||
@@ -0,0 +1,10 @@
|
||||
+#ld: -shared $srcdir/$subdir/pr19698.t
|
||||
+#readelf : --dyn-syms --wide
|
||||
+#target: *-*-linux* *-*-gnu* *-*-solaris*
|
||||
+
|
||||
+Symbol table '\.dynsym' contains [0-9]+ entries:
|
||||
+#...
|
||||
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +foo@VERS.1
|
||||
+#...
|
||||
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +foo@@VERS.2
|
||||
+#pass
|
||||
diff --git a/ld/testsuite/ld-elf/pr19698.s b/ld/testsuite/ld-elf/pr19698.s
|
||||
new file mode 100644
|
||||
index 0000000..875dca4
|
||||
--- /dev/null
|
||||
+++ b/ld/testsuite/ld-elf/pr19698.s
|
||||
@@ -0,0 +1,5 @@
|
||||
+ .text
|
||||
+ .globl foo
|
||||
+ .type foo, %function
|
||||
+foo:
|
||||
+ .byte 0
|
||||
diff --git a/ld/testsuite/ld-elf/pr19698.t b/ld/testsuite/ld-elf/pr19698.t
|
||||
new file mode 100644
|
||||
index 0000000..09d9125
|
||||
--- /dev/null
|
||||
+++ b/ld/testsuite/ld-elf/pr19698.t
|
||||
@@ -0,0 +1,11 @@
|
||||
+"foo@VERS.1" = foo;
|
||||
+
|
||||
+VERSION {
|
||||
+VERS.2 {
|
||||
+ global:
|
||||
+ foo;
|
||||
+};
|
||||
+
|
||||
+VERS.1 {
|
||||
+};
|
||||
+}
|
||||
--
|
||||
1.7.1
|
||||
|
@@ -24,9 +24,10 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bison(Package):
|
||||
"""Bison is a general-purpose parser generator that converts
|
||||
an annotated context-free grammar into a deterministic LR or
|
||||
"""Bison is a general-purpose parser generator that converts
|
||||
an annotated context-free grammar into a deterministic LR or
|
||||
generalized LR (GLR) parser employing LALR(1) parser tables."""
|
||||
|
||||
homepage = "http://www.gnu.org/software/bison/"
|
||||
@@ -34,7 +35,7 @@ class Bison(Package):
|
||||
|
||||
version('3.0.4', 'a586e11cd4aff49c3ff6d3b6a4c9ccf8')
|
||||
|
||||
depends_on("m4")
|
||||
depends_on("m4", type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
|
@@ -24,6 +24,7 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Blitz(Package):
|
||||
"""N-dimensional arrays for C++"""
|
||||
homepage = "http://github.com/blitzpp/blitz"
|
||||
|
@@ -25,9 +25,8 @@
|
||||
from spack import *
|
||||
import spack
|
||||
import sys
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
class Boost(Package):
|
||||
"""Boost provides free peer-reviewed portable C++ source
|
||||
@@ -75,23 +74,24 @@ class Boost(Package):
|
||||
version('1.34.0', 'ed5b9291ffad776f8757a916e1726ad0')
|
||||
|
||||
default_install_libs = set(['atomic',
|
||||
'chrono',
|
||||
'date_time',
|
||||
'filesystem',
|
||||
'graph',
|
||||
'iostreams',
|
||||
'locale',
|
||||
'log',
|
||||
'math',
|
||||
'program_options',
|
||||
'random',
|
||||
'regex',
|
||||
'serialization',
|
||||
'signals',
|
||||
'system',
|
||||
'test',
|
||||
'thread',
|
||||
'wave'])
|
||||
'chrono',
|
||||
'date_time',
|
||||
'filesystem',
|
||||
'graph',
|
||||
'iostreams',
|
||||
'locale',
|
||||
'log',
|
||||
'math',
|
||||
'program_options',
|
||||
'random',
|
||||
'regex',
|
||||
'serialization',
|
||||
'signals',
|
||||
'system',
|
||||
'test',
|
||||
'thread',
|
||||
'timer',
|
||||
'wave'])
|
||||
|
||||
# mpi/python are not installed by default because they pull in many
|
||||
# dependencies and/or because there is a great deal of customization
|
||||
@@ -102,13 +102,19 @@ class Boost(Package):
|
||||
|
||||
for lib in all_libs:
|
||||
variant(lib, default=(lib not in default_noinstall_libs),
|
||||
description="Compile with {0} library".format(lib))
|
||||
description="Compile with {0} library".format(lib))
|
||||
|
||||
variant('debug', default=False, description='Switch to the debug version of Boost')
|
||||
variant('shared', default=True, description="Additionally build shared libraries")
|
||||
variant('multithreaded', default=True, description="Build multi-threaded versions of libraries")
|
||||
variant('singlethreaded', default=True, description="Build single-threaded versions of libraries")
|
||||
variant('icu_support', default=False, description="Include ICU support (for regex/locale libraries)")
|
||||
variant('debug', default=False,
|
||||
description='Switch to the debug version of Boost')
|
||||
variant('shared', default=True,
|
||||
description="Additionally build shared libraries")
|
||||
variant('multithreaded', default=True,
|
||||
description="Build multi-threaded versions of libraries")
|
||||
variant('singlethreaded', default=True,
|
||||
description="Build single-threaded versions of libraries")
|
||||
variant('icu_support', default=False,
|
||||
description="Include ICU support (for regex/locale libraries)")
|
||||
variant('graph', default=False, description="Build the Boost Graph library")
|
||||
|
||||
depends_on('icu', when='+icu_support')
|
||||
depends_on('python', when='+python')
|
||||
@@ -120,15 +126,17 @@ class Boost(Package):
|
||||
patch('boost_11856.patch', when='@1.60.0%gcc@4.4.7')
|
||||
|
||||
def url_for_version(self, version):
|
||||
"""Handle Boost's weird URLs, which write the version two different ways."""
|
||||
"""
|
||||
Handle Boost's weird URLs,
|
||||
which write the version two different ways.
|
||||
"""
|
||||
parts = [str(p) for p in Version(version)]
|
||||
dots = ".".join(parts)
|
||||
underscores = "_".join(parts)
|
||||
return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (
|
||||
dots, underscores)
|
||||
return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (dots, underscores)
|
||||
|
||||
def determine_toolset(self, spec):
|
||||
if spec.satisfies("arch=darwin-x86_64"):
|
||||
if spec.satisfies("platform=darwin"):
|
||||
return 'darwin'
|
||||
|
||||
toolsets = {'g++': 'gcc',
|
||||
@@ -149,20 +157,20 @@ def determine_bootstrap_options(self, spec, withLibs, options):
|
||||
|
||||
if '+python' in spec:
|
||||
options.append('--with-python=%s' %
|
||||
join_path(spec['python'].prefix.bin, 'python'))
|
||||
join_path(spec['python'].prefix.bin, 'python'))
|
||||
|
||||
with open('user-config.jam', 'w') as f:
|
||||
compiler_wrapper = join_path(spack.build_env_path, 'c++')
|
||||
f.write("using {0} : : {1} ;\n".format(boostToolsetId,
|
||||
compiler_wrapper))
|
||||
compiler_wrapper))
|
||||
|
||||
if '+mpi' in spec:
|
||||
f.write('using mpi : %s ;\n' %
|
||||
join_path(spec['mpi'].prefix.bin, 'mpicxx'))
|
||||
join_path(spec['mpi'].prefix.bin, 'mpicxx'))
|
||||
if '+python' in spec:
|
||||
f.write('using python : %s : %s ;\n' %
|
||||
(spec['python'].version,
|
||||
join_path(spec['python'].prefix.bin, 'python')))
|
||||
(spec['python'].version,
|
||||
join_path(spec['python'].prefix.bin, 'python')))
|
||||
|
||||
def determine_b2_options(self, spec, options):
|
||||
if '+debug' in spec:
|
||||
@@ -178,8 +186,7 @@ def determine_b2_options(self, spec, options):
|
||||
'-s', 'BZIP2_INCLUDE=%s' % spec['bzip2'].prefix.include,
|
||||
'-s', 'BZIP2_LIBPATH=%s' % spec['bzip2'].prefix.lib,
|
||||
'-s', 'ZLIB_INCLUDE=%s' % spec['zlib'].prefix.include,
|
||||
'-s', 'ZLIB_LIBPATH=%s' % spec['zlib'].prefix.lib,
|
||||
])
|
||||
'-s', 'ZLIB_LIBPATH=%s' % spec['zlib'].prefix.lib])
|
||||
|
||||
linkTypes = ['static']
|
||||
if '+shared' in spec:
|
||||
@@ -191,7 +198,8 @@ def determine_b2_options(self, spec, options):
|
||||
if '+singlethreaded' in spec:
|
||||
threadingOpts.append('single')
|
||||
if not threadingOpts:
|
||||
raise RuntimeError("At least one of {singlethreaded, multithreaded} must be enabled")
|
||||
raise RuntimeError("""At least one of {singlethreaded,
|
||||
multithreaded} must be enabled""")
|
||||
|
||||
options.extend([
|
||||
'toolset=%s' % self.determine_toolset(spec),
|
||||
@@ -202,9 +210,9 @@ def determine_b2_options(self, spec, options):
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# On Darwin, Boost expects the Darwin libtool. However, one of the
|
||||
# dependencies may have pulled in Spack's GNU libtool, and these two are
|
||||
# not compatible. We thus create a symlink to Darwin's libtool and add
|
||||
# it at the beginning of PATH.
|
||||
# dependencies may have pulled in Spack's GNU libtool, and these two
|
||||
# are not compatible. We thus create a symlink to Darwin's libtool
|
||||
# and add it at the beginning of PATH.
|
||||
if sys.platform == 'darwin':
|
||||
newdir = os.path.abspath('darwin-libtool')
|
||||
mkdirp(newdir)
|
||||
@@ -217,7 +225,8 @@ def install(self, spec, prefix):
|
||||
withLibs.append(lib)
|
||||
if not withLibs:
|
||||
# if no libraries are specified for compilation, then you dont have
|
||||
# to configure/build anything, just copy over to the prefix directory.
|
||||
# to configure/build anything, just copy over to the prefix
|
||||
# directory.
|
||||
src = join_path(self.stage.source_path, 'boost')
|
||||
mkdirp(join_path(prefix, 'include'))
|
||||
dst = join_path(prefix, 'include', 'boost')
|
||||
@@ -235,6 +244,9 @@ def install(self, spec, prefix):
|
||||
withLibs.remove('chrono')
|
||||
if not spec.satisfies('@1.43.0:'):
|
||||
withLibs.remove('random')
|
||||
if '+graph' in spec and '+mpi' in spec:
|
||||
withLibs.remove('graph')
|
||||
withLibs.append('graph_parallel')
|
||||
|
||||
# to make Boost find the user-config.jam
|
||||
env['BOOST_BUILD_PATH'] = './'
|
||||
@@ -259,6 +271,7 @@ def install(self, spec, prefix):
|
||||
for threadingOpt in threadingOpts:
|
||||
b2('install', 'threading=%s' % threadingOpt, *b2_options)
|
||||
|
||||
# The shared libraries are not installed correctly on Darwin; correct this
|
||||
# The shared libraries are not installed correctly
|
||||
# on Darwin; correct this
|
||||
if (sys.platform == 'darwin') and ('+shared' in spec):
|
||||
fix_darwin_install_name(prefix.lib)
|
||||
|
@@ -24,12 +24,15 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
from glob import glob
|
||||
|
||||
|
||||
class Bowtie2(Package):
|
||||
"""Description"""
|
||||
homepage = "bowtie-bio.sourceforge.net/bowtie2/index.shtml"
|
||||
version('2.2.5','51fa97a862d248d7ee660efc1147c75f', url = "http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.2.5/bowtie2-2.2.5-source.zip")
|
||||
version('2.2.5', '51fa97a862d248d7ee660efc1147c75f',
|
||||
url="http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.2.5/bowtie2-2.2.5-source.zip")
|
||||
|
||||
patch('bowtie2-2.5.patch',when='@2.2.5', level=0)
|
||||
patch('bowtie2-2.5.patch', when='@2.2.5', level=0)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make()
|
||||
@@ -45,4 +48,3 @@ def install(self, spec, prefix):
|
||||
# install('bowtie2-inspect',prefix.bin)
|
||||
# install('bowtie2-inspect-l',prefix.bin)
|
||||
# install('bowtie2-inspect-s',prefix.bin)
|
||||
|
||||
|
@@ -24,17 +24,19 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Boxlib(Package):
|
||||
"""BoxLib, a software framework for massively parallel
|
||||
block-structured adaptive mesh refinement (AMR) codes."""
|
||||
|
||||
homepage = "https://ccse.lbl.gov/BoxLib/"
|
||||
url = "https://ccse.lbl.gov/pub/Downloads/BoxLib.git";
|
||||
url = "https://ccse.lbl.gov/pub/Downloads/BoxLib.git"
|
||||
|
||||
# TODO: figure out how best to version this. No tags in the repo!
|
||||
version('master', git='https://ccse.lbl.gov/pub/Downloads/BoxLib.git')
|
||||
|
||||
depends_on('mpi')
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
args = std_cmake_args
|
||||
@@ -46,4 +48,3 @@ def install(self, spec, prefix):
|
||||
cmake('.', *args)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
41
var/spack/repos/builtin/packages/bpp-core/package.py
Normal file
41
var/spack/repos/builtin/packages/bpp-core/package.py
Normal file
@@ -0,0 +1,41 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class BppCore(Package):
|
||||
"""Bio++ core library."""
|
||||
|
||||
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
|
||||
url = "http://biopp.univ-montp2.fr/repos/sources/bpp-core-2.2.0.tar.gz"
|
||||
|
||||
version('2.2.0', '5789ed2ae8687d13664140cd77203477')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
43
var/spack/repos/builtin/packages/bpp-phyl/package.py
Normal file
43
var/spack/repos/builtin/packages/bpp-phyl/package.py
Normal file
@@ -0,0 +1,43 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class BppPhyl(Package):
|
||||
"""Bio++ phylogeny library."""
|
||||
|
||||
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
|
||||
url = "http://biopp.univ-montp2.fr/repos/sources/bpp-phyl-2.2.0.tar.gz"
|
||||
|
||||
version('2.2.0', '5c40667ec0bf37e0ecaba321be932770')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('bpp-core')
|
||||
depends_on('bpp-seq')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
42
var/spack/repos/builtin/packages/bpp-seq/package.py
Normal file
42
var/spack/repos/builtin/packages/bpp-seq/package.py
Normal file
@@ -0,0 +1,42 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class BppSeq(Package):
|
||||
"""Bio++ seq library."""
|
||||
|
||||
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
|
||||
url = "http://biopp.univ-montp2.fr/repos/sources/bpp-seq-2.2.0.tar.gz"
|
||||
|
||||
version('2.2.0', '44adef0ff4d5ca4e69ccf258c9270633')
|
||||
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('bpp-core')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
47
var/spack/repos/builtin/packages/bpp-suite/package.py
Normal file
47
var/spack/repos/builtin/packages/bpp-suite/package.py
Normal file
@@ -0,0 +1,47 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class BppSuite(Package):
|
||||
"""BppSuite is a suite of ready-to-use programs for phylogenetic and
|
||||
sequence analysis."""
|
||||
|
||||
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/BppSuite"
|
||||
url = "http://biopp.univ-montp2.fr/repos/sources/bppsuite/bppsuite-2.2.0.tar.gz"
|
||||
|
||||
version('2.2.0', 'd8b29ad7ccf5bd3a7beb701350c9e2a4')
|
||||
|
||||
# FIXME: Add dependencies if required.
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('texinfo', type='build')
|
||||
depends_on('bpp-core')
|
||||
depends_on('bpp-seq')
|
||||
depends_on('bpp-phyl')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('.', *std_cmake_args)
|
||||
make()
|
||||
make('install')
|
52
var/spack/repos/builtin/packages/bwa/package.py
Normal file
52
var/spack/repos/builtin/packages/bwa/package.py
Normal file
@@ -0,0 +1,52 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bwa(Package):
|
||||
"""Burrow-Wheeler Aligner for pairwise alignment between DNA sequences."""
|
||||
|
||||
homepage = "http://github.com/lh3/bwa"
|
||||
url = "https://github.com/lh3/bwa/releases/download/v0.7.15/bwa-0.7.15.tar.bz2"
|
||||
|
||||
version('0.7.15', 'fcf470a46a1dbe2f96a1c5b87c530554')
|
||||
|
||||
depends_on('zlib')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
filter_file(r'^INCLUDES=',
|
||||
"INCLUDES=-I%s" % spec['zlib'].prefix.include, 'Makefile')
|
||||
filter_file(r'^LIBS=', "LIBS=-L%s " % spec['zlib'].prefix.lib,
|
||||
'Makefile')
|
||||
make()
|
||||
|
||||
mkdirp(prefix.bin)
|
||||
install('bwa', join_path(prefix.bin, 'bwa'))
|
||||
set_executable(join_path(prefix.bin, 'bwa'))
|
||||
mkdirp(prefix.doc)
|
||||
install('README.md', prefix.doc)
|
||||
install('NEWS.md', prefix.doc)
|
||||
mkdirp(prefix.man1)
|
||||
install('bwa.1', prefix.man1)
|
@@ -24,54 +24,69 @@
|
||||
##############################################################################
|
||||
from spack import *
|
||||
|
||||
|
||||
class Bzip2(Package):
|
||||
"""bzip2 is a freely available, patent free high-quality data
|
||||
compressor. It typically compresses files to within 10% to 15%
|
||||
of the best available techniques (the PPM family of statistical
|
||||
compressors), whilst being around twice as fast at compression
|
||||
and six times faster at decompression.
|
||||
compressor. It typically compresses files to within 10% to 15%
|
||||
of the best available techniques (the PPM family of statistical
|
||||
compressors), whilst being around twice as fast at compression
|
||||
and six times faster at decompression."""
|
||||
|
||||
"""
|
||||
homepage = "http://www.bzip.org"
|
||||
url = "http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz"
|
||||
|
||||
version('1.0.6', '00b516f4704d4a7cb50a1d97e6e8e15b')
|
||||
|
||||
|
||||
def patch(self):
|
||||
mf = FileFilter('Makefile-libbz2_so')
|
||||
mf.filter(r'^CC=gcc', 'CC=cc')
|
||||
# bzip2 comes with two separate Makefiles for static and dynamic builds
|
||||
# Tell both to use Spack's compiler wrapper instead of GCC
|
||||
filter_file(r'^CC=gcc', 'CC=cc', 'Makefile')
|
||||
filter_file(r'^CC=gcc', 'CC=cc', 'Makefile-libbz2_so')
|
||||
|
||||
# Below stuff patches the link line to use RPATHs on Mac OS X.
|
||||
# Patch the link line to use RPATHs on macOS
|
||||
if 'darwin' in self.spec.architecture:
|
||||
v = self.spec.version
|
||||
v1, v2, v3 = (v.up_to(i) for i in (1,2,3))
|
||||
v1, v2, v3 = (v.up_to(i) for i in (1, 2, 3))
|
||||
|
||||
mf.filter('$(CC) -shared -Wl,-soname -Wl,libbz2.so.{0} -o libbz2.so.{1} $(OBJS)'.format(v2, v3),
|
||||
'$(CC) -dynamiclib -Wl,-install_name -Wl,@rpath/libbz2.{0}.dylib -current_version {1} -compatibility_version {2} -o libbz2.{3}.dylib $(OBJS)'.format(v1, v2, v3, v3), string=True)
|
||||
kwargs = {'ignore_absent': False, 'backup': False, 'string': True}
|
||||
|
||||
mf.filter('$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.{0}'.format(v3),
|
||||
'$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.{0}.dylib'.format(v3), string=True)
|
||||
mf.filter('rm -f libbz2.so.{0}'.format(v2),
|
||||
'rm -f libbz2.{0}.dylib'.format(v2), string=True)
|
||||
mf.filter('ln -s libbz2.so.{0} libbz2.so.{1}'.format(v3, v2),
|
||||
'ln -s libbz2.{0}.dylib libbz2.{1}.dylib'.format(v3, v2), string=True)
|
||||
mf = FileFilter('Makefile-libbz2_so')
|
||||
mf.filter('$(CC) -shared -Wl,-soname -Wl,libbz2.so.{0} -o libbz2.so.{1} $(OBJS)' # noqa
|
||||
.format(v2, v3),
|
||||
'$(CC) -dynamiclib -Wl,-install_name -Wl,@rpath/libbz2.{0}.dylib -current_version {1} -compatibility_version {2} -o libbz2.{3}.dylib $(OBJS)' # noqa
|
||||
.format(v1, v2, v3, v3),
|
||||
**kwargs)
|
||||
|
||||
mf.filter(
|
||||
'$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.{0}'.format(v3), # noqa
|
||||
'$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.{0}.dylib'
|
||||
.format(v3), **kwargs)
|
||||
mf.filter(
|
||||
'rm -f libbz2.so.{0}'.format(v2),
|
||||
'rm -f libbz2.{0}.dylib'.format(v2), **kwargs)
|
||||
mf.filter(
|
||||
'ln -s libbz2.so.{0} libbz2.so.{1}'.format(v3, v2),
|
||||
'ln -s libbz2.{0}.dylib libbz2.{1}.dylib'.format(v3, v2),
|
||||
**kwargs)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# Build the dynamic library first
|
||||
make('-f', 'Makefile-libbz2_so')
|
||||
make('clean')
|
||||
make("install", "PREFIX=%s" % prefix)
|
||||
# Build the static library and everything else
|
||||
make()
|
||||
make('install', 'PREFIX={0}'.format(prefix))
|
||||
|
||||
install('bzip2-shared', join_path(prefix.bin, 'bzip2'))
|
||||
|
||||
v1, v2, v3 = (self.spec.version.up_to(i) for i in (1,2,3))
|
||||
v1, v2, v3 = (self.spec.version.up_to(i) for i in (1, 2, 3))
|
||||
if 'darwin' in self.spec.architecture:
|
||||
lib = 'libbz2.dylib'
|
||||
lib1, lib2, lib3 = ('libbz2.{0}.dylib'.format(v) for v in (v1, v2, v3))
|
||||
lib1, lib2, lib3 = ('libbz2.{0}.dylib'.format(v)
|
||||
for v in (v1, v2, v3))
|
||||
else:
|
||||
lib = 'libbz2.so'
|
||||
lib1, lib2, lib3 = ('libbz2.so.{0}'.format(v) for v in (v1, v2, v3))
|
||||
lib1, lib2, lib3 = ('libbz2.so.{0}'.format(v)
|
||||
for v in (v1, v2, v3))
|
||||
|
||||
install(lib3, join_path(prefix.lib, lib3))
|
||||
with working_dir(prefix.lib):
|
||||
|
52
var/spack/repos/builtin/packages/c-blosc/package.py
Normal file
52
var/spack/repos/builtin/packages/c-blosc/package.py
Normal file
@@ -0,0 +1,52 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
||||
# Produced at the Lawrence Livermore National Laboratory.
|
||||
#
|
||||
# This file is part of Spack.
|
||||
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||
# LLNL-CODE-647188
|
||||
#
|
||||
# For details, see https://github.com/llnl/spack
|
||||
# Please also see the LICENSE file for our notice and the LGPL.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License (as
|
||||
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||
# conditions of the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
|
||||
import sys
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class CBlosc(Package):
|
||||
"""Blosc, an extremely fast, multi-threaded, meta-compressor library"""
|
||||
homepage = "http://www.blosc.org"
|
||||
url = "https://github.com/Blosc/c-blosc/archive/v1.9.2.tar.gz"
|
||||
|
||||
version('1.9.2', 'dd2d83069d74b36b8093f1c6b49defc5')
|
||||
version('1.9.1', '7d708d3daadfacf984a87b71b1734ce2')
|
||||
version('1.9.0', 'e4c1dc8e2c468e5cfa2bf05eeee5357a')
|
||||
version('1.8.1', 'd73d5be01359cf271e9386c90dcf5b05')
|
||||
version('1.8.0', '5b92ecb287695ba20cc33d30bf221c4f')
|
||||
|
||||
depends_on("cmake", type='build')
|
||||
depends_on("snappy")
|
||||
depends_on("zlib")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
cmake('.', *std_cmake_args)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
if sys.platform == 'darwin':
|
||||
fix_darwin_install_name(prefix.lib)
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user