summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py33
-rw-r--r--var/spack/repos/builtin/packages/cantera/package.py3
-rw-r--r--var/spack/repos/builtin/packages/charm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/charm/strictpass.patch16
-rw-r--r--var/spack/repos/builtin/packages/hdf/package.py21
-rw-r--r--var/spack/repos/builtin/packages/hdf5/package.py6
-rw-r--r--var/spack/repos/builtin/packages/hpx5/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libcerf/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libjpeg-turbo/package.py19
-rw-r--r--var/spack/repos/builtin/packages/mfem/package.py70
-rw-r--r--var/spack/repos/builtin/packages/mkl/package.py7
-rw-r--r--var/spack/repos/builtin/packages/mpich/package.py64
-rw-r--r--var/spack/repos/builtin/packages/netcdf/package.py10
-rw-r--r--var/spack/repos/builtin/packages/pango/package.py1
-rw-r--r--var/spack/repos/builtin/packages/tethex/package.py49
-rw-r--r--var/spack/repos/builtin/packages/trilinos/package.py4
16 files changed, 232 insertions, 86 deletions
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index 5b50b44038..90fe28fc2c 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -41,8 +41,8 @@ class Boost(Package):
list_url = "http://sourceforge.net/projects/boost/files/boost/"
list_depth = 2
- version('1.62.0', '5fb94629535c19e48703bdb2b2e9490f') # TODO: fix build
- version('1.61.0', '6095876341956f65f9d35939ccea1a9f', preferred=True)
+ version('1.62.0', '5fb94629535c19e48703bdb2b2e9490f')
+ version('1.61.0', '6095876341956f65f9d35939ccea1a9f')
version('1.60.0', '65a840e1a0b13a558ff19eeb2c4f0cbe')
version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87')
version('1.58.0', 'b8839650e61e9c1c0a89f371dd475546')
@@ -110,12 +110,14 @@ class Boost(Package):
description="Additionally build shared libraries")
variant('multithreaded', default=True,
description="Build multi-threaded versions of libraries")
- variant('singlethreaded', default=True,
+ variant('singlethreaded', default=False,
description="Build single-threaded versions of libraries")
variant('icu', default=False,
description="Build with Unicode and ICU suport")
variant('graph', default=False,
description="Build the Boost Graph library")
+ variant('taggedlayout', default=False,
+ description="Augment library names with build options")
depends_on('icu4c', when='+icu')
depends_on('python', when='+python')
@@ -208,12 +210,20 @@ class Boost(Package):
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")
+
+ if '+taggedlayout' in spec:
+ layout = 'tagged'
+ else:
+ if len(threadingOpts) > 1:
+ raise RuntimeError("Cannot build both single and " +
+ "multi-threaded targets with system layout")
+ layout = 'system'
options.extend([
'link=%s' % ','.join(linkTypes),
- '--layout=tagged'
+ '--layout=%s' % layout
])
if not spec.satisfies('%intel'):
@@ -223,6 +233,12 @@ class Boost(Package):
return threadingOpts
+ def add_buildopt_symlinks(self, prefix):
+ with working_dir(prefix.lib):
+ for lib in os.listdir(os.curdir):
+ prefix, remainder = lib.split('.', 1)
+ symlink(lib, '%s-mt.%s' % (prefix, remainder))
+
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
@@ -281,11 +297,16 @@ class Boost(Package):
threadingOpts = self.determine_b2_options(spec, b2_options)
+ b2('--clean')
+
# In theory it could be done on one call but it fails on
# Boost.MPI if the threading options are not separated.
for threadingOpt in threadingOpts:
b2('install', 'threading=%s' % threadingOpt, *b2_options)
+ if '+multithreaded' in spec and '~taggedlayout' in spec:
+ self.add_buildopt_symlinks(prefix)
+
# The shared libraries are not installed correctly
# on Darwin; correct this
if (sys.platform == 'darwin') and ('+shared' in spec):
diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py
index 9a9bc5bdbd..66e1197669 100644
--- a/var/spack/repos/builtin/packages/cantera/package.py
+++ b/var/spack/repos/builtin/packages/cantera/package.py
@@ -96,8 +96,7 @@ class Cantera(Package):
options.extend([
'build_thread_safe=yes',
'boost_inc_dir={0}'.format(spec['boost'].prefix.include),
- 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib),
- 'boost_thread_lib=boost_thread-mt,boost_system-mt'
+ 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib)
])
else:
options.append('build_thread_safe=no')
diff --git a/var/spack/repos/builtin/packages/charm/package.py b/var/spack/repos/builtin/packages/charm/package.py
index aa247fcc02..1ec53c2138 100644
--- a/var/spack/repos/builtin/packages/charm/package.py
+++ b/var/spack/repos/builtin/packages/charm/package.py
@@ -48,6 +48,8 @@ class Charm(Package):
# Support OpenMPI; see
# <https://charm.cs.illinois.edu/redmine/issues/1206>
patch("mpi.patch")
+ # Ignore compiler warnings while configuring
+ patch("strictpass.patch")
# Communication mechanisms (choose exactly one)
# TODO: Support Blue Gene/Q PAMI, Cray GNI, Cray shmem, CUDA
diff --git a/var/spack/repos/builtin/packages/charm/strictpass.patch b/var/spack/repos/builtin/packages/charm/strictpass.patch
new file mode 100644
index 0000000000..44aa4fbd38
--- /dev/null
+++ b/var/spack/repos/builtin/packages/charm/strictpass.patch
@@ -0,0 +1,16 @@
+--- old/src/scripts/configure
++++ new/src/scripts/configure
+@@ -2146,13 +2146,6 @@
+ test_result $? "$1" "$2" "$3"
+ strictpass=$pass
+ strictfail=$fail
+- if test $pass -eq 1
+- then
+- if cat out | grep -i "warn" > /dev/null 2>&1
+- then
+- strictpass="0" && strictfail="1"
+- fi
+- fi
+ cat out >> $charmout
+ /bin/rm -f out
+ }
diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py
index 37abb611d4..2554bd0f96 100644
--- a/var/spack/repos/builtin/packages/hdf/package.py
+++ b/var/spack/repos/builtin/packages/hdf/package.py
@@ -39,9 +39,9 @@ class Hdf(Package):
variant('szip', default=False, description="Enable szip support")
- depends_on('jpeg')
+ depends_on('jpeg@6b:')
depends_on('szip', when='+szip')
- depends_on('zlib')
+ depends_on('zlib@1.1.4:')
depends_on('bison', type='build')
depends_on('flex', type='build')
@@ -49,9 +49,9 @@ class Hdf(Package):
def install(self, spec, prefix):
config_args = [
'CFLAGS=-fPIC',
- '--prefix=%s' % prefix,
- '--with-jpeg=%s' % spec['jpeg'].prefix,
- '--with-zlib=%s' % spec['zlib'].prefix,
+ '--prefix={0}'.format(prefix),
+ '--with-jpeg={0}'.format(spec['jpeg'].prefix),
+ '--with-zlib={0}'.format(spec['zlib'].prefix),
'--disable-netcdf', # must be disabled to build NetCDF with HDF4
'--enable-fortran',
'--disable-shared', # fortran and shared libs are not compatible
@@ -59,12 +59,17 @@ class Hdf(Package):
'--enable-production'
]
- # SZip support
+ # Szip support
if '+szip' in spec:
- config_args.append('--with-szlib=%s' % spec['szip'].prefix)
+ config_args.append('--with-szlib={0}'.format(spec['szip'].prefix))
+ else:
+ config_args.append('--without-szlib')
configure(*config_args)
make()
- make('check')
+
+ if self.run_tests:
+ make('check')
+
make('install')
diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py
index c0635cfbfc..f2fe48feb3 100644
--- a/var/spack/repos/builtin/packages/hdf5/package.py
+++ b/var/spack/repos/builtin/packages/hdf5/package.py
@@ -60,7 +60,7 @@ class Hdf5(Package):
depends_on("mpi", when='+mpi')
depends_on("szip", when='+szip')
- depends_on("zlib")
+ depends_on("zlib@1.1.2:")
def validate(self, spec):
"""
@@ -144,6 +144,10 @@ class Hdf5(Package):
"--with-zlib=%s" % spec['zlib'].prefix,
*extra_args)
make()
+
+ if self.run_tests:
+ make("check")
+
make("install")
self.check_install(spec)
diff --git a/var/spack/repos/builtin/packages/hpx5/package.py b/var/spack/repos/builtin/packages/hpx5/package.py
index 686e959719..fe75c256f8 100644
--- a/var/spack/repos/builtin/packages/hpx5/package.py
+++ b/var/spack/repos/builtin/packages/hpx5/package.py
@@ -37,15 +37,16 @@ class Hpx5(Package):
applications enabling scientists to write code that performs and
scales better than contemporary runtimes."""
homepage = "http://hpx.crest.iu.edu"
- url = "http://hpx.crest.iu.edu/release/hpx-2.0.0.tar.gz"
+ url = "http://hpx.crest.iu.edu/release/hpx-3.1.0.tar.gz"
+ version('3.1.0', '9e90b8ac46788c009079632828c77628')
version('2.0.0', '3d2ff3aab6c46481f9ec65c5b2bfe7a6')
version('1.3.0', '2260ecc7f850e71a4d365a43017d8cee')
version('1.2.0', '4972005f85566af4afe8b71afbf1480f')
version('1.1.0', '646afb460ecb7e0eea713a634933ce4f')
version('1.0.0', '8020822adf6090bd59ed7fe465f6c6cb')
- variant('debug', default=False, description='Build a debug version of HPX-5')
+ variant('debug', default=False, description='Build debug version of HPX-5')
variant('photon', default=False, description='Enable Photon support')
variant('mpi', default=False, description='Enable MPI support')
diff --git a/var/spack/repos/builtin/packages/libcerf/package.py b/var/spack/repos/builtin/packages/libcerf/package.py
index 7fb47f8dcd..1964f03b95 100644
--- a/var/spack/repos/builtin/packages/libcerf/package.py
+++ b/var/spack/repos/builtin/packages/libcerf/package.py
@@ -38,6 +38,12 @@ class Libcerf(Package):
version('1.3', 'b3504c467204df71e62aeccf73a25612')
def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
+ options = []
+ # Clang reports unused functions as errors, see
+ # http://clang.debian.net/status.php?version=3.8.1&key=UNUSED_FUNCTION
+ if spec.satisfies('%clang'):
+ options.append('CFLAGS=-Wno-unused-function')
+
+ configure('--prefix=%s' % prefix, *options)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
index 6252a88542..3fe159d7b9 100644
--- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
+++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
@@ -26,20 +26,25 @@ from spack import *
class LibjpegTurbo(Package):
- """libjpeg-turbo is a fork of the original IJG libjpeg which uses
- SIMD to accelerate baseline JPEG compression and
- decompression. libjpeg is a library that implements JPEG image
- encoding, decoding and transcoding."""
+ """libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to
+ accelerate baseline JPEG compression and decompression. libjpeg is a
+ library that implements JPEG image encoding, decoding and
+ transcoding."""
+
homepage = "http://libjpeg-turbo.virtualgl.org"
url = "http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-1.3.1.tar.gz"
+ version('1.5.0', '3fc5d9b6a8bce96161659ae7a9939257')
version('1.3.1', '2c3a68129dac443a72815ff5bb374b05')
- # Can use either of these.
- depends_on("yasm", type='build')
+ # Can use either of these. But in the current version of the package
+ # only nasm is used. In order to use yasm an environmental variable
+ # NASM must be set.
+ # TODO: Implement the selection between two supported assemblers.
+ # depends_on("yasm", type='build')
depends_on("nasm", type='build')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure("--prefix=" + prefix)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py
index cbf9059f65..9aa4ab8cf0 100644
--- a/var/spack/repos/builtin/packages/mfem/package.py
+++ b/var/spack/repos/builtin/packages/mfem/package.py
@@ -23,8 +23,6 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import glob
-import string
class Mfem(Package):
@@ -35,11 +33,11 @@ class Mfem(Package):
version('3.2',
'2938c3deed4ec4f7fd5b5f5cfe656845282e86e2dcd477d292390058b7b94340',
- url='http://goo.gl/Y9T75B', expand=False, preferred=True)
+ url='http://goo.gl/Y9T75B', preferred=True, extension='.tar.gz')
version('3.1',
'841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57',
- url='http://goo.gl/xrScXn', expand=False)
+ url='http://goo.gl/xrScXn', extension='.tar.gz')
# version('3.1', git='https://github.com/mfem/mfem.git',
# commit='dbae60fe32e071989b52efaaf59d7d0eb2a3b574')
@@ -48,8 +46,11 @@ class Mfem(Package):
variant('suite-sparse', default=False,
description='Activate support for SuiteSparse')
variant('mpi', default=False, description='Activate support for MPI')
+ variant('superlu-dist', default=False,
+ description='Activate support for SuperLU_Dist')
variant('lapack', default=False, description='Activate support for LAPACK')
variant('debug', default=False, description='Build debug version')
+ variant('netcdf', default=False, description='Activate NetCDF support')
depends_on('blas', when='+lapack')
depends_on('lapack', when='+lapack')
@@ -68,6 +69,12 @@ class Mfem(Package):
depends_on('metis@5:', when='+suite-sparse ^suite-sparse@4.5:')
depends_on('cmake', when='^metis@5:', type='build')
+ depends_on('superlu-dist', when='@3.2: +superlu-dist')
+
+ depends_on('netcdf', when='@3.2: +netcdf')
+ depends_on('zlib', when='@3.2: +netcdf')
+ depends_on('hdf5', when='@3.2: +netcdf')
+
def check_variants(self, spec):
if '+mpi' in spec and ('+hypre' not in spec or '+metis' not in spec):
raise InstallError('mfem+mpi must be built with +hypre ' +
@@ -81,6 +88,12 @@ class Mfem(Package):
raise InstallError('To work around CMake bug with clang, must ' +
'build mfem with mfem[+variants] %clang ' +
'^cmake %gcc to force CMake to build with gcc')
+ if '@:3.1' in spec and '+superlu-dist' in spec:
+ raise InstallError('MFEM does not support SuperLU_DIST for ' +
+ 'versions 3.1 and earlier')
+ if '@:3.1' in spec and '+netcdf' in spec:
+ raise InstallError('MFEM does not support NetCDF for versions' +
+ '3.1 and earlier')
return
def install(self, spec, prefix):
@@ -102,7 +115,14 @@ class Mfem(Package):
'HYPRE_LIB=-L%s' % spec['hypre'].prefix.lib +
' -lHYPRE'])
- if '+metis' in spec:
+ if 'parmetis' in spec:
+ metis_lib = '-L%s -lparmetis -lmetis' % spec['parmetis'].prefix.lib
+ metis_str = 'MFEM_USE_METIS_5=YES'
+ options.extend([metis_str,
+ 'METIS_DIR=%s' % spec['parmetis'].prefix,
+ 'METIS_OPT=-I%s' % spec['parmetis'].prefix.include,
+ 'METIS_LIB=%s' % metis_lib])
+ elif 'metis' in spec:
metis_lib = '-L%s -lmetis' % spec['metis'].prefix.lib
if spec['metis'].satisfies('@5:'):
metis_str = 'MFEM_USE_METIS_5=YES'
@@ -114,14 +134,27 @@ class Mfem(Package):
'METIS_OPT=-I%s' % spec['metis'].prefix.include,
'METIS_LIB=%s' % metis_lib])
- if '+mpi' in spec:
+ if 'mpi' in spec:
options.extend(['MFEM_USE_MPI=YES'])
+ if '+superlu-dist' in spec:
+ superlu_lib = '-L%s' % spec['superlu-dist'].prefix.lib
+ superlu_lib += ' -lsuperlu_dist'
+ sl_inc = 'SUPERLU_OPT=-I%s' % spec['superlu-dist'].prefix.include
+ options.extend(['MFEM_USE_SUPERLU=YES',
+ 'SUPERLU_DIR=%s' % spec['superlu-dist'].prefix,
+ sl_inc,
+ 'SUPERLU_LIB=%s' % superlu_lib])
+
if '+suite-sparse' in spec:
ssp = spec['suite-sparse'].prefix
ss_lib = '-L%s' % ssp.lib
- ss_lib += (' -lumfpack -lcholmod -lcolamd -lamd -lcamd' +
- ' -lccolamd -lsuitesparseconfig')
+
+ if '@3.2:' in spec:
+ ss_lib += ' -lklu -lbtf'
+
+ ss_lib += (' -lumfpack -lcholmod -lcolamd' +
+ ' -lamd -lcamd -lccolamd -lsuitesparseconfig')
no_librt_archs = ['darwin-i686', 'darwin-x86_64']
no_rt = any(map(lambda a: spec.satisfies('=' + a),
@@ -135,16 +168,23 @@ class Mfem(Package):
'SUITESPARSE_OPT=-I%s' % ssp.include,
'SUITESPARSE_LIB=%s' % ss_lib])
+ if '+netcdf' in spec:
+ np = spec['netcdf'].prefix
+ zp = spec['zlib'].prefix
+ h5p = spec['hdf5'].prefix
+ nlib = '-L%s -lnetcdf ' % np.lib
+ nlib += '-L%s -lhdf5_hl -lhdf5 ' % h5p.lib
+ nlib += '-L%s -lz' % zp.lib
+ options.extend(['MFEM_USE_NETCDF=YES',
+ 'NETCDF_DIR=%s' % np,
+ 'HDF5_DIR=%s' % h5p,
+ 'ZLIB_DIR=%s' % zp,
+ 'NETCDF_OPT=-I%s' % np.include,
+ 'NETCDF_LIB=%s' % nlib])
+
if '+debug' in spec:
options.extend(['MFEM_DEBUG=YES'])
- # Dirty hack to cope with URL redirect
- tgz_file = string.split(self.url, '/')[-1]
- tar = which('tar')
- tar('xzvf', tgz_file)
- cd(glob.glob('mfem*')[0])
- # End dirty hack to cope with URL redirect
-
make('config', *options)
make('all')
diff --git a/var/spack/repos/builtin/packages/mkl/package.py b/var/spack/repos/builtin/packages/mkl/package.py
index 8a31858bf5..4a9a8785f7 100644
--- a/var/spack/repos/builtin/packages/mkl/package.py
+++ b/var/spack/repos/builtin/packages/mkl/package.py
@@ -66,13 +66,6 @@ class Mkl(IntelInstaller):
for f in os.listdir(mkl_dir):
os.symlink(os.path.join(mkl_dir, f), os.path.join(self.prefix, f))
- # Unfortunately MKL libs are natively distrubted in prefix/lib/intel64.
- # To make MKL play nice with Spack, symlink all files to prefix/lib:
- mkl_lib_dir = os.path.join(prefix, "lib", "intel64")
- for f in os.listdir(mkl_lib_dir):
- os.symlink(os.path.join(mkl_lib_dir, f),
- os.path.join(self.prefix, "lib", f))
-
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
# set up MKLROOT for everyone using MKL package
spack_env.set('MKLROOT', self.prefix)
diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py
index 8f300d4ec7..bb034f9fc7 100644
--- a/var/spack/repos/builtin/packages/mpich/package.py
+++ b/var/spack/repos/builtin/packages/mpich/package.py
@@ -27,9 +27,10 @@ from spack import *
class Mpich(Package):
"""MPICH is a high performance and widely portable implementation of
- the Message Passing Interface (MPI) standard."""
+ the Message Passing Interface (MPI) standard."""
+
homepage = "http://www.mpich.org"
- url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
+ url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
list_url = "http://www.mpich.org/static/downloads/"
list_depth = 2
@@ -41,10 +42,10 @@ class Mpich(Package):
version('3.1', '5643dd176499bfb7d25079aaff25f2ec')
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
- variant('verbs', default=False,
- description='Build support for OpenFabrics verbs.')
- variant('pmi', default=True, description='Build with PMI support')
- variant('hydra', default=True, description='Build the hydra process manager')
+ variant('hydra', default=True, description='Build the hydra process manager')
+ variant('pmi', default=True, description='Build with PMI support')
+ variant('romio', default=True, description='Enable ROMIO MPI I/O implementation')
+ variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
provides('mpi@:3.0', when='@3:')
provides('mpi@:1.3', when='@1:')
@@ -80,16 +81,14 @@ class Mpich(Package):
]
def install(self, spec, prefix):
- config_args = ["--prefix=" + prefix,
- "--with-pmi=" + ("yes" if '+pmi' in spec else 'no'),
- "--with-pm=" + ('hydra' if '+hydra' in spec else 'no'),
- "--enable-shared"]
-
- # Variants
- if '+verbs' in spec:
- config_args.append("--with-ibverbs")
- else:
- config_args.append("--without-ibverbs")
+ config_args = [
+ '--prefix={0}'.format(prefix),
+ '--enable-shared',
+ '--with-pm={0}'.format('hydra' if '+hydra' in spec else 'no'),
+ '--with-pmi={0}'.format('yes' if '+pmi' in spec else 'no'),
+ '--{0}-romio'.format('enable' if '+romio' in spec else 'disable'),
+ '--{0}-ibverbs'.format('with' if '+verbs' in spec else 'without')
+ ]
# TODO: Spack should make it so that you can't actually find
# these compilers if they're "disabled" for the current
@@ -104,32 +103,33 @@ class Mpich(Package):
config_args.append("--disable-fortran")
configure(*config_args)
+
make()
- make("install")
+ make('check')
+ make('install')
- self.filter_compilers()
+ self.filter_compilers(prefix)
- def filter_compilers(self):
+ def filter_compilers(self, prefix):
"""Run after install to make the MPI compilers use the
- compilers that Spack built the package with.
-
- If this isn't done, they'll have CC, CXX, F77, and FC set
- to Spack's generic cc, c++, f77, and f90. We want them to
- be bound to whatever compiler they were built with.
- """
- bin = self.prefix.bin
- mpicc = join_path(bin, 'mpicc')
- mpicxx = join_path(bin, 'mpicxx')
- mpif77 = join_path(bin, 'mpif77')
- mpif90 = join_path(bin, 'mpif90')
+ compilers that Spack built the package with.
+
+ If this isn't done, they'll have CC, CXX, F77, and FC set
+ to Spack's generic cc, c++, f77, and f90. We want them to
+ be bound to whatever compiler they were built with."""
+
+ mpicc = join_path(prefix.bin, 'mpicc')
+ mpicxx = join_path(prefix.bin, 'mpicxx')
+ mpif77 = join_path(prefix.bin, 'mpif77')
+ mpif90 = join_path(prefix.bin, 'mpif90')
# Substitute Spack compile wrappers for the real
# underlying compiler
kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
- filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs)
+ filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs)
filter_file(env['CXX'], self.compiler.cxx, mpicxx, **kwargs)
filter_file(env['F77'], self.compiler.f77, mpif77, **kwargs)
- filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs)
+ filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs)
# Remove this linking flag if present
# (it turns RPATH into RUNPATH)
diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py
index 5dc686c907..d4d7fd1691 100644
--- a/var/spack/repos/builtin/packages/netcdf/package.py
+++ b/var/spack/repos/builtin/packages/netcdf/package.py
@@ -46,10 +46,10 @@ class Netcdf(Package):
depends_on("hdf", when='+hdf4')
# Required for DAP support
- depends_on("curl")
+ depends_on("curl@7.18.0:")
# Required for NetCDF-4 support
- depends_on("zlib")
+ depends_on("zlib@1.2.5:")
depends_on('hdf5')
# NetCDF 4.4.0 and prior have compatibility issues with HDF5 1.10 and later
@@ -105,7 +105,7 @@ class Netcdf(Package):
LDFLAGS.append("-L%s/lib" % spec['hdf'].prefix)
LIBS.append("-l%s" % "jpeg")
- if 'szip' in spec:
+ if '+szip' in spec:
CPPFLAGS.append("-I%s/include" % spec['szip'].prefix)
LDFLAGS.append("-L%s/lib" % spec['szip'].prefix)
LIBS.append("-l%s" % "sz")
@@ -120,4 +120,8 @@ class Netcdf(Package):
configure(*config_args)
make()
+
+ if self.run_tests:
+ make("check")
+
make("install")
diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py
index 75c4ac807d..5cf3edb8da 100644
--- a/var/spack/repos/builtin/packages/pango/package.py
+++ b/var/spack/repos/builtin/packages/pango/package.py
@@ -41,6 +41,7 @@ class Pango(Package):
depends_on("pkg-config", type="build")
depends_on("harfbuzz")
depends_on("cairo")
+ depends_on("glib")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/tethex/package.py b/var/spack/repos/builtin/packages/tethex/package.py
new file mode 100644
index 0000000000..624942498e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tethex/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# 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 Tethex(Package):
+ """Tethex is designed to convert triangular (in 2D) or tetrahedral (in 3D)
+ Gmsh's mesh to quadrilateral or hexahedral one respectively. These meshes
+ can be used in software packages working with hexahedrals only - for
+ example, deal.II.
+ """
+
+ homepage = "https://github.com/martemyev/tethex"
+ url = "https://github.com/martemyev/tethex/archive/v0.0.7.tar.gz"
+
+ version('0.0.7', '6c9e4a18a6637deb4400c6d77ec03184')
+ version('develop', git='https://github.com/martemyev/tethex.git')
+
+ depends_on('cmake', type='build')
+
+ def install(self, spec, prefix):
+ cmake('.')
+ make()
+
+ # install by hand
+ mkdirp(prefix.bin)
+ install('tethex', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py
index 203e1502d6..4c7a94ce3f 100644
--- a/var/spack/repos/builtin/packages/trilinos/package.py
+++ b/var/spack/repos/builtin/packages/trilinos/package.py
@@ -149,10 +149,10 @@ class Trilinos(Package):
'-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix,
'-DTPL_ENABLE_BLAS=ON',
'-DBLAS_LIBRARY_NAMES=%s' % ';'.join(blas.names),
- '-DBLAS_LIBRARY_DIRS=%s' % spec['blas'].prefix.lib,
+ '-DBLAS_LIBRARY_DIRS=%s' % ';'.join(blas.directories),
'-DTPL_ENABLE_LAPACK=ON',
'-DLAPACK_LIBRARY_NAMES=%s' % ';'.join(lapack.names),
- '-DLAPACK_LIBRARY_DIRS=%s' % spec['lapack'].prefix.lib,
+ '-DLAPACK_LIBRARY_DIRS=%s' % ';'.join(lapack.directories),
'-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON',
'-DTrilinos_ENABLE_CXX11:BOOL=ON',
'-DTPL_ENABLE_Netcdf:BOOL=ON',