summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2019-09-17 18:41:18 +0200
committerTodd Gamblin <tgamblin@llnl.gov>2019-09-20 00:51:37 -0700
commit7daf8609914d929bbce7cfe8e17e40fc4ae1e01a (patch)
tree081b48178965ba8e60f40e719af53a93843863bf
parent3c4322bf1abb7af691179434652188b64e90e4dc (diff)
downloadspack-7daf8609914d929bbce7cfe8e17e40fc4ae1e01a.tar.gz
spack-7daf8609914d929bbce7cfe8e17e40fc4ae1e01a.tar.bz2
spack-7daf8609914d929bbce7cfe8e17e40fc4ae1e01a.tar.xz
spack-7daf8609914d929bbce7cfe8e17e40fc4ae1e01a.zip
targets: adjust packages to use new specific targets semantics
Seamless translation from 'target=<generic>' to either - target.family == <generic> (in methods) - 'target=<generic>:' (in directives) Also updated docs to show ranges in directives.
-rw-r--r--lib/spack/docs/packaging_guide.rst14
-rw-r--r--var/spack/repos/builtin/packages/bowtie2/package.py12
-rw-r--r--var/spack/repos/builtin/packages/cbtf-krell/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cctools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cudnn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dialign-tx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/diffsplice/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fasta/package.py3
-rw-r--r--var/spack/repos/builtin/packages/fftw/package.py3
-rw-r--r--var/spack/repos/builtin/packages/flang/package.py10
-rw-r--r--var/spack/repos/builtin/packages/hisea/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hpctoolkit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hpgmg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ibm-java/package.py2
-rw-r--r--var/spack/repos/builtin/packages/intel-parallel-studio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/intel-xed/package.py4
-rw-r--r--var/spack/repos/builtin/packages/intel/package.py2
-rw-r--r--var/spack/repos/builtin/packages/isaac-server/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jdk/package.py4
-rw-r--r--var/spack/repos/builtin/packages/julia/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libsharp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/masurca/package.py4
-rw-r--r--var/spack/repos/builtin/packages/megahit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/minimap2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/nanoflann/package.py3
-rw-r--r--var/spack/repos/builtin/packages/openblas/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openjdk/package.py4
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop-utils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openssl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/parsimonator/package.py6
-rw-r--r--var/spack/repos/builtin/packages/planck-likelihood/package.py2
-rw-r--r--var/spack/repos/builtin/packages/portcullis/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-flye/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rapidjson/package.py2
-rw-r--r--var/spack/repos/builtin/packages/raxml/package.py4
-rw-r--r--var/spack/repos/builtin/packages/rocksdb/package.py3
-rw-r--r--var/spack/repos/builtin/packages/sdl2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/strace/package.py2
-rw-r--r--var/spack/repos/builtin/packages/subread/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tealeaf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vdt/package.py8
-rw-r--r--var/spack/repos/builtin/packages/velvet/package.py2
43 files changed, 80 insertions, 68 deletions
diff --git a/lib/spack/docs/packaging_guide.rst b/lib/spack/docs/packaging_guide.rst
index 1505b9a097..5adb996232 100644
--- a/lib/spack/docs/packaging_guide.rst
+++ b/lib/spack/docs/packaging_guide.rst
@@ -410,6 +410,8 @@ For tarball downloads, Spack can currently support checksums using the
MD5, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 algorithms. It
determines the algorithm to use based on the hash length.
+.. _versions-and-fetching:
+
---------------------
Versions and fetching
---------------------
@@ -3290,7 +3292,17 @@ Within directives each of the names above can be used to match a particular targ
# This patch is only applied on icelake microarchitectures
patch("icelake.patch", when="target=icelake")
-in a similar way to what we have seen before for ``platform`` and ``os``.
+It's also possible to select all the architectures belonging to the same family
+using an open range:
+
+.. code-block:: python
+
+ class Julia(Package):
+ # This patch is applied on all x86_64 microarchitectures.
+ # The trailing colon that denotes an open range of targets
+ patch("generic_x86_64.patch", when="target=x86_64:")
+
+in a way that resembles what was shown in :ref:`versions-and-fetching` for versions.
Where ``target`` objects really shine though is when they are used in methods
called at configure, build or install time. In that case we can test targets
for supported features, for instance:
diff --git a/var/spack/repos/builtin/packages/bowtie2/package.py b/var/spack/repos/builtin/packages/bowtie2/package.py
index 8f00d1ddf9..b19a15cd9f 100644
--- a/var/spack/repos/builtin/packages/bowtie2/package.py
+++ b/var/spack/repos/builtin/packages/bowtie2/package.py
@@ -31,17 +31,17 @@ class Bowtie2(Package):
patch('bowtie2-2.3.1.patch', when='@2.3.1', level=0)
patch('bowtie2-2.3.0.patch', when='@2.3.0', level=0)
resource(name='simde', git="https://github.com/nemequ/simde",
- destination='.', when='target=aarch64')
+ destination='.', when='target=aarch64:')
# seems to have trouble with 6's -std=gnu++14
conflicts('%gcc@6:', when='@:2.3.1')
- conflicts('@:2.3.5.0', when='target=aarch64')
+ conflicts('@:2.3.5.0', when='target=aarch64:')
def patch(self):
- if self.spec.satisfies('target=aarch64'):
+ if self.spec.target.family == 'aarch64':
copy_tree('simde', 'third_party/simde')
- if self.spec.satisfies('%gcc@:4.8.9 target=aarch64'):
- filter_file('-fopenmp-simd', '', 'Makefile')
+ if self.spec.satisfies('%gcc@:4.8.9'):
+ filter_file('-fopenmp-simd', '', 'Makefile')
@run_before('install')
def filter_sbang(self):
@@ -66,7 +66,7 @@ class Bowtie2(Package):
def install(self, spec, prefix):
make_arg = []
- if self.spec.satisfies('target=aarch64'):
+ if self.spec.target.family == 'aarch64':
make_arg.append('POPCNT_CAPABILITY=0')
make(*make_arg)
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py
index ec935bb003..194367060c 100644
--- a/var/spack/repos/builtin/packages/cbtf-krell/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py
@@ -105,7 +105,7 @@ class CbtfKrell(CMakePackage):
depends_on("gotcha")
- patch('arm.patch', when='target=aarch64')
+ patch('arm.patch', when='target=aarch64:')
parallel = False
diff --git a/var/spack/repos/builtin/packages/cctools/package.py b/var/spack/repos/builtin/packages/cctools/package.py
index 70a04d3521..d58c73ddff 100644
--- a/var/spack/repos/builtin/packages/cctools/package.py
+++ b/var/spack/repos/builtin/packages/cctools/package.py
@@ -24,7 +24,7 @@ class Cctools(AutotoolsPackage):
depends_on('swig')
# depends_on('xrootd')
depends_on('zlib')
- patch('arm.patch', when='target=aarch64')
+ patch('arm.patch', when='target=aarch64:')
# Generally SYS_foo is defined to __NR_foo (sys/syscall.h) which
# is then defined to a syscall number (asm/unistd_64.h). Certain
diff --git a/var/spack/repos/builtin/packages/cudnn/package.py b/var/spack/repos/builtin/packages/cudnn/package.py
index 35959637cf..8bb374aea4 100644
--- a/var/spack/repos/builtin/packages/cudnn/package.py
+++ b/var/spack/repos/builtin/packages/cudnn/package.py
@@ -46,7 +46,7 @@ class Cudnn(Package):
def install(self, spec, prefix):
install_tree('.', prefix)
- if 'target=ppc64le platform=linux' in spec:
+ if 'target=ppc64le: platform=linux' in spec:
symlink(os.path.join(prefix, 'targets', 'ppc64le-linux', 'lib'),
prefix.lib)
symlink(
diff --git a/var/spack/repos/builtin/packages/dialign-tx/package.py b/var/spack/repos/builtin/packages/dialign-tx/package.py
index 6b0a5f4bf8..961ea6be82 100644
--- a/var/spack/repos/builtin/packages/dialign-tx/package.py
+++ b/var/spack/repos/builtin/packages/dialign-tx/package.py
@@ -24,7 +24,7 @@ class DialignTx(MakefilePackage):
makefile = FileFilter('Makefile')
makefile.filter(' -march=i686 ', ' ')
makefile.filter('CC=gcc', 'CC=%s' % spack_cc)
- if spec.satisfies('target=aarch64'):
+ if spec.target.family == 'aarch64':
makefile.filter('-mfpmath=sse -msse -mmmx', ' ')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/diffsplice/package.py b/var/spack/repos/builtin/packages/diffsplice/package.py
index f213958b6e..637671843a 100644
--- a/var/spack/repos/builtin/packages/diffsplice/package.py
+++ b/var/spack/repos/builtin/packages/diffsplice/package.py
@@ -18,7 +18,7 @@ class Diffsplice(MakefilePackage):
version('0.1.1', 'be90e6c072402d5aae0b4e2cbb8c10ac')
def edit(self, spec, prefix):
- if spec.satisfies('target=aarch64'):
+ if spec.target.family == 'aarch64':
makefile = FileFilter(join_path(self.build_directory, 'Makefile'))
makefile.filter('-m64', '')
diff --git a/var/spack/repos/builtin/packages/fasta/package.py b/var/spack/repos/builtin/packages/fasta/package.py
index ad2da2eebe..d211d15c47 100644
--- a/var/spack/repos/builtin/packages/fasta/package.py
+++ b/var/spack/repos/builtin/packages/fasta/package.py
@@ -30,8 +30,7 @@ class Fasta(MakefilePackage):
def makefile_name(self):
if self.spec.satisfies('platform=darwin'):
name = 'Makefile.os_x86_64'
- elif (self.spec.satisfies('platform=linux') and
- self.spec.satisfies('target=x86_64')):
+ elif self.spec.satisfies('platform=linux target=x86_64:'):
name = 'Makefile.linux64_sse2'
else:
tty.die('''Unsupported platform/target, must be
diff --git a/var/spack/repos/builtin/packages/fftw/package.py b/var/spack/repos/builtin/packages/fftw/package.py
index 1f96bd88c3..d719f973bd 100644
--- a/var/spack/repos/builtin/packages/fftw/package.py
+++ b/var/spack/repos/builtin/packages/fftw/package.py
@@ -96,8 +96,7 @@ class Fftw(AutotoolsPackage):
for targets, simds in target_simds.items():
if (
(arch not in targets)
- and not any(
- spec.satisfies('target={0}'.format(t)) for t in targets)
+ and str(spec.target.family) not in targets
):
if any(spec.satisfies('simd={0}'.format(x)) for x in simds):
raise ConflictsInSpecError(
diff --git a/var/spack/repos/builtin/packages/flang/package.py b/var/spack/repos/builtin/packages/flang/package.py
index f6a6f276ba..364448e4bd 100644
--- a/var/spack/repos/builtin/packages/flang/package.py
+++ b/var/spack/repos/builtin/packages/flang/package.py
@@ -21,14 +21,14 @@ class Flang(CMakePackage):
version('20180612', '62284e26214eaaff261a922c67f6878c')
depends_on('llvm@flang-develop', when='@develop')
- depends_on('llvm@flang-20180921', when='@20180921 target=x86_64')
- depends_on('llvm@flang-20180612', when='@20180612 target=x86_64')
+ depends_on('llvm@flang-20180921', when='@20180921 target=x86_64:')
+ depends_on('llvm@flang-20180612', when='@20180612 target=x86_64:')
- depends_on('llvm@flang-20180921', when='@20180921 target=aarch64')
+ depends_on('llvm@flang-20180921', when='@20180921 target=aarch64:')
# LLVM version specific to OpenPOWER.
- depends_on('llvm@flang-ppc64le-20180921', when='@20180921 target=ppc64le')
- depends_on('llvm@flang-ppc64le-20180612', when='@20180612 target=ppc64le')
+ depends_on('llvm@flang-ppc64le-20180921', when='@20180921 target=ppc64le:')
+ depends_on('llvm@flang-ppc64le-20180612', when='@20180612 target=ppc64le:')
depends_on('pgmath@develop', when='@develop')
depends_on('pgmath@20180921', when='@20180921')
diff --git a/var/spack/repos/builtin/packages/hisea/package.py b/var/spack/repos/builtin/packages/hisea/package.py
index ec98bf8e26..2f15cd392f 100644
--- a/var/spack/repos/builtin/packages/hisea/package.py
+++ b/var/spack/repos/builtin/packages/hisea/package.py
@@ -20,7 +20,7 @@ class Hisea(MakefilePackage):
depends_on('boost')
def patch(self):
- if self.spec.satisfies("target=aarch64"):
+ if self.spec.target.family == 'aarch64':
filter_file('-mpopcnt', '', 'Makefile')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py
index e20b728581..f149537a51 100644
--- a/var/spack/repos/builtin/packages/hpctoolkit/package.py
+++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py
@@ -73,7 +73,7 @@ class Hpctoolkit(AutotoolsPackage):
depends_on('zlib')
depends_on('cuda', when='+cuda')
- depends_on('intel-xed', when='target=x86_64')
+ depends_on('intel-xed', when='target=x86_64:')
depends_on('mbedtls+pic', when='@gpu')
depends_on('papi', when='+papi')
depends_on('libpfm4', when='~papi')
diff --git a/var/spack/repos/builtin/packages/hpgmg/package.py b/var/spack/repos/builtin/packages/hpgmg/package.py
index d4dd9e1f77..6807b79ae5 100644
--- a/var/spack/repos/builtin/packages/hpgmg/package.py
+++ b/var/spack/repos/builtin/packages/hpgmg/package.py
@@ -68,7 +68,7 @@ class Hpgmg(Package):
cflags.append('-O3')
if self.compiler.target in ['x86_64']:
cflags.append('-march=native')
- elif not self.spec.satisfies('target=aarch64 %gcc@:5.9'):
+ elif not self.spec.satisfies('target=aarch64: %gcc@:5.9'):
cflags.append('-mcpu=native')
cflags.append('-mtune=native')
else:
diff --git a/var/spack/repos/builtin/packages/ibm-java/package.py b/var/spack/repos/builtin/packages/ibm-java/package.py
index f6f6bc2f6b..149a75aac4 100644
--- a/var/spack/repos/builtin/packages/ibm-java/package.py
+++ b/var/spack/repos/builtin/packages/ibm-java/package.py
@@ -27,7 +27,7 @@ class IbmJava(Package):
provides('java@8')
- conflicts('target=x86_64', msg='ibm-java is only available for ppc64 and ppc64le')
+ conflicts('target=x86_64:', msg='ibm-java is only available for ppc64 and ppc64le')
# This assumes version numbers are 4-tuples: 8.0.5.30
def url_for_version(self, version):
diff --git a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
index 409e642000..e4d9bd4d6c 100644
--- a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
+++ b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
@@ -196,7 +196,7 @@ class IntelParallelStudio(IntelPackage):
# MacOS does not support some of the auto dispatch settings
conflicts('auto_dispatch=SSE2', 'platform=darwin',
msg='SSE2 is not supported on MacOS')
- conflicts('auto_dispatch=SSE3', 'platform=darwin target=x86_64',
+ conflicts('auto_dispatch=SSE3', 'platform=darwin target=x86_64:',
msg='SSE3 is not supported on MacOS x86_64')
def setup_dependent_environment(self, *args):
diff --git a/var/spack/repos/builtin/packages/intel-xed/package.py b/var/spack/repos/builtin/packages/intel-xed/package.py
index 066631a48e..9b95329a21 100644
--- a/var/spack/repos/builtin/packages/intel-xed/package.py
+++ b/var/spack/repos/builtin/packages/intel-xed/package.py
@@ -44,8 +44,8 @@ class IntelXed(Package):
depends_on('python@2.7:', type='build')
- conflicts('target=ppc64', msg='intel-xed only runs on x86')
- conflicts('target=ppc64le', msg='intel-xed only runs on x86')
+ conflicts('target=ppc64:', msg='intel-xed only runs on x86')
+ conflicts('target=ppc64le:', msg='intel-xed only runs on x86')
mycflags = []
diff --git a/var/spack/repos/builtin/packages/intel/package.py b/var/spack/repos/builtin/packages/intel/package.py
index a611c09fb7..603ba4036f 100644
--- a/var/spack/repos/builtin/packages/intel/package.py
+++ b/var/spack/repos/builtin/packages/intel/package.py
@@ -53,7 +53,7 @@ class Intel(IntelPackage):
# MacOS does not support some of the auto dispatch settings
conflicts('auto_dispatch=SSE2', 'platform=darwin',
msg='SSE2 is not supported on MacOS')
- conflicts('auto_dispatch=SSE3', 'platform=darwin target=x86_64',
+ conflicts('auto_dispatch=SSE3', 'platform=darwin target=x86_64:',
msg='SSE3 is not supported on MacOS x86_64')
# Since the current package is a subset of 'intel-parallel-studio',
diff --git a/var/spack/repos/builtin/packages/isaac-server/package.py b/var/spack/repos/builtin/packages/isaac-server/package.py
index 9ebe391a14..e712df2b29 100644
--- a/var/spack/repos/builtin/packages/isaac-server/package.py
+++ b/var/spack/repos/builtin/packages/isaac-server/package.py
@@ -35,6 +35,6 @@ class IsaacServer(CMakePackage):
# https://github.com/ComputationalRadiationPhysics/isaac/pull/70
patch('jpeg.patch', when='@:1.3.1')
- patch('arm.patch', when='@:1.4.0 target=aarch64')
+ patch('arm.patch', when='@:1.4.0 target=aarch64:')
root_cmakelists_dir = 'server'
diff --git a/var/spack/repos/builtin/packages/jdk/package.py b/var/spack/repos/builtin/packages/jdk/package.py
index 6efd7dfb67..8109138b11 100644
--- a/var/spack/repos/builtin/packages/jdk/package.py
+++ b/var/spack/repos/builtin/packages/jdk/package.py
@@ -71,8 +71,8 @@ class Jdk(Package):
provides('java@8', when='@1.8.0:1.8.999')
provides('java@7', when='@1.7.0:1.7.999')
- conflicts('target=ppc64', msg='jdk is only available for x86_64')
- conflicts('target=ppc64le', msg='jdk is only available for x86_64')
+ conflicts('target=ppc64:', msg='jdk is only available for x86_64')
+ conflicts('target=ppc64le:', msg='jdk is only available for x86_64')
# FIXME:
# 1. `extends('java')` doesn't work, you need to use `extends('jdk')`
diff --git a/var/spack/repos/builtin/packages/julia/package.py b/var/spack/repos/builtin/packages/julia/package.py
index 3c47527f16..26a023c0eb 100644
--- a/var/spack/repos/builtin/packages/julia/package.py
+++ b/var/spack/repos/builtin/packages/julia/package.py
@@ -43,7 +43,7 @@ class Julia(Package):
patch('gc.patch', when='@0.4:0.4.5')
patch('openblas.patch', when='@0.4:0.4.5')
- patch('armgcc.patch', when='@1.0.0:1.1.1 %gcc@:5.9 target=aarch64')
+ patch('armgcc.patch', when='@1.0.0:1.1.1 %gcc@:5.9 target=aarch64:')
variant('binutils', default=sys.platform != 'darwin',
description="Build via binutils")
@@ -102,7 +102,7 @@ class Julia(Package):
depends_on("mpi", when="+mpi", type="run")
depends_on("py-matplotlib", when="+plot", type="run")
- conflicts("@:0.7.0", when="target=aarch64")
+ conflicts("@:0.7.0", when="target=aarch64:")
def install(self, spec, prefix):
# Julia needs git tags
@@ -133,7 +133,7 @@ class Julia(Package):
"BUILD_LLVM_CLANG=1",
"LLVM_ASSERTIONS=1",
"USE_LLVM_SHLIB=1"]
- if spec.satisfies('target=aarch64'):
+ if spec.target.family == 'aarch64':
options += [
'JULIA_CPU_TARGET=generic',
'MARCH=armv8-a+crc']
diff --git a/var/spack/repos/builtin/packages/libsharp/package.py b/var/spack/repos/builtin/packages/libsharp/package.py
index ab1007e013..332d2b0e5f 100644
--- a/var/spack/repos/builtin/packages/libsharp/package.py
+++ b/var/spack/repos/builtin/packages/libsharp/package.py
@@ -23,8 +23,8 @@ class Libsharp(AutotoolsPackage):
depends_on('autoconf', type='build')
depends_on('mpi', when='+mpi')
- patch('arm.patch', when='@2018-01-17 target=aarch64')
- patch('1.0.0-arm.patch', when='@1.0.0 target=aarch64')
+ patch('arm.patch', when='@2018-01-17 target=aarch64:')
+ patch('1.0.0-arm.patch', when='@1.0.0 target=aarch64:')
def autoreconf(self, spec, prefix):
"""Generate autotools configuration"""
diff --git a/var/spack/repos/builtin/packages/masurca/package.py b/var/spack/repos/builtin/packages/masurca/package.py
index 98adbafe9f..28e657d8d5 100644
--- a/var/spack/repos/builtin/packages/masurca/package.py
+++ b/var/spack/repos/builtin/packages/masurca/package.py
@@ -20,10 +20,10 @@ class Masurca(Package):
depends_on('perl', type=('build', 'run'))
depends_on('boost')
depends_on('zlib')
- patch('arm.patch', when='target=aarch64')
+ patch('arm.patch', when='target=aarch64:')
def patch(self):
- if self.spec.satisfies('target=aarch64'):
+ if self.spec.target.family == 'aarch64':
for makefile in 'Makefile.am', 'Makefile.in':
m = join_path('global-1', 'prepare', makefile)
filter_file('-minline-all-stringops', '', m)
diff --git a/var/spack/repos/builtin/packages/megahit/package.py b/var/spack/repos/builtin/packages/megahit/package.py
index 64f8d01de6..216bae616f 100644
--- a/var/spack/repos/builtin/packages/megahit/package.py
+++ b/var/spack/repos/builtin/packages/megahit/package.py
@@ -18,7 +18,7 @@ class Megahit(MakefilePackage):
depends_on('zlib')
- patch('amd.patch', when='target=aarch64')
+ patch('amd.patch', when='target=aarch64:')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/minimap2/package.py b/var/spack/repos/builtin/packages/minimap2/package.py
index 4e17ec4957..9682c1c6d6 100644
--- a/var/spack/repos/builtin/packages/minimap2/package.py
+++ b/var/spack/repos/builtin/packages/minimap2/package.py
@@ -18,14 +18,14 @@ class Minimap2(PythonPackage):
version('2.10', '52b36f726ec00bfca4a2ffc23036d1a2b5f96f0aae5a92fd826be6680c481c20')
version('2.2', '5b68e094f4fa3dfbd9b37d5b654b7715')
- conflicts('target=aarch64', when='@:2.10')
+ conflicts('target=aarch64:', when='@:2.10')
depends_on('zlib', type='link')
depends_on('py-cython', type='build')
@run_after('install')
def install_minimap2(self):
make_arg = []
- if self.spec.satisfies("target=aarch64"):
+ if self.spec.target.family == 'aarch64':
make_arg.extend([
'arm_neon=1',
'aarch64~1'
diff --git a/var/spack/repos/builtin/packages/nanoflann/package.py b/var/spack/repos/builtin/packages/nanoflann/package.py
index 88f3a64513..2e5a259469 100644
--- a/var/spack/repos/builtin/packages/nanoflann/package.py
+++ b/var/spack/repos/builtin/packages/nanoflann/package.py
@@ -16,7 +16,8 @@ class Nanoflann(CMakePackage):
version('1.2.3', '92a0f44a631c41aa06f9716c51dcdb11')
def patch(self):
- if self.spec.satisfies('target=aarch64 %gcc@:5.9'):
+ if self.spec.target.family == 'aarch64' and \
+ self.spec.satisfies('%gcc@:5.9'):
filter_file('-mtune=native', '', 'CMakeLists.txt')
def cmake_args(self):
diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py
index 93109e77f7..980585c58c 100644
--- a/var/spack/repos/builtin/packages/openblas/package.py
+++ b/var/spack/repos/builtin/packages/openblas/package.py
@@ -86,7 +86,7 @@ class Openblas(MakefilePackage):
# Fixes compilation error on POWER8 with GCC 7
# https://github.com/xianyi/OpenBLAS/pull/1098
- patch('power8.patch', when='@0.2.18:0.2.19 %gcc@7.1.0: target=ppc64')
+ patch('power8.patch', when='@0.2.18:0.2.19 %gcc@7.1.0: target=power8')
# Change file comments to work around clang 3.9 assembler bug
# https://github.com/xianyi/OpenBLAS/pull/982
diff --git a/var/spack/repos/builtin/packages/openjdk/package.py b/var/spack/repos/builtin/packages/openjdk/package.py
index 567155db67..0e7e10588b 100644
--- a/var/spack/repos/builtin/packages/openjdk/package.py
+++ b/var/spack/repos/builtin/packages/openjdk/package.py
@@ -34,8 +34,8 @@ class Openjdk(Package):
provides('java@11', when='@11.0:11.99')
provides('java@8', when='@1.8.0:1.8.999')
- conflicts('target=ppc64', msg='openjdk is only available for x86_64')
- conflicts('target=ppc64le', msg='openjdk is only available for x86_64')
+ conflicts('target=ppc64:', msg='openjdk is only available for x86_64')
+ conflicts('target=ppc64le:', msg='openjdk is only available for x86_64')
# FIXME:
# 1. `extends('java')` doesn't work, you need to use `extends('openjdk')`
diff --git a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
index 7f5d134b34..b4e1fe97bd 100644
--- a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
@@ -142,7 +142,7 @@ class OpenspeedshopUtils(CMakePackage):
depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3:9999+cti', type=('build', 'link', 'run'))
depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3:9999', type=('build', 'link', 'run'))
- patch('arm.patch', when='target=aarch64')
+ patch('arm.patch', when='target=aarch64:')
parallel = False
build_directory = 'build_openspeedshop'
diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py
index cd9e618d06..349ddee052 100644
--- a/var/spack/repos/builtin/packages/openspeedshop/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop/package.py
@@ -140,7 +140,7 @@ class Openspeedshop(CMakePackage):
depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3:9999+cti', type=('build', 'link', 'run'))
depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3:9999', type=('build', 'link', 'run'))
- patch('arm.patch', when='target=aarch64')
+ patch('arm.patch', when='target=aarch64:')
parallel = False
build_directory = 'build_openspeedshop'
diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py
index 643cdc62bd..e3d6fefee4 100644
--- a/var/spack/repos/builtin/packages/openssl/package.py
+++ b/var/spack/repos/builtin/packages/openssl/package.py
@@ -88,7 +88,7 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
# Makefile, leading to build errors.
env.pop('APPS', None)
- if spec.satisfies('target=x86_64') or spec.satisfies('target=ppc64'):
+ if str(spec.target.family) in ('x86_64', 'ppc64'):
# This needs to be done for all 64-bit architectures (except Linux,
# where it happens automatically?)
env['KERNEL_BITS'] = '64'
diff --git a/var/spack/repos/builtin/packages/parsimonator/package.py b/var/spack/repos/builtin/packages/parsimonator/package.py
index aab41397ba..b72525d94d 100644
--- a/var/spack/repos/builtin/packages/parsimonator/package.py
+++ b/var/spack/repos/builtin/packages/parsimonator/package.py
@@ -30,7 +30,7 @@ class Parsimonator(MakefilePackage):
# FIXME; It is assumed that cray is x86_64.
# If you support arm on cray, you need to fix it.
arch = 'x86_64'
- if (arch != 'x86_64' and not spec.satisfies("target=x86_64")):
+ if arch != 'x86_64' and spec.target.family != 'x86_64':
if spec.satisfies("+sse"):
raise ConflictsInSpecError(
spec,
@@ -55,7 +55,7 @@ class Parsimonator(MakefilePackage):
@property
def makefile_file(self):
- if not self.spec.satisfies('target=x86_64'):
+ if self.spec.target.family != 'x86_64':
return 'Makefile.nosse'
elif '+sse' in self.spec:
return 'Makefile.SSE3.gcc'
@@ -73,7 +73,7 @@ class Parsimonator(MakefilePackage):
def install(self, spec, prefix):
mkdirp(prefix.bin)
- if not self.spec.satisfies('target=x86_64'):
+ if self.spec.target.family != 'x86_64':
install('parsimonator', prefix.bin)
elif '+sse' in spec:
install('parsimonator-SSE3', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/planck-likelihood/package.py b/var/spack/repos/builtin/packages/planck-likelihood/package.py
index 9c139684a7..94c7640d43 100644
--- a/var/spack/repos/builtin/packages/planck-likelihood/package.py
+++ b/var/spack/repos/builtin/packages/planck-likelihood/package.py
@@ -27,7 +27,7 @@ class PlanckLikelihood(Package):
patch('fortran.patch')
patch('make.patch')
- patch('arm.patch', when='target=aarch64')
+ patch('arm.patch', when='target=aarch64:')
resource(
name='baseline',
diff --git a/var/spack/repos/builtin/packages/portcullis/package.py b/var/spack/repos/builtin/packages/portcullis/package.py
index 20b20cfbd6..3e35ff6daa 100644
--- a/var/spack/repos/builtin/packages/portcullis/package.py
+++ b/var/spack/repos/builtin/packages/portcullis/package.py
@@ -46,7 +46,7 @@ class Portcullis(AutotoolsPackage):
)
# remove -m64 on aarch64
- if self.spec.satisfies('target=aarch64'):
+ if self.spec.target.family == 'aarch64':
for f in ['lib/Makefile.am', 'src/Makefile.am']:
filter_file('-m64', '', f)
diff --git a/var/spack/repos/builtin/packages/py-flye/package.py b/var/spack/repos/builtin/packages/py-flye/package.py
index 9e04ed636f..589d41965b 100644
--- a/var/spack/repos/builtin/packages/py-flye/package.py
+++ b/var/spack/repos/builtin/packages/py-flye/package.py
@@ -18,6 +18,6 @@ class PyFlye(PythonPackage):
depends_on('python@2.7:2.8', type=('build', 'run'))
def setup_environment(self, spack_env, run_env):
- if self.spec.satisfies('target=aarch64'):
+ if self.spec.target.family == 'aarch64':
spack_env.set('arm_neon', '1')
spack_env.set('aarch64', '1')
diff --git a/var/spack/repos/builtin/packages/rapidjson/package.py b/var/spack/repos/builtin/packages/rapidjson/package.py
index 8b6f379086..93306f8b79 100644
--- a/var/spack/repos/builtin/packages/rapidjson/package.py
+++ b/var/spack/repos/builtin/packages/rapidjson/package.py
@@ -21,4 +21,4 @@ class Rapidjson(CMakePackage):
# branch-fall-through warnings
patch('0001-turn-off-Werror.patch')
- patch('arm.patch', when='@1.1.0 target=aarch64 %gcc@:5.9')
+ patch('arm.patch', when='@1.1.0 target=aarch64: %gcc@:5.9')
diff --git a/var/spack/repos/builtin/packages/raxml/package.py b/var/spack/repos/builtin/packages/raxml/package.py
index 4a41030648..528172733d 100644
--- a/var/spack/repos/builtin/packages/raxml/package.py
+++ b/var/spack/repos/builtin/packages/raxml/package.py
@@ -45,7 +45,7 @@ class Raxml(Package):
# FIXME; It is assumed that cray is x86_64.
# If you support arm on cray, you need to fix it.
arch = 'x86_64'
- if (arch != 'x86_64' and not spec.satisfies("target=x86_64")):
+ if arch != 'x86_64' and not spec.target.family == 'x86_64':
if spec.satisfies("+sse"):
raise ConflictsInSpecError(
spec,
@@ -77,7 +77,7 @@ class Raxml(Package):
if spec.satisfies('+mpi'):
makefile.filter('mpicc', self.spec['mpi'].mpicc)
- if spec.satisfies('target=x86_64'):
+ if spec.target.family == 'x86_64':
if spec.satisfies('+mpi +avx +pthreads'):
make('-f', 'Makefile.AVX.HYBRID.gcc')
install('raxmlHPC-HYBRID-AVX', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/rocksdb/package.py b/var/spack/repos/builtin/packages/rocksdb/package.py
index f985208a14..4d13393dde 100644
--- a/var/spack/repos/builtin/packages/rocksdb/package.py
+++ b/var/spack/repos/builtin/packages/rocksdb/package.py
@@ -35,7 +35,8 @@ class Rocksdb(MakefilePackage):
phases = ['install']
def patch(self):
- if (self.spec.satisfies('target=aarch64 %gcc@:5.9')):
+ if (self.spec.target.family == 'aarch64' and
+ self.spec.satisfies('%gcc@:5.9')):
filter_file(
'-march=native', '',
join_path('build_tools', 'build_detect_platform')
diff --git a/var/spack/repos/builtin/packages/sdl2/package.py b/var/spack/repos/builtin/packages/sdl2/package.py
index 708f77d648..25c6bd2b3a 100644
--- a/var/spack/repos/builtin/packages/sdl2/package.py
+++ b/var/spack/repos/builtin/packages/sdl2/package.py
@@ -22,6 +22,6 @@ class Sdl2(CMakePackage):
def cmake_args(self):
return [
'-DSSEMATH={0}'.format(
- 'OFF' if self.spec.satisfies('target=aarch64') else 'ON'
+ 'OFF' if self.spec.target.family == 'aarch64' else 'ON'
)
]
diff --git a/var/spack/repos/builtin/packages/strace/package.py b/var/spack/repos/builtin/packages/strace/package.py
index ebf5bdd034..510f65c7a9 100644
--- a/var/spack/repos/builtin/packages/strace/package.py
+++ b/var/spack/repos/builtin/packages/strace/package.py
@@ -24,7 +24,7 @@ class Strace(AutotoolsPackage):
def configure_args(self):
args = []
- if self.spec.satisfies('target=aarch64'):
+ if self.spec.target.family == 'aarch64':
args.append('--enable-mpers=no')
else:
args.append('--enable-mpers=yes')
diff --git a/var/spack/repos/builtin/packages/subread/package.py b/var/spack/repos/builtin/packages/subread/package.py
index 13ba379d64..f126c03d41 100644
--- a/var/spack/repos/builtin/packages/subread/package.py
+++ b/var/spack/repos/builtin/packages/subread/package.py
@@ -30,7 +30,7 @@ class Subread(MakefilePackage):
'CC_EXEC = {0}'.format(spack_cc),
'Makefile.Linux'
)
- if spec.satisfies('target=aarch64'):
+ if spec.target.family == 'aarch64':
filter_file('-mtune=core2', '', 'Makefile.Linux')
if spec.satisfies('@1.6.2:1.6.4'):
filter_file(
diff --git a/var/spack/repos/builtin/packages/tealeaf/package.py b/var/spack/repos/builtin/packages/tealeaf/package.py
index 439b708ed0..49b13251af 100644
--- a/var/spack/repos/builtin/packages/tealeaf/package.py
+++ b/var/spack/repos/builtin/packages/tealeaf/package.py
@@ -25,7 +25,7 @@ class Tealeaf(MakefilePackage):
depends_on('mpi')
def edit(self, spec, prefix):
- if (spec.satisfies('target=aarch64 %gcc@:5.9')):
+ if spec.target.family == 'aarch64' and spec.satisfies('%gcc@:5.9'):
filter_file(
'-march=native', '', join_path('TeaLeaf_ref', 'Makefile')
)
diff --git a/var/spack/repos/builtin/packages/vdt/package.py b/var/spack/repos/builtin/packages/vdt/package.py
index 8924b825f6..b64452328f 100644
--- a/var/spack/repos/builtin/packages/vdt/package.py
+++ b/var/spack/repos/builtin/packages/vdt/package.py
@@ -33,11 +33,11 @@ class Vdt(CMakePackage):
def flag_handler(self, name, flags):
arch = ''
spec = self.spec
- if (spec.satisfies("platform=cray")):
+ if spec.satisfies("platform=cray"):
# FIXME; It is assumed that cray is x86_64.
# If you support arm on cray, you need to fix it.
arch = 'x86_64'
- if (arch != 'x86_64' and not spec.satisfies("target=x86_64")):
+ if arch != 'x86_64' and not spec.satisfies("target=x86_64:"):
for s in self.simd_x86:
if (spec.satisfies("simd={0}".format(s))):
raise ConflictsInSpecError(
@@ -51,8 +51,8 @@ class Vdt(CMakePackage):
)]
)
# FIXME: It is assumed that arm 32 bit target is arm.
- if (arch != 'arm' and not spec.satisfies("target=arm")):
- if (spec.satisfies("simd=neon")):
+ if arch != 'arm' and not spec.satisfies("target=arm"):
+ if spec.satisfies("simd=neon"):
raise ConflictsInSpecError(
spec,
[(
diff --git a/var/spack/repos/builtin/packages/velvet/package.py b/var/spack/repos/builtin/packages/velvet/package.py
index 9b6714fe90..620441a8ce 100644
--- a/var/spack/repos/builtin/packages/velvet/package.py
+++ b/var/spack/repos/builtin/packages/velvet/package.py
@@ -18,7 +18,7 @@ class Velvet(MakefilePackage):
depends_on('zlib')
def edit(self, spec, prefix):
- if spec.satisfies('target=aarch64'):
+ if spec.target.family == 'aarch64':
makefile = FileFilter('Makefile')
makefile.filter('-m64', '')