Skip to content

[GSL] [package list]

GSL/2.7.1-cpeAMD-24.03-OpenMP (GSL-2.7.1-cpeAMD-24.03-OpenMP.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider GSL/2.7.1-cpeAMD-24.03-OpenMP.

EasyConfig:

easyblock = 'ConfigureMake'

local_GSL_version =          '2.7.1'         # https://ftp.gnu.org/gnu/gsl/

name =          'GSL'
version =       local_GSL_version
versionsuffix = '-OpenMP'

homepage = 'http://www.gnu.org/software/gsl/'

whatis = [
    "Description: GSL is the GNU Scientific Library, a numerical library for C and C++ programmers."
]

description = """
The GNU Scientific Library (GSL) is a numerical library for C and C++
programmers. The library provides a wide range of mathematical routines
such as random number generators, special functions and least-squares
fitting.

This version of GSL is compiled with OpenMP support and hence uses the
OpenMP parallel multithreaded version of the Cray Scientific Libraries.
"""

software_license_urls = [
    'https://www.gnu.org/licenses/gpl.html',
]

toolchain = {'name': 'cpeAMD', 'version': '24.03'}
toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True, 'verbose': True, 'openmp': True}

source_urls = [GNU_SOURCE]
sources =     [SOURCELOWER_TAR_GZ]
checksums =   ['dcb0fbd43048832b757ff9942691a8dd70026d5da0ff85601e52687f6deeb34b']

builddependencies = [ # Create a reproducible build environment.
    ('buildtools', '%(toolchain_version)s', '', True),
]

# Doesn't need MPI or ROCm, and module unload never fails so this is safe.
preconfigopts = 'module unload cray-mpich rocm xpmem craype-accel-amd-gfx90a && '
prebuildopts = preconfigopts
pretestopts = preconfigopts
preinstallopts = preconfigopts

configopts = "--with-pic"

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cp AUTHORS BUGS COPYING NEWS README THANKS %(installdir)s/share/licenses/%(name)s',   
]

sanity_check_paths = {
    'files': ['lib/libgsl.so', 'lib/libgsl.a', 'lib/libgslcblas.so', 'lib/libgslcblas.a',
              f'share/licenses/{name}/COPYING'],
    'dirs':  ['include', 'lib'],
}

sanity_check_commands = [
    'gsl-config --version',
    'gsl-histogram --version',
    'gsl-randist 0 10000 cauchy 30 | gsl-histogram -100 100 200 >/dev/null',
    'pkg-config --libs gsl',
]

moduleclass = 'numlib'

[GSL] [package list]