diff options
-rwxr-xr-x | bin/spack | 5 | ||||
-rw-r--r-- | lib/spack/spack/database.py | 4 | ||||
-rw-r--r-- | lib/spack/spack/directory_layout.py | 4 | ||||
-rw-r--r-- | lib/spack/spack/modules.py | 4 | ||||
-rw-r--r-- | lib/spack/spack/packages.py | 15 | ||||
-rw-r--r-- | lib/spack/spack/spec.py | 32 | ||||
-rw-r--r-- | lib/spack/spack/test/spec_dag.py | 8 | ||||
-rw-r--r-- | var/spack/packages/SAMRAI/package.py | 2 | ||||
-rw-r--r-- | var/spack/packages/cleverleaf/package.py | 2 | ||||
-rw-r--r-- | var/spack/packages/fftw/package.py | 96 | ||||
-rw-r--r-- | var/spack/packages/fontconfig/package.py | 3 | ||||
-rw-r--r-- | var/spack/packages/gnuplot/package.py | 61 | ||||
-rw-r--r-- | var/spack/packages/gsl/package.py | 46 | ||||
-rw-r--r-- | var/spack/packages/hdf5/package.py | 15 | ||||
-rw-r--r-- | var/spack/packages/libcerf/package.py | 42 | ||||
-rw-r--r-- | var/spack/packages/libgd/package.py | 53 | ||||
-rw-r--r-- | var/spack/packages/ncurses/package.py | 2 | ||||
-rw-r--r-- | var/spack/packages/ncurses/patch_gcc_5.txt | 12 | ||||
-rw-r--r-- | var/spack/packages/paraview/package.py | 3 | ||||
-rw-r--r-- | var/spack/packages/petsc/package.py | 2 | ||||
-rw-r--r-- | var/spack/packages/wx/package.py | 2 |
21 files changed, 384 insertions, 29 deletions
@@ -89,6 +89,8 @@ spec expressions: parser.add_argument('-d', '--debug', action='store_true', help="Write out debug logs during compile") +parser.add_argument('-D', '--pdb', action='store_true', + help="Run spack under the pdb debugger") parser.add_argument('-k', '--insecure', action='store_true', help="Do not check ssl certificates when downloading.") parser.add_argument('-m', '--mock', action='store_true', @@ -159,5 +161,8 @@ def main(): if args.profile: import cProfile cProfile.run('main()', sort='tottime') +elif args.pdb: + import pdb + pdb.run('main()') else: main() diff --git a/lib/spack/spack/database.py b/lib/spack/spack/database.py index d62a47547d..bf54055a24 100644 --- a/lib/spack/spack/database.py +++ b/lib/spack/spack/database.py @@ -211,6 +211,10 @@ class Database(object): child = self._read_spec_from_yaml(dep_hash, installs, hash_key) spec._add_dependency(child) + # Specs from the database need to be marked concrete because + # they represent actual installations. + spec._mark_concrete() + return spec diff --git a/lib/spack/spack/directory_layout.py b/lib/spack/spack/directory_layout.py index 056606b429..d91fbe9f4e 100644 --- a/lib/spack/spack/directory_layout.py +++ b/lib/spack/spack/directory_layout.py @@ -212,8 +212,8 @@ class YamlDirectoryLayout(DirectoryLayout): spec = Spec.from_yaml(f) # Specs read from actual installations are always concrete - spec._normal = True - spec._concrete = True + spec._mark_concrete() + return spec diff --git a/lib/spack/spack/modules.py b/lib/spack/spack/modules.py index 59ed9f893e..7036626e29 100644 --- a/lib/spack/spack/modules.py +++ b/lib/spack/spack/modules.py @@ -29,11 +29,11 @@ The various types of modules are installed by post-install hooks and removed after an uninstall by post-uninstall hooks. This class consolidates the logic for creating an abstract description of the information that module systems need. Currently that includes a -number directories to be appended to paths in the user's environment: +number of directories to be appended to paths in the user's environment: * /bin directories to be appended to PATH * /lib* directories for LD_LIBRARY_PATH - * /man* and /share/man* directories for LD_LIBRARY_PATH + * /man* and /share/man* directories for MANPATH * the package prefix for CMAKE_PREFIX_PATH This module also includes logic for coming up with unique names for diff --git a/lib/spack/spack/packages.py b/lib/spack/spack/packages.py index f6f4cbf025..080644fb90 100644 --- a/lib/spack/spack/packages.py +++ b/lib/spack/spack/packages.py @@ -67,27 +67,28 @@ class PackageDB(object): if spec.virtual: raise UnknownPackageError(spec.name) + key = hash(spec) if kwargs.get('new', False): - if spec in self.instances: - del self.instances[spec] + if key in self.instances: + del self.instances[key] - if not spec in self.instances: + if not key in self.instances: package_class = self.get_class_for_package_name(spec.name) try: - copy = spec.copy() - self.instances[copy] = package_class(copy) + copy = spec.copy() # defensive copy. Package owns its spec. + self.instances[key] = package_class(copy) except Exception, e: if spack.debug: sys.excepthook(*sys.exc_info()) raise FailedConstructorError(spec.name, e) - return self.instances[spec] + return self.instances[key] @_autospec def delete(self, spec): """Force a package to be recreated.""" - del self.instances[spec] + del self.instances[spec.dag_hash()] def purge(self): diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index f62182ce76..037ec97a5e 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -833,7 +833,18 @@ class Spec(object): changed = any(changes) force=True - self._concrete = True + self._mark_concrete() + + + def _mark_concrete(self): + """Mark this spec and its dependencies as concrete. + + Only for internal use -- client code should use "concretize" + unless there is a need to force a spec to be concrete. + """ + for s in self.traverse(): + s._normal = True + s._concrete = True def concretized(self): @@ -1481,8 +1492,11 @@ class Spec(object): def _cmp_node(self): """Comparison key for just *this node* and not its deps.""" - return (self.name, self.versions, self.variants, - self.architecture, self.compiler) + return (self.name, + self.versions, + self.variants, + self.architecture, + self.compiler) def eq_node(self, other): @@ -1496,11 +1510,15 @@ class Spec(object): def _cmp_key(self): - """Comparison key for this node and all dependencies *without* - considering structure. This is the default, as - normalization will restore structure. + """This returns a key for the spec *including* DAG structure. + + The key is the concatenation of: + 1. A tuple describing this node in the DAG. + 2. The hash of each of this node's dependencies' cmp_keys. """ - return self._cmp_node() + (self.sorted_deps(),) + return self._cmp_node() + ( + tuple(hash(self.dependencies[name]) + for name in sorted(self.dependencies)),) def colorized(self): diff --git a/lib/spack/spack/test/spec_dag.py b/lib/spack/spack/test/spec_dag.py index 94438b6a0c..d3a4d77b32 100644 --- a/lib/spack/spack/test/spec_dag.py +++ b/lib/spack/spack/test/spec_dag.py @@ -340,16 +340,18 @@ class SpecDagTest(MockPackagesTest): self.assertEqual(spec, expected_flat) self.assertTrue(spec.eq_dag(expected_flat)) - self.assertEqual(spec, expected_normalized) + # Normalized has different DAG structure, so NOT equal. + self.assertNotEqual(spec, expected_normalized) self.assertFalse(spec.eq_dag(expected_normalized)) - self.assertEqual(spec, non_unique_nodes) + # Again, different DAG structure so not equal. + self.assertNotEqual(spec, non_unique_nodes) self.assertFalse(spec.eq_dag(non_unique_nodes)) spec.normalize() # After normalizing, spec_dag_equal should match the normalized spec. - self.assertEqual(spec, expected_flat) + self.assertNotEqual(spec, expected_flat) self.assertFalse(spec.eq_dag(expected_flat)) self.assertEqual(spec, expected_normalized) diff --git a/var/spack/packages/SAMRAI/package.py b/var/spack/packages/SAMRAI/package.py index a17aea9c99..2c3b9180af 100644 --- a/var/spack/packages/SAMRAI/package.py +++ b/var/spack/packages/SAMRAI/package.py @@ -25,7 +25,7 @@ class Samrai(Package): depends_on("mpi") depends_on("zlib") - depends_on("hdf5") + depends_on("hdf5+mpi") depends_on("boost") # don't build tools with gcc diff --git a/var/spack/packages/cleverleaf/package.py b/var/spack/packages/cleverleaf/package.py index 4e7e6a855a..fb400b25c3 100644 --- a/var/spack/packages/cleverleaf/package.py +++ b/var/spack/packages/cleverleaf/package.py @@ -14,7 +14,7 @@ class Cleverleaf(Package): version('develop', git='https://github.com/UK-MAC/CleverLeaf_ref.git', branch='develop') depends_on("SAMRAI@3.8.0:") - depends_on("hdf5") + depends_on("hdf5+mpi") depends_on("boost") def install(self, spec, prefix): diff --git a/var/spack/packages/fftw/package.py b/var/spack/packages/fftw/package.py new file mode 100644 index 0000000000..5f71762c4f --- /dev/null +++ b/var/spack/packages/fftw/package.py @@ -0,0 +1,96 @@ +############################################################################## +# Copyright (c) 2013, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Written 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 General Public License (as published by +# the Free Software Foundation) version 2.1 dated 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 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 Fftw(Package): + """ + FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of + arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine + transforms or DCT/DST). We believe that FFTW, which is free software, should become the FFT library of choice for + most applications. + """ + homepage = "http://www.fftw.org" + url = "http://www.fftw.org/fftw-3.3.4.tar.gz" + + version('3.3.4', '2edab8c06b24feeb3b82bbb3ebf3e7b3') + + ########## + # Floating point precision + FLOAT = 'float' + LONG_DOUBLE = 'long_double' + QUAD_PRECISION = 'quad' + PRECISION_OPTIONS = { + FLOAT: '--enable-float', + LONG_DOUBLE: '--enable--long-double', + QUAD_PRECISION: '--enable-quad-precision' + } + variant(FLOAT, default=False, description='Produces a single precision version of the library') + variant(LONG_DOUBLE, default=False, description='Produces a long double precision version of the library') + variant(QUAD_PRECISION, default=False, description='Produces a quad precision version of the library (works only with GCC and libquadmath)') + ########## + + variant('mpi', default=False, description='Activate MPI support') + + depends_on('mpi', when='+mpi') + + @staticmethod + def enabled(x): + """ + Given a variant name returns the string that means the variant is enabled + + :param x: variant name + """ + # FIXME : duplicated from MVAPICH2 + return '+' + x + + def check_fortran_availability(self, options): + if not self.compiler.f77 or not self.compiler.fc: + options.append("--disable-fortran") + + def set_floating_point_precision(self, spec, options): + l = [option for variant, option in Fftw.PRECISION_OPTIONS.iteritems() if self.enabled(variant) in spec] + if len(l) > 1: + raise RuntimeError('At most one floating point precision variant may activated per build.') + options.extend(l) + + def install(self, spec, prefix): + + options = ['--prefix=%s' % prefix, + '--enable-shared', + '--enable-threads', + '--enable-openmp'] + self.check_fortran_availability(options) + self.set_floating_point_precision(spec, options) + + if '+mpi' in spec: + options.append('--enable-mpi') + + configure(*options) + make() + make("install") + diff --git a/var/spack/packages/fontconfig/package.py b/var/spack/packages/fontconfig/package.py index 89b13604e8..517c9d1813 100644 --- a/var/spack/packages/fontconfig/package.py +++ b/var/spack/packages/fontconfig/package.py @@ -8,9 +8,10 @@ class Fontconfig(Package): version('2.11.1' , 'e75e303b4f7756c2b16203a57ac87eba') depends_on('freetype') + depends_on('libxml2') def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure("--prefix=%s" % prefix, "--enable-libxml2") make() make("install") diff --git a/var/spack/packages/gnuplot/package.py b/var/spack/packages/gnuplot/package.py new file mode 100644 index 0000000000..71c09bd43d --- /dev/null +++ b/var/spack/packages/gnuplot/package.py @@ -0,0 +1,61 @@ +############################################################################## +# Copyright (c) 2013, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Written 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 General Public License (as published by +# the Free Software Foundation) version 2.1 dated 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 General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## + +from spack import * + +import os + +class Gnuplot(Package): + """ + Gnuplot is a portable command-line driven graphing utility for Linux, OS/2, MS Windows, OSX, VMS, and many other + platforms. The source code is copyrighted but freely distributed (i.e., you don't have to pay for it). It was + originally created to allow scientists and students to visualize mathematical functions and data interactively, + but has grown to support many non-interactive uses such as web scripting. It is also used as a plotting engine by + third-party applications like Octave. Gnuplot has been supported and under active development since 1986 + """ + homepage = "http://www.gnuplot.info" + url = "http://downloads.sourceforge.net/project/gnuplot/gnuplot/5.0.1/gnuplot-5.0.1.tar.gz" + + version('5.0.1', '79b4f9e203728f76b60b28bcd402d3c7') + + depends_on('readline') + depends_on('libcerf') + depends_on('libgd') + depends_on('cairo') + depends_on('pango') + depends_on('wx', when='+wx') + + variant('wx', default=False, description='Activates wxWidgets terminal') + + def install(self, spec, prefix): + # It seems there's an open bug for wxWidgets support + # See : http://sourceforge.net/p/gnuplot/bugs/1694/ + os.environ['TERMLIBS'] = '-lX11' + + options = ['--prefix=%s' % prefix] + + configure(*options) + make() + make("install") diff --git a/var/spack/packages/gsl/package.py b/var/spack/packages/gsl/package.py new file mode 100644 index 0000000000..789eb49d85 --- /dev/null +++ b/var/spack/packages/gsl/package.py @@ -0,0 +1,46 @@ +############################################################################## +# Copyright (c) 2013, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Written 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 General Public License (as published by +# the Free Software Foundation) version 2.1 dated 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 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 Gsl(Package): + """ + The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the + GNU General Public License. The library provides a wide range of mathematical routines such as random number + generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive + test suite. + """ + homepage = "http://www.gnu.org/software/gsl" + url = "http://mirror.switch.ch/ftp/mirror/gnu/gsl/gsl-2.1.tar.gz" + + version('2.1' , 'd8f70abafd3e9f0bae03c52d1f4e8de5') + version('2.0' , 'ae44cdfed78ece40e73411b63a78c375') + version('1.16', 'e49a664db13d81c968415cd53f62bc8b') + + def install(self, spec, prefix): + configure('--prefix=%s' % prefix) + make() + make("install") diff --git a/var/spack/packages/hdf5/package.py b/var/spack/packages/hdf5/package.py index 48997425cd..44d4ede278 100644 --- a/var/spack/packages/hdf5/package.py +++ b/var/spack/packages/hdf5/package.py @@ -15,19 +15,28 @@ class Hdf5(Package): version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24') version('1.8.13', 'c03426e9e77d7766944654280b467289') - depends_on("mpi") + variant('mpi', default=False, description='Enable MPI support') + + depends_on("mpi", when='+mpi') depends_on("zlib") # TODO: currently hard-coded to use OpenMPI def install(self, spec, prefix): + extra_args = [] + if '+mpi' in spec: + extra_args.extend([ + "--enable-parallel", + "CC=%s" % spec['mpich'].prefix.bin + "/mpicc", + "CXX=%s" % spec['mpich'].prefix.bin + "/mpic++", + ]) configure( "--prefix=%s" % prefix, "--with-zlib=%s" % spec['zlib'].prefix, - "--enable-parallel", "--enable-shared", "CC=%s" % spec['mpi'].prefix.bin + "/mpicc", - "CXX=%s" % spec['mpi'].prefix.bin + "/mpic++") + "CXX=%s" % spec['mpi'].prefix.bin + "/mpic++", + *extra_args) make() make("install") diff --git a/var/spack/packages/libcerf/package.py b/var/spack/packages/libcerf/package.py new file mode 100644 index 0000000000..15e87ce4fe --- /dev/null +++ b/var/spack/packages/libcerf/package.py @@ -0,0 +1,42 @@ +############################################################################## +# Copyright (c) 2013, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Written 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 General Public License (as published by +# the Free Software Foundation) version 2.1 dated 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 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 Libcerf(Package): + """ + A self-contained C library providing complex error functions, based on Faddeeva's plasma dispersion function + w(z). Also provides Dawson's integral and Voigt's convolution of a Gaussian and a Lorentzian + """ + homepage = "http://sourceforge.net/projects/libcerf" + url = "http://downloads.sourceforge.net/project/libcerf/libcerf-1.3.tgz" + + version('1.3', 'b3504c467204df71e62aeccf73a25612') + + def install(self, spec, prefix): + configure('--prefix=%s' % prefix) + make() + make("install") diff --git a/var/spack/packages/libgd/package.py b/var/spack/packages/libgd/package.py new file mode 100644 index 0000000000..d920957ef1 --- /dev/null +++ b/var/spack/packages/libgd/package.py @@ -0,0 +1,53 @@ +############################################################################## +# Copyright (c) 2013, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Written 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 General Public License (as published by +# the Free Software Foundation) version 2.1 dated 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 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 Libgd(Package): + """ + GD is an open source code library for the dynamic creation of images by programmers. GD is written in C, and + "wrappers" are available for Perl, PHP and other languages. GD creates PNG, JPEG, GIF, WebP, XPM, BMP images, + among other formats. GD is commonly used to generate charts, graphics, thumbnails, and most anything else, on the + fly. While not restricted to use on the web, the most common applications of GD involve website development. + """ + + homepage = "https://github.com/libgd/libgd" + url = "https://github.com/libgd/libgd/archive/gd-2.1.1.tar.gz" + + version('2.1.1', 'e91a1a99903e460e7ba00a794e72cc1e') + + depends_on('libpng') + + def install(self, spec, prefix): + + with working_dir('spack-build', create=True): + cmake('..', + '-DENABLE_JPEG:BOOL=ON', + '-DENABLE_PNG:BOOL=ON', + '-DENABLE_TIFF:BOOL=ON', + *std_cmake_args) + make() + make("install") diff --git a/var/spack/packages/ncurses/package.py b/var/spack/packages/ncurses/package.py index cc180bbae1..31f53b6c43 100644 --- a/var/spack/packages/ncurses/package.py +++ b/var/spack/packages/ncurses/package.py @@ -14,6 +14,8 @@ class Ncurses(Package): version('6.0', 'ee13d052e1ead260d7c28071f46eefb1', url='http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.0.tar.gz') + patch('patch_gcc_5.txt', when='%gcc@5.0:') + def install(self, spec, prefix): configure("--prefix=%s" % prefix, "--with-shared", diff --git a/var/spack/packages/ncurses/patch_gcc_5.txt b/var/spack/packages/ncurses/patch_gcc_5.txt new file mode 100644 index 0000000000..f85e07cb8d --- /dev/null +++ b/var/spack/packages/ncurses/patch_gcc_5.txt @@ -0,0 +1,12 @@ +diff -Naur ncurses-6.0/ncurses/Makefile.in ncurses-6.0-patched/ncurses/Makefile.in +--- ncurses-6.0/ncurses/Makefile.in 2015-08-06 01:15:41.000000000 +0200 ++++ ncurses-6.0-patched/ncurses/Makefile.in 2015-12-15 14:58:52.710199407 +0100 +@@ -219,7 +219,7 @@ + $(SHELL) -e $(tinfo)/MKfallback.sh $(TERMINFO) $(TERMINFO_SRC) $(TIC_PATH) $(FALLBACK_LIST) >$@ + + ./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h +- $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@ ++ $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS) -P" "$(AWK)" generated <../include/curses.h >$@ + + init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list + ./make_keys$(BUILD_EXEEXT) keys.list > $@ diff --git a/var/spack/packages/paraview/package.py b/var/spack/packages/paraview/package.py index b0893237e9..1d99b34899 100644 --- a/var/spack/packages/paraview/package.py +++ b/var/spack/packages/paraview/package.py @@ -24,7 +24,8 @@ class Paraview(Package): depends_on('bzip2') depends_on('freetype') - depends_on('hdf5') # drags in mpi + depends_on('hdf5') + depends_on('hdf5+mpi', when='+mpi') depends_on('jpeg') depends_on('libpng') depends_on('libtiff') diff --git a/var/spack/packages/petsc/package.py b/var/spack/packages/petsc/package.py index 4864e39bf1..f3ed3d72ec 100644 --- a/var/spack/packages/petsc/package.py +++ b/var/spack/packages/petsc/package.py @@ -18,7 +18,7 @@ class Petsc(Package): depends_on("hypre") depends_on("parmetis") depends_on("metis") - depends_on("hdf5") + depends_on("hdf5+mpi") depends_on("mpi") def install(self, spec, prefix): diff --git a/var/spack/packages/wx/package.py b/var/spack/packages/wx/package.py index 1813a8c8a5..206fde7775 100644 --- a/var/spack/packages/wx/package.py +++ b/var/spack/packages/wx/package.py @@ -16,6 +16,8 @@ class Wx(Package): version('3.0.1', 'dad1f1cd9d4c370cbc22700dc492da31', url="https://sourceforge.net/projects/wxwindows/files/3.0.1/wxWidgets-3.0.1.tar.bz2") + depends_on('gtkplus') + def install(self, spec, prefix): configure("--prefix=%s" % prefix, "--enable-unicode", "--disable-precomp-headers") |