Skip to content

[libcerf] [package list]

libcerf/2.3-cpeCray-24.03 (libcerf-2.3-cpeCray-24.03.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider libcerf/2.3-cpeCray-24.03.

EasyConfig:

easyblock = 'CMakeMake'

local_libcerf_version =      '2.3'           # https://jugit.fz-juelich.de/mlz/libcerf/-/releases

name =    'libcerf'
version = local_libcerf_version

homepage = 'https://jugit.fz-juelich.de/mlz/libcerf'

whatis = [
    'Description: Implements the complex error functions, along with the Dawson, Faddeeva and Voigt functions',
    'This module provides shared libraries'
]

description = """
libcerf is a self-contained numeric library that provides an efficient and
accurate implementation of complex error functions, along with Dawson, Faddeeva,
and Voigt functions.

This module provides shared libraries.
"""

usage = """
See the manual pages for cdawson, cerf, cerfc, cerfcx, cerfi, dawson, erfcx,
erfi, im_w_of_x, voigt and w_of_z (all in section 3).
"""

docurls = [
    'Web-based documentation on http://apps.jcns.fz-juelich.de/doku/sc/libcerf#user_documentation',
    'Man pages in section 3'
]

software_license_urls = [
    f'https://jugit.fz-juelich.de/mlz/libcerf/-/blob/v{version}/LICENSE?ref_type=tags'
]

toolchain = {'name': 'cpeCray', 'version': '24.03'}
toolchainopts = {'pic': True}

# https://jugit.fz-juelich.de/mlz/libcerf/-/archive/v1.13/libcerf-v1.13.tar.bz2
sources =     [ '%(name)s-v%(version)s.tar.bz2' ]
source_urls = [ 'https://jugit.fz-juelich.de/mlz/libcerf/-/archive/v%(version)s' ]
checksums =   ['5fce0a90dc30d0ac7ac90d6df752080d2d346cd49154706e4397e2a9a3b826f7']

builddependencies = [ # Create a reproducible build environment.
    ('buildtools', '%(toolchain_version)s', '', True), # For CMake but perl is actually needed to and for now taken from the system
]

separate_build_dir = True

# Doesn't need MPI, ROCm or BLAS, and module unload never fails so this is safe.
preconfigopts = 'module unload cray-libsci cray-mpich rocm xpmem && '
prebuildopts = preconfigopts

configopts = '-DLIB_MAN=OFF' # Otherwise pod2html is needed.

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cd ../%(namelower)s-v%(version)s && cp CHANGELOG LICENSE README.md %(installdir)s/share/licenses/%(name)s',   
]

sanity_check_paths = {
    'files': ['lib/libcerf.%s' % SHLIB_EXT, 'lib/pkgconfig/libcerf.pc',
              f'share/licenses/{name}/LICENSE'],
    'dirs':  []
}

sanity_check_commands = [
    'pkg-config --libs libcerf',
]

moduleclass = 'math'

[libcerf] [package list]