GMP/6.3.0-cpeGNU-24.03 (GMP-6.3.0-cpeGNU-24.03.eb)
To access module help and find out for which stacks and partitions the module is
installed, use module spider GMP/6.3.0-cpeGNU-24.03
.
EasyConfig:
# contributed by Guilherme Peretti Pezzi and Luca Marsella (CSCS)
easyblock = 'ConfigureMake'
local_GMP_version = '6.3.0' # https://ftp.gnu.org/gnu/gmp/
name = 'GMP'
version = local_GMP_version
homepage = 'http://gmplib.org/'
whatis = [
'Description: GNU Multiprecision Arithmetic Library',
'This module provides static and shared libraries',
]
description = """
GMP is a free library for arbitrary precision arithmetic, operating on signed
integers, rational numbers, and floating-point numbers. There is no practical
limit to the precision except the ones implied by the available memory in the
machine GMP runs on. GMP has a rich set of functions, and the functions have a
regular interface.
The main target applications for GMP are cryptography applications and research,
Internet security applications, algebra systems, computational algebra research,
etc.
GMP is carefully designed to be as fast as possible, both for small operands and
for huge operands. The speed is achieved by using fullwords as the basic
arithmetic type, by using fast algorithms, with highly optimised assembly code
for the most common inner loops for a lot of CPUs, and by a general emphasis on
speed.
This module provides static and shared libraries.
"""
docurls = [
'Web-based documentation: https://gmplib.org/manual/',
'Support for the info command (info gmp)'
]
software_license_urls = [
'https://www.gnu.org/licenses/lgpl-3.0.html',
'https://www.gnu.org/licenses/gpl-2.0.html',
]
toolchain = {'name': 'cpeGNU', 'version': '24.03'}
#toolchainopts = {'lowopt': True} # CSCS settings
#toolchainopts = {'precise': True, 'pic': True} # EasyBuilders settings
toolchainopts = {
'verbose': True,
'precise': True, 'loop': True, 'lto': True,
'pic': True,
'extra_cflags': '-mcmodel=large',
}
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_BZ2]
checksums = ['ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb']
# 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
pretestopts = preconfigopts
preinstallopts = preconfigopts
# enable C++ interface
configopts = '--enable-cxx'
runtest = 'check'
postinstallcmds = [
'mkdir -p %(installdir)s/share/licenses/%(name)s',
'cp COPYING* NEWS README %(installdir)s/share/licenses/%(name)s',
]
# the output of config.guess is used by default and can be changed with --build
# E.g.: configopts = ' --build=haswell-pc-linux-gnu'
sanity_check_paths = {
'files': ['include/%s.h' % x for x in ['gmp', 'gmpxx']] +
['lib/lib%s.%s' % (x, y) for x in ['gmp', 'gmpxx'] for y in [ 'a', 'la', SHLIB_EXT]] +
['lib/pkgconfig/%s.pc' % x for x in ['gmp', 'gmpxx']] +
[f'share/licenses/{name}/COPYING'],
'dirs': ['share/info'],
}
# No binaries to easily check, but we do check if pkg-config can read the .pc files.
sanity_check_commands = [
'pkg-config --libs gmp',
'pkg-config --libs gmpxx',
]
modextrapaths = {
'INFOPATH' : 'share/info',
}
moduleclass = 'math'