diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-16.0.6-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/LLVM/LLVM-16.0.6-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..3cbf84f26fe --- /dev/null +++ b/easybuild/easyconfigs/l/LLVM/LLVM-16.0.6-GCCcore-13.2.0.eb @@ -0,0 +1,48 @@ +name = 'LLVM' +version = '16.0.6' + +homepage = "https://llvm.org/" +description = """The LLVM Core libraries provide a modern source- and target-independent + optimizer, along with code generation support for many popular CPUs + (as well as some less common ones!) These libraries are built around a well + specified code representation known as the LLVM intermediate representation + ("LLVM IR"). The LLVM Core libraries are well documented, and it is + particularly easy to invent your own language (or port an existing compiler) + to use LLVM as an optimizer and code generator.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'cstd': 'gnu++11', 'pic': True} + +source_urls = ['https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/'] +sources = [ + 'llvm-%(version)s.src.tar.xz', + 'cmake-%(version)s.src.tar.xz', + 'third-party-%(version)s.src.tar.xz', +] +checksums = [ + {'llvm-16.0.6.src.tar.xz': 'e91db44d1b3bb1c33fcea9a7d1f2423b883eaa9163d3d56ca2aa6d2f0711bc29'}, + {'cmake-16.0.6.src.tar.xz': '39d342a4161095d2f28fb1253e4585978ac50521117da666e2b1f6f28b62f514'}, + {'third-party-16.0.6.src.tar.xz': '15f5b9aeeba938530af977d5f9205612737a091a7f0f6c8075df8723b7713f70'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), + ('Python', '3.11.5'), +] + +dependencies = [ + ('ncurses', '6.4'), + ('zlib', '1.2.13'), +] + +build_shared_libs = True + +sanity_check_paths = { + 'files': ['bin/llvm-ar', 'bin/FileCheck'], + 'dirs': ['include/llvm', 'include/llvm-c'], +} + +sanity_check_commands = ["llvm-ar --help"] + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/l/libGLU/libGLU-9.0.3-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.3-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..6de3d5baea2 --- /dev/null +++ b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.3-GCCcore-13.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'MesonNinja' + +name = 'libGLU' +version = '9.0.3' + +homepage = 'https://mesa.freedesktop.org/archive/glu/' +description = """The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL. """ + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://mesa.freedesktop.org/archive/glu/'] +sources = ['glu-%(version)s.tar.xz'] +checksums = ['bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f'] + +builddependencies = [('binutils', '2.40'), + ('Ninja', '1.11.1'), + ('Meson', '1.2.3')] + +dependencies = [('Mesa', '23.1.9')] + +sanity_check_paths = { + 'files': ['lib/libGLU.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.117-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.117-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..b426bc248de --- /dev/null +++ b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.117-GCCcore-13.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'MesonNinja' + +name = 'libdrm' +version = '2.4.117' + +homepage = 'https://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['a2888d69e3eb1c8a77adc08a75a60fbae01f0d208d26f034d1a12e362361242b'] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '2.0.3'), + ('Meson', '1.2.3'), + ('Ninja', '1.11.1'), +] +dependencies = [('X11', '20231019')] + +# installing manpages requires an extra build dependency (docbook xsl) +configopts = '-Dman-pages=disabled' + +sanity_check_paths = { + 'files': ['lib/libdrm.%s' % SHLIB_EXT, 'include/libdrm/drm.h'], + 'dirs': ['include', 'lib'], +} + + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libglvnd/libglvnd-1.7.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libglvnd/libglvnd-1.7.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..cd5ce89a5cb --- /dev/null +++ b/easybuild/easyconfigs/l/libglvnd/libglvnd-1.7.0-GCCcore-13.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'MesonNinja' + +name = 'libglvnd' +version = '1.7.0' + +homepage = 'https://gitlab.freedesktop.org/glvnd/libglvnd' +description = "libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v%(version)s/'] +sources = ['libglvnd-v%(version)s.tar.gz'] +checksums = ['2b6e15b06aafb4c0b6e2348124808cbd9b291c647299eaaba2e3202f51ff2f3d'] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '2.0.3'), + ('Meson', '1.2.3'), + ('Ninja', '1.11.1'), +] + +dependencies = [('X11', '20231019')] + +# Let EGL find system-installed vendor files in /etc/glvnd/egl_vendor.d etc. +allow_prepend_abs_path = True +modextrapaths = {"__EGL_VENDOR_LIBRARY_DIRS": "/etc/glvnd/egl_vendor.d:/usr/share/glvnd/egl_vendor.d"} + +sanity_check_paths = { + 'files': ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['EGL', 'GL', 'GLX', 'OpenGL']], + 'dirs': ['include/%s' % x for x in ['EGL', 'GL', 'GLES', 'GLES2', 'GLES3', 'glvnd', 'KHR']] + ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libunwind/libunwind-1.6.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libunwind/libunwind-1.6.2-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..031cb3115ea --- /dev/null +++ b/easybuild/easyconfigs/l/libunwind/libunwind-1.6.2-GCCcore-13.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libunwind' +version = '1.6.2' + +homepage = 'https://www.nongnu.org/libunwind/' +description = """The primary goal of libunwind is to define a portable and efficient C programming interface + (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the + preserved (callee-saved) state of each call-frame and to resume execution at any point in the call-chain + (non-local goto). The API supports both local (same-process) and remote (across-process) operation. + As such, the API is useful in a number of applications""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('XZ', '5.4.4'), +] + +preconfigopts = 'export LIBS="$LIBS -llzma" && export CFLAGS="$CFLAGS -fno-common" && ' + +sanity_check_paths = { + 'files': ['include/libunwind.h', 'lib/libunwind.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/Mesa/Mesa-23.1.9-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/Mesa/Mesa-23.1.9-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..906c5eb2634 --- /dev/null +++ b/easybuild/easyconfigs/m/Mesa/Mesa-23.1.9-GCCcore-13.2.0.eb @@ -0,0 +1,66 @@ +# This is a Mesa using software rendering via Gallium-DRI and libglvnd +# - libglvnd can dynamically choose between system-installed NVidia +# libGLX/libEGL or the software renderers provided by this Mesa +# - EGL is available +# +# Software renderers enabled (swr deprecated as of v22): +# - llvmpipe: uses LLVM for JIT code generation (multi-threaded) +# - softpipe: a reference Gallium driver +# Default renderer is llvmpipe. To use softpipe, set the environment +# variable GALLIUM_DRIVER=softpipe + +name = 'Mesa' +version = '23.1.9' + +homepage = 'https://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [ + 'https://mesa.freedesktop.org/archive/', + 'https://mesa.freedesktop.org/archive/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x', +] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['295ba27c28146ed09214e8ce79afa1659edf9d142decc3c91f804552d64f7510'] + +builddependencies = [ + ('binutils', '2.40'), + ('Meson', '1.2.3'), + ('Ninja', '1.11.1'), + ('flex', '2.6.4'), + ('Bison', '3.8.2'), + ('pkgconf', '2.0.3'), + ('Mako', '1.2.4'), + ('libxml2', '2.11.5'), + ('expat', '2.5.0'), + ('gettext', '0.22'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('zstd', '1.5.5'), + ('libdrm', '2.4.117'), + ('libglvnd', '1.7.0'), + ('libunwind', '1.6.2'), + ('LLVM', '16.0.6'), + ('X11', '20231019'), +] + +configopts = "-Dplatforms=x11 -Dosmesa=true -Dvulkan-drivers='' " +configopts += "-Dllvm=enabled -Dshared-llvm=enabled -Dlibunwind=enabled -Dglvnd=true" + +# Easybuild will automatically add appropriate Gallium drivers for the processor architecture of the host +# If you need a different configuration, it possible to override those values by setting your own configopts +# configopts += " -Dgallium-drivers=swrast" + +# symlink indirect to mesa GLX, similar to Debian, see +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881789 +# This helps in certain X forwarding situations (e.g. XQuartz) +postinstallcmds = ["ln -s libGLX_mesa.so.0 %(installdir)s/lib/libGLX_indirect.so.0"] + +moduleclass = 'vis'