easyconfigs-it4i/f/FlexiBLAS/FlexiBLAS-3.2.1-GCC-12.2.0.eb
easybuild 3615ccafe1 fix
2024-07-25 11:57:13 +02:00

62 lines
2.2 KiB
Plaintext

# IT4Innovations
# LK 2023
easyblock = 'Bundle'
name = 'FlexiBLAS'
version = '3.2.1'
homepage = 'https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release'
description = """FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation
used by a program without recompiling or relinking it."""
toolchain = {'name': 'GCC', 'version': '12.2.0'}
local_extra_flags = "-fstack-protector-strong -fstack-clash-protection"
toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags}
builddependencies = [
('CMake', '3.24.3'),
('Python', '3.10.8', '-bare'), # required for running the tests
('BLIS', '0.9.0'),
]
dependencies = [
('OpenBLAS', '0.3.21'),
]
# note: first listed backend will be used as default by FlexiBLAS,
# unless otherwise specified via easyconfig parameter flexiblas_default
local_backends = ['OpenBLAS', 'BLIS']
# imkl supplies its backend via the imkl module, not as a dependency
if ARCH == 'x86_64':
local_backends.append('imkl')
default_component_specs = {'start_dir': '%(namelower)s-%(version)s'}
sanity_check_all_components = True
# Also build and install LAPACKE, which FlexiBLAS does not support yet
components = [
(name, version, {
'source_urls': ['https://github.com/mpimd-csc/flexiblas/releases/download/v%(version)s/'],
'sources': [SOURCELOWER_TAR_GZ],
'checksums': ['5be7e508e2dbb751b3bf372639d8e82a11f79e9ef6cbf243b64981c24a5703cf'],
'backends': local_backends,
}),
('LAPACK', '3.10.1', {
'easyblock': 'CMakeMake',
'source_urls': ['https://github.com/Reference-LAPACK/lapack/archive/'],
'sources': ['v%(version)s.tar.gz'],
'checksums': ['cd005cd021f144d7d5f7f33c943942db9f03a28d110d6a3b80d718a295f7f714'],
'configopts': ('-DBUILD_SHARED_LIBS=ON -DUSE_OPTIMIZED_BLAS=ON -DLAPACKE=ON '
'-DUSE_OPTIMIZED_LAPACK=ON -DBUILD_DEPRECATED=ON '
'-DCMAKE_INSTALL_INCLUDEDIR=%(installdir)s/include/flexiblas'),
'sanity_check_paths': {
'files': ['lib/liblapacke.%s' % SHLIB_EXT, 'include/flexiblas/lapacke.h'],
'dirs': [],
},
}),
]
moduleclass = 'lib'