Skip to content

Commit

Permalink
Merge pull request #20633 from SebastianAchilles/20240524141255_new_p…
Browse files Browse the repository at this point in the history
…r_Doxygen1110

{devel,math}[GCCcore/13.3.0] Doxygen v1.11.0, Eigen v3.4.0, GDRCopy v2.4.1, ...
  • Loading branch information
branfosj authored May 25, 2024
2 parents ebdceae + 95814c5 commit 61d9167
Show file tree
Hide file tree
Showing 7 changed files with 248 additions and 0 deletions.
41 changes: 41 additions & 0 deletions easybuild/easyconfigs/d/Doxygen/Doxygen-1.11.0-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
easyblock = 'CMakeMake'

name = 'Doxygen'
version = '1.11.0'

homepage = 'https://www.doxygen.org'
description = """
Doxygen is a documentation system for C++, C, Java, Objective-C, Python,
IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some
extent D.
"""

toolchain = {'name': 'GCCcore', 'version': '13.3.0'}

source_urls = [SOURCEFORGE_SOURCE]
sources = ['%(namelower)s-%(version)s.src.tar.gz']
checksums = ['c9edfdf8c5f3e8bee0c4c967850caead27099883ee7ff8b11044e6d63faf3607']

builddependencies = [
('binutils', '2.42'),
('Bison', '3.8.2'),
('CMake', '3.29.3'),
('flex', '2.6.4'),
('pkgconf', '2.2.0'),
('Python', '3.12.3'),
]

dependencies = [
('libiconv', '1.17'),
]

configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"

sanity_check_paths = {
'files': ["bin/doxygen"],
'dirs': [],
}

sanity_check_commands = ["doxygen --help"]

moduleclass = 'devel'
21 changes: 21 additions & 0 deletions easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name = 'Eigen'
version = '3.4.0'

homepage = 'https://eigen.tuxfamily.org'
description = """Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers,
and related algorithms."""

# only includes header files, but requires CMake so using non-system toolchain
toolchain = {'name': 'GCCcore', 'version': '13.3.0'}

source_urls = ['https://gitlab.com/libeigen/eigen/-/archive/%(version)s']
sources = [SOURCELOWER_TAR_BZ2]
checksums = ['b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626']

# using CMake built with GCCcore to avoid relying on the system compiler to build it
builddependencies = [
('binutils', '2.42'), # to make CMake compiler health check pass on old systems
('CMake', '3.29.3'),
]

moduleclass = 'math'
52 changes: 52 additions & 0 deletions easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4.1-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
easyblock = 'ConfigureMake'

name = 'GDRCopy'
version = '2.4.1'

homepage = 'https://github.com/NVIDIA/gdrcopy'
description = "A low-latency GPU memory copy library based on NVIDIA GPUDirect RDMA technology."

toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
toolchainopts = {'pic': True}

github_account = 'NVIDIA'
source_urls = [GITHUB_SOURCE]
sources = ['v%(version)s.tar.gz']
checksums = ['faa7e816e9bad3301e53d6721457f7ef5ab42b7aa3b01ffda51f8e5620bb20ed']

builddependencies = [
('binutils', '2.42'),
('Autotools', '20231222'),
('pkgconf', '2.2.0'),
]

build_info_msg = """This easyconfig only installs the library of GDRCopy. Please keep in mind
that GDRCopy also needs the following kernel modules at runtime:
1. Kernel module for GDRCopy: improves Host to GPU communication
https://github.com/NVIDIA/gdrcopy
RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
https://github.com/Mellanox/nv_peer_memory
RPM: 'nvidia_peer_memory'
Requirements: Mellanox HCA with MLNX_OFED 2.1
These kernel modules are not listed as system dependencies to lower the system
requirements to build this easyconfig, as they are not needed for the build."""

skipsteps = ['configure']

local_envopts = "prefix=%(installdir)s"
prebuildopts = "PATH=$PATH:/sbin " # ensures that ldconfig is found
buildopts = "config lib %s" % local_envopts
install_cmd = "make lib_install"
installopts = local_envopts

sanity_check_paths = {
'files': ['lib/libgdrapi.%s' % SHLIB_EXT],
'dirs': ['include'],
}

moduleclass = 'lib'
40 changes: 40 additions & 0 deletions easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
easyblock = 'ConfigureMake'

name = 'GMP'
version = '6.3.0'

homepage = 'https://gmplib.org/'
description = """
GMP is a free library for arbitrary precision arithmetic, operating on signed
integers, rational numbers, and floating point numbers.
"""

toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
toolchainopts = {'precise': True, 'pic': True}

source_urls = ['https://ftp.gnu.org/gnu/%(namelower)s']
sources = [SOURCELOWER_TAR_BZ2]
checksums = ['ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb']

builddependencies = [
('Autotools', '20231222'),
('binutils', '2.42'),
]

# enable C++ interface
configopts = '--enable-cxx'

# copy libgmp.so* to <installdir>/lib to make sure that it is picked up by tests
# when EasyBuild is configured with --rpath, and clean up afterwards (let 'make install' do its job)
pretestopts = "mkdir -p %%(installdir)s/lib && cp -a .libs/libgmp.%s* %%(installdir)s/lib && " % SHLIB_EXT
testopts = " && rm -r %(installdir)s/lib"

runtest = 'check'

sanity_check_paths = {
'files': ['lib/lib%s.%s' % (l, e) for l in ['gmp', 'gmpxx'] for e in [SHLIB_EXT, 'a']] +
['include/gmp.h', 'include/gmpxx.h'],
'dirs': ['share'],
}

moduleclass = 'math'
39 changes: 39 additions & 0 deletions easybuild/easyconfigs/m/MPFR/MPFR-4.2.1-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
easyblock = 'ConfigureMake'

name = 'MPFR'
version = '4.2.1'

homepage = 'https://www.mpfr.org'

description = """
The MPFR library is a C library for multiple-precision floating-point
computations with correct rounding.
"""

toolchain = {'name': 'GCCcore', 'version': '13.3.0'}

source_urls = ['https://www.mpfr.org/mpfr-%(version)s/']
sources = [SOURCELOWER_TAR_BZ2]
checksums = ['b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0']

builddependencies = [
('binutils', '2.42'),
]

dependencies = [
('GMP', '6.3.0'),
]

runtest = 'check'

# copy libmpfr.so* to <installdir>/lib to make sure that it is picked up by tests
# when EasyBuild is configured with --rpath, and clean up afterwards (let 'make install' do its job)
pretestopts = "mkdir -p %%(installdir)s/lib && cp -a src/.libs/libmpfr.%s* %%(installdir)s/lib && " % SHLIB_EXT
testopts = " && rm -r %(installdir)s/lib"

sanity_check_paths = {
'files': ['lib/libmpfr.%s' % SHLIB_EXT, 'include/mpfr.h'],
'dirs': [],
}

moduleclass = 'math'
28 changes: 28 additions & 0 deletions easybuild/easyconfigs/p/PCRE2/PCRE2-10.43-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
easyblock = 'ConfigureMake'

name = 'PCRE2'
version = '10.43'

homepage = 'https://www.pcre.org/'
description = """
The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax
and semantics as Perl 5.
"""

toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/PCRE2Project/%(namelower)s/releases/download/%(namelower)s-%(version)s']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['889d16be5abb8d05400b33c25e151638b8d4bac0e2d9c76e9d6923118ae8a34e']

builddependencies = [('binutils', '2.42')]

configopts = "--enable-shared --enable-jit --enable-pcre2-16 --enable-unicode"

sanity_check_paths = {
'files': ["bin/pcre2-config", "bin/pcre2grep", "bin/pcre2test", "lib/libpcre2-8.a", "lib/libpcre2-16.a"],
'dirs': [],
}

moduleclass = 'devel'
27 changes: 27 additions & 0 deletions easybuild/easyconfigs/s/SWIG/SWIG-4.2.1-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name = 'SWIG'
version = '4.2.1'

homepage = 'http://www.swig.org/'
description = """SWIG is a software development tool that connects programs written in C and C++ with
a variety of high-level programming languages."""

toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
toolchainopts = {'pic': True}

source_urls = [SOURCEFORGE_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['fa045354e2d048b2cddc69579e4256245d4676894858fcf0bab2290ecf59b7d8']

builddependencies = [
('binutils', '2.42'),
('Bison', '3.8.2'),
]

dependencies = [
('zlib', '1.3.1'),
('PCRE2', '10.43'),
]

configopts = '--without-alllang --with-boost=no'

moduleclass = 'devel'

0 comments on commit 61d9167

Please sign in to comment.