summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2022-04-09 10:08:36 +0200
committerGitHub <noreply@github.com>2022-04-09 10:08:36 +0200
commit3ad3e53ff810ae9047882cabda2ecf929a4b0a65 (patch)
treef52a450e4ed396532e6f4a298cd1f3cf5ff50e78
parentf6795ae46d594a9ef2185361a826bd281eda06e0 (diff)
downloadspack-3ad3e53ff810ae9047882cabda2ecf929a4b0a65.tar.gz
spack-3ad3e53ff810ae9047882cabda2ecf929a4b0a65.tar.bz2
spack-3ad3e53ff810ae9047882cabda2ecf929a4b0a65.tar.xz
spack-3ad3e53ff810ae9047882cabda2ecf929a4b0a65.zip
blis, amdblis: remove custom phases, add v0.9.0 for blis (#29969)
Also refactor a few variants
-rw-r--r--var/spack/repos/builtin/packages/amdblis/package.py21
-rw-r--r--var/spack/repos/builtin/packages/blis/package.py79
2 files changed, 26 insertions, 74 deletions
diff --git a/var/spack/repos/builtin/packages/amdblis/package.py b/var/spack/repos/builtin/packages/amdblis/package.py
index 68b63e1d03..8023d0a4ac 100644
--- a/var/spack/repos/builtin/packages/amdblis/package.py
+++ b/var/spack/repos/builtin/packages/amdblis/package.py
@@ -27,15 +27,7 @@ class Amdblis(BlisBase):
version('3.0', sha256='ac848c040cd6c3550fe49148dbdf109216cad72d3235763ee7ee8134e1528517')
version('2.2', sha256='e1feb60ac919cf6d233c43c424f6a8a11eab2c62c2c6e3f2652c15ee9063c0c9')
- variant(
- 'ilp64',
- default=False,
- description='Build with ILP64 support')
-
- conflicts(
- '+ilp64',
- when='@:3.0.0',
- msg='ilp64 is supported from amdblis 3.0.1 version onwards')
+ variant('ilp64', default=False, when='@3.0.1:', description='ILP64 support')
def configure_args(self):
spec = self.spec
@@ -44,8 +36,8 @@ class Amdblis(BlisBase):
if spec.satisfies('+ilp64'):
args.append('--blas-int-size=64')
- """ To enable Fortran to C calling convention for
- complex types when compiling with aocc flang"""
+ # To enable Fortran to C calling convention for
+ # complex types when compiling with aocc flang
if self.spec.satisfies("@3.0 %aocc"):
args.append('CFLAGS={0}'.format("-DAOCL_F2C"))
args.append('CXXFLAGS={0}'.format("-DAOCL_F2C"))
@@ -57,8 +49,8 @@ class Amdblis(BlisBase):
return args
- def configure(self, spec, prefix):
- config_args = self.configure_args()
+ def config_args(self):
+ config_args = super(Amdblis, self).config_args()
# "amdzen" - A fat binary or multiarchitecture binary
# support for 3.1 release onwards
@@ -67,5 +59,4 @@ class Amdblis(BlisBase):
else:
config_args.append("auto")
- configure("--prefix=" + prefix,
- *config_args)
+ return config_args
diff --git a/var/spack/repos/builtin/packages/blis/package.py b/var/spack/repos/builtin/packages/blis/package.py
index 83865fae89..394a6311e7 100644
--- a/var/spack/repos/builtin/packages/blis/package.py
+++ b/var/spack/repos/builtin/packages/blis/package.py
@@ -9,38 +9,19 @@
# https://github.com/flame/blis/issues/197
-class BlisBase(Package):
+class BlisBase(MakefilePackage):
"""Base class for building BLIS, shared with the AMD optimized version
of the library in the 'amdblis' package.
"""
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
- variant(
- 'threads', default='none',
- description='Multithreading support',
- values=('pthreads', 'openmp', 'none'),
- multi=False
- )
-
- variant(
- 'blas', default=True,
- description='BLAS compatibility',
- )
-
- variant(
- 'cblas', default=True,
- description='CBLAS compatibility',
- )
-
- variant(
- 'shared', default=True,
- description='Build shared library',
- )
-
- variant(
- 'static', default=True,
- description='Build static library',
- )
+ variant('threads', default='none', values=('pthreads', 'openmp', 'none'),
+ description='Multithreading support', multi=False)
+
+ variant('blas', default=True, description='BLAS compatibility')
+ variant('cblas', default=True, description='CBLAS compatibility')
+ variant('libs', default='shared,static', values=('shared', 'static'),
+ multi=True, description='Build shared libs, static libs or both')
# TODO: add cpu variants. Currently using auto.
# If one knl, should the default be memkind ?
@@ -54,14 +35,11 @@ class BlisBase(Package):
conflicts('%nvhpc')
conflicts('%pgi')
- phases = ['configure', 'build', 'install']
-
def configure_args(self):
spec = self.spec
- config_args = []
-
- config_args.append("--enable-threading=" +
- spec.variants['threads'].value)
+ config_args = [
+ "--enable-threading={0}".format(spec.variants['threads'].value)
+ ]
if '+cblas' in spec:
config_args.append("--enable-cblas")
@@ -73,38 +51,22 @@ class BlisBase(Package):
else:
config_args.append("--disable-blas")
- if '+shared' in spec:
+ if spec.satisfies('libs=shared'):
config_args.append("--enable-shared")
else:
config_args.append("--disable-shared")
- if '+static' in spec:
+ if spec.satisfies('libs=static'):
config_args.append("--enable-static")
else:
config_args.append("--disable-static")
return config_args
- def configure(self, spec, prefix):
- config_args = self.configure_args()
-
- # To ensure auto should always be the
- # last argument for base and derived class
- config_args.append("auto")
-
- configure("--prefix=" + prefix,
- *config_args)
-
- def build(self, spec, prefix):
- make()
-
- @run_after('build')
- @on_package_attributes(run_tests=True)
- def check(self):
- make('check')
-
- def install(self, spec, prefix):
- make('install')
+ def edit(self, spec, prefix):
+ # To ensure auto should always be the last argument for base and derived class
+ config_args = self.configure_args() + ['auto']
+ configure("--prefix={0}".format(prefix), *config_args)
@run_after('install')
def darwin_fix(self):
@@ -115,10 +77,8 @@ class BlisBase(Package):
@property
def libs(self):
return find_libraries(
- ["libblis", "libblis-mt"],
- root=self.prefix,
- shared='+shared' in self.spec,
- recursive=True
+ ["libblis", "libblis-mt"], root=self.prefix,
+ shared=self.spec.satisfies('libs=shared'), recursive=True
)
@@ -141,6 +101,7 @@ class Blis(BlisBase):
git = "https://github.com/flame/blis.git"
version('master', branch='master')
+ version('0.9.0', sha256='1135f664be7355427b91025075562805cdc6cc730d3173f83533b2c5dcc2f308')
version('0.8.1', sha256='729694128719801e82fae7b5f2489ab73e4a467f46271beff09588c9265a697b')
version('0.8.0', sha256='5e05868c4a6cf5032a7492f8861653e939a8f907a4fa524bbb6e14394e170a3d')
version('0.7.0', sha256='7e345d666799e15bba570bd125f97042f17bf752a61dcf314486a6cd096d5f68')