Skip to content

Commit

Permalink
adding easyconfigs: muParser-2.3.4-GCCcore-13.2.0.eb, R-INLA-24.10.07…
Browse files Browse the repository at this point in the history
…-2-foss-2023b.eb, Rmath-4.4.1-foss-2023b.eb, SuiteSparse-7.7.0-foss-2023b.eb and patches: R-INLA-24.10.07_remove-hardcoding.patch, R-INLA-24.10.07-2_fix-hardcoded-deps.patch
  • Loading branch information
sassy committed Oct 14, 2024
1 parent 4872376 commit a136c4e
Show file tree
Hide file tree
Showing 6 changed files with 338 additions and 0 deletions.
32 changes: 32 additions & 0 deletions easybuild/easyconfigs/m/muParser/muParser-2.3.4-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
easyblock = 'CMakeMake'

name = 'muParser'
version = '2.3.4'

homepage = 'https://beltoforion.de/article.php?a=muparser'
description = """
muParser is an extensible high performance math expression parser library
written in C++. It works by transforming a mathematical expression into
bytecode and precalculating constant parts of the expression.
"""

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

source_urls = ['https://github.com/beltoforion/muparser/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['0c3fa54a3ebf36dda0ed3e7cd5451c964afbb15102bdbcba08aafb359a290121']

builddependencies = [
('binutils', '2.40'),
('CMake', '3.27.6'),
]

configopts = "-DENABLE_SAMPLES=OFF -DBUILD_SHARED_LIBS=ON"

sanity_check_paths = {
'files': ['include/%(name)s.h', 'lib/libmuparser.%s' % SHLIB_EXT],
'dirs': [],
}

moduleclass = 'math'
108 changes: 108 additions & 0 deletions easybuild/easyconfigs/r/R-INLA/R-INLA-24.10.07-2-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Updated to 24.10.07-2
# Author: J. Sassmannshausen (Imperial College London/UK)

easyblock = 'Bundle'

name = 'R-INLA'
version = '24.10.07-2'

homepage = 'https://www.r-inla.org'
description = "R-INLA is a package in R that do approximate Bayesian inference for Latent Gaussian Models."

toolchain = {'name': 'foss', 'version': '2023b'}
toolchainopts = {'openmp': True}

dependencies = [
('R', '4.4.1'),
('R-bundle-CRAN', '2024.06'),
('GSL', '2.7'),
('zlib', '1.2.13'),
('SuiteSparse', '7.7.0'),
('METIS', '5.1.0'),
('muParser', '2.3.4'),
('Rmath', '%(rver)s'),
('X11', '20231019'),
('libtool', '2.4.7'), # provides libltdl
]

default_easyblock = 'ConfigureMake'
# all components are installed from the same source tarball
default_component_specs = {
'source_urls': ['https://github.com/hrue/r-inla/archive/refs/tags/'],
'sources': [{'download_filename': 'Version_%s.tar.gz' % version, 'filename': 'R-INLA-%s.tar.gz' % version}],
'skipsteps': ['configure'],
'checksums': ['6e3bf7fd403290928ce5f9bd89092a750f8b9faf40bb99a3b3265116143260db']
}

local_gmrflib_prebuildopts = ' cd r-inla-Version_%(version)s && ln -s gmrflib GMRFLib && cd - && '
local_gmrflib_buildopts = ' -C r-inla-*/gmrflib PREFIX=%(installdir)s CC="$CC" FC="$FC" '
local_gmrflib_buildopts += ' FLAGS="$CXXFLAGS -DINLA_LINK_WITH_OPENBLAS " '

local_rinla_prebuildopts = "export CPATH=$EBROOTR/lib64/R/include/:$CPATH && "
local_rinla_prebuildopts += "cp r-inla-Version_%(version)s/gmrflib/sha.h %(installdir)s/include/GMRFLib/ && "

local_inla_buildopts = '-C r-inla-*/inlaprog PREFIX=%(installdir)s '
local_inla_buildopts += ' CC="$CC" CXX="$CXX" FC="$FC" LD="$CXX -lltdl" '
local_inla_buildopts += ' FLAGS="$CXXFLAGS -DINLA_LINK_WITH_OPENBLAS"'

components = [
('taucs', version, {
'easyblock': 'MakeCp',
'prebuildopts': "cd r-inla-*/extlibs && tar xvfz taucs-2.2--my-fix.tgz && cd taucs-2.2--my-fix && ",
'buildopts': 'CC="$CC" CFLAGS="$CFLAGS" FC="$FC" FFLAGS="$FFLAGS" LIBBLAS="$LIBBLAS" LIBLAPACK="$LIBLAPACK"',
'files_to_copy': [(['r-inla-*/extlibs/taucs-2.2--my-fix/lib/linux/libtaucs.a'], 'lib')],
}),
('fmesher-R-INLA', version, {
'patches': ['R-INLA-24.10.07-2_fix-hardcoded-deps.patch'],
'checksums': default_component_specs['checksums'] + [
'2e81c16c06eb1a9355e50dfac5f92477c093d94137ee49ae35e78e75d67a853d',
],
'buildopts': '-C r-inla-*/fmesher PREFIX=%(installdir)s CC="$CC" CXX="$CXX" LD="$CXX" FLAGS="$CXXFLAGS"',
'installopts': '-C r-inla-*/fmesher PREFIX=%(installdir)s',
}),
('GMRFLib', version, {
'prebuildopts': local_gmrflib_prebuildopts,
'buildopts': local_gmrflib_buildopts,
'installopts': '-C r-inla-*/gmrflib PREFIX=%(installdir)s',
}),
('fmesher', '0.1.7', {
'easyblock': 'RPackage',
'source_urls': [
'https://cran.r-project.org/src/contrib/Archive/fmesher', # package archive
'https://cran.r-project.org/src/contrib/', # current version of packages
],
'sources': ['fmesher_%(version)s.tar.gz'],
'checksums': ['b59af73ac4e30e5d4287fb6ddfc0b6e21b007243bd94a652f3725ea431019ecf'],
'start_dir': 'fmesher',
}),
('rinla', version, {
'patches': ['R-INLA-24.10.07_remove-hardcoding.patch'],
'checksums': default_component_specs['checksums'] + [
'8a1fd63611e1ad64ed8702b5ba07b5f3969afcaf0454605074c1d717590ca603',
],
'easyblock': 'RPackage',
'start_dir': 'r-inla-Version_%(version)s/rinla',
'preinstallopts': "export R_LIBS_SITE=%(installdir)s:$R_LIBS_SITE && ",
}),
(name, version, {
'prebuildopts': local_rinla_prebuildopts,
'buildopts': local_inla_buildopts,
'installopts': '-C r-inla-*/inlaprog PREFIX=%(installdir)s',
}),
]

local_bins = ['inla', 'fmesher']

postinstallcmds = ['ln -s %%(installdir)s/bin/%s %%(installdir)s/INLA/bin/linux/64bit/%s' % (x, x) for x in local_bins]

sanity_check_paths = {
'files': ['%s/%s' % (p, x) for p in ['bin', 'INLA/bin/linux/64bit'] for x in local_bins] +
['lib/libGMRFLib.a', 'lib/libtaucs.a'],
'dirs': ['doc', 'include/GMRFLib'],
}

sanity_check_commands = ["Rscript -e 'library(INLA)'"] + ["%s -h" % x for x in local_bins]

modextrapaths = {'R_LIBS_SITE': ''}

moduleclass = 'math'
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
use dependencies provided by EasyBuild
authors: Denis Kristak (INUITS), Kenneth Hoste (HPC-UGent)
updated to 24.10.07-2: J. Sassmannshausen (Imperial College London/UK)
diff --git a/r-inla-Version_24.10.07-2.orig/gmrflib/old-stuff/smtp-taucs.c b/r-inla-Version_24.10.07-2/gmrflib/old-stuff/smtp-taucs.c
index 07d3b13..d2964c6 100644
--- a/r-inla-Version_24.10.07-2.orig/gmrflib/old-stuff/smtp-taucs.c
+++ b/r-inla-Version_24.10.07-2/gmrflib/old-stuff/smtp-taucs.c
@@ -43,7 +43,7 @@

#include "GMRFLib/GMRFLib.h"
#include "GMRFLib/GMRFLibP.h"
-#include "amd.h"
+#include "suitesparse/amd.h"
#include "metis.h"

GMRFLib_taucs_cache_tp *GMRFLib_taucs_cache_duplicate(GMRFLib_taucs_cache_tp *cache)
diff --git a/r-inla-Version_24.10.07-2.orig/gmrflib/smtp-taucs.c b/r-inla-Version_24.10.07-2/gmrflib/smtp-taucs.c
index ba7331f..dc09aba 100644
--- a/r-inla-Version_24.10.07-2.orig/gmrflib/smtp-taucs.c
+++ b/r-inla-Version_24.10.07-2/gmrflib/smtp-taucs.c
@@ -43,7 +43,7 @@

#include "GMRFLib/GMRFLib.h"
#include "GMRFLib/GMRFLibP.h"
-#include "amd.h"
+#include "suitesparse/amd.h"
#include "metis.h"

#define TIME_FUNCTIONS 0
diff --git a/r-inla-Version_24.10.07-2.orig/inlaprog/Makefile b/r-inla-Version_24.10.07-2/inlaprog/Makefile
index c2a5bc3..64e9ede 100644
--- a/r-inla-Version_24.10.07-2.orig/inlaprog/Makefile
+++ b/r-inla-Version_24.10.07-2/inlaprog/Makefile
@@ -2,8 +2,8 @@

PREFIX = /usr/local

-RLIB_INC = -DINLA_WITH_LIBR -I/usr/include/R -I/usr/share/R/include
-RLIB_LIB = -L/usr/lib -lRmath -L/usr/lib/R/lib -lR
+RLIB_INC = -DINLA_WITH_LIBR
+RLIB_LIB = -lRmath -lR

# select compilers and optimized compiler-options, add -fopenmp or similar to use OpenMP
CC = gcc
@@ -19,7 +19,7 @@ LEXTPREFIX = $(PREFIX)

# The external libraries to link with
EXTLIBS1 = -L$(PREFIX)/lib -lGMRFLib -L$(LEXTPREFIX)/lib
-EXTLIBS2 = -lgsl -ltaucs -lmetis -llapack -lblas -lgslcblas -lamd -lmuparser -lz -lgfortran -lcrypto
+EXTLIBS2 = -lgsl -ltaucs -lmetis -lscalapack -lflexiblas -lgslcblas -lamd -lmuparser -lz -lgfortran -lcrypto
EXTLIBS3 = -Wl,--whole-archive -lpthread -Wl,--no-whole-archive -lm

################################################################################
@@ -55,8 +55,8 @@ install: $(INLA)
done; \
install -m755 $(INLA) $(PREFIX)/bin/$(INLA);\
install -m755 $(INLA) $(PREFIX)/bin/$(INLA);\
- rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete doc/* $(PREFIX)/doc/inla; \
- rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete examples/* $(PREFIX)/doc/inla/examples;
+ # rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete doc/* $(PREFIX)/doc/inla; \
+ # rsync -auv --no-p --no-o --no-g --chmod=ugo=rwX --delete examples/* $(PREFIX)/doc/inla/examples;

clean:; -$(RM) $(OBJ) $(INLA)

diff --git a/r-inla-Version_24.10.07-2.orig/inlaprog/src/eval.c b/r-inla-Version_24.10.07-2/inlaprog/src/eval.c
index bc9819b..c352fca 100644
--- a/r-inla-Version_24.10.07-2.orig/inlaprog/src/eval.c
+++ b/r-inla-Version_24.10.07-2/inlaprog/src/eval.c
@@ -35,7 +35,7 @@
#include <stdio.h>

#if defined(INLA_WITH_MUPARSER)
-#include <muParser/muParserDLL.h>
+#include <muParserDLL.h>
#endif

#include "GMRFLib/GMRFLib.h"
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
remove hardcoded paths from scripts
authors: Denis Kristak (INUITS), Kenneth Hoste (HPC-UGent)
Updated to 24.10.07: J. Sassmannshausen (Imperial College London/UK)
diff --git a/r-inla-Version_24.10.07.orig/rinla/inst/bin/linux/64bit/fmesher.run b/r-inla-Version_24.10.07/rinla/inst/bin/linux/64bit/fmesher.run
index 5a273e9..3195d02 100755
--- a/r-inla-Version_24.10.07.orig/rinla/inst/bin/linux/64bit/fmesher.run
+++ b/r-inla-Version_24.10.07/rinla/inst/bin/linux/64bit/fmesher.run
@@ -4,18 +4,6 @@ tmp=$(basename "$cmd")
prog=${tmp%%.run}
DIR=$(dirname "$cmd")

-D=""
-for d in {,/usr}/lib64 /usr/lib64/R/lib {,/usr}/lib/x86_64-linux-gnu {,/usr}/lib; do
- if [ -d "$d" ]; then
- if [ -z "$D" ]; then
- D="$d"
- else
- D="$D:$d"
- fi
- fi
-done
-export LD_LIBRARY_PATH="$DIR/first:$D:$DIR:$LD_LIBRARY_PATH"
-
if [ "${INLA_DEBUG}XX" != "XX" ]; then
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
ldd -r "$DIR/$prog"
diff --git a/r-inla-Version_24.10.07.orig/rinla/inst/bin/linux/64bit/inla.run b/r-inla-Version_24.10.07/rinla/inst/bin/linux/64bit/inla.run
index 49a6424..555d007 100755
--- a/r-inla-Version_24.10.07.orig/rinla/inst/bin/linux/64bit/inla.run
+++ b/r-inla-Version_24.10.07/rinla/inst/bin/linux/64bit/inla.run
@@ -13,17 +13,6 @@ if [ ! -z ${R_HOME+x} ]; then
fi
fi

-D=""
-for d in {,/usr}/lib64 /usr/lib64/R/lib {,/usr}/lib/x86_64-linux-gnu {,/usr}/lib; do
- if [ -d "$d" ]; then
- if [ -z "$D" ]; then
- D="$d"
- else
- D="$D:$d"
- fi
- fi
-done
-
if [ -n "${INLA_NATIVE_LD_LIBRARY_PATH}" ]; then
## so we can revert back to old behaviour
export LD_LIBRARY_PATH="$DIR/first:$D:$DIR:$LD_LIBRARY_PATH"
47 changes: 47 additions & 0 deletions easybuild/easyconfigs/r/Rmath/Rmath-4.4.1-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Easyconfig for Rmath
# Author: Caspar van Leeuwen
# SURFsara, Amsterdam, The Netherlands
# Updated to 4.4.1: J. Sassmannshausen (Imperial College London/UK)

easyblock = 'ConfigureMake'

name = 'Rmath'
version = '4.4.1'

homepage = "https://www.r-project.org/"
description = """Rmath is the standalone version of the R math library.
Rmath can be used in your own C/C++ routines."""

toolchain = {'name': 'foss', 'version': '2023b'}

source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s/']
sources = ['R-%(version)s.tar.gz']
checksums = ['b4cb675deaaeb7299d3b265d218cde43f192951ce5b89b7bb1a5148a36b2d94d']

dependencies = [
('bzip2', '1.0.8'),
('cURL', '8.3.0'),
('libreadline', '8.2'),
('PCRE2', '10.42'),
('XZ', '5.4.4'),
('zlib', '1.2.13')
]

# Copied from R-3.3.1-intel-2016b.eb.
# Again, unsure if these affect R-math: R documentation doesn't specify.
configopts = "--with-pic --enable-threads --with-x=no --with-pcre2"

# Since we're only installing Rmath anyway, we don't care about R packages.
configopts += " --with-recommended-packages=no"

# To build Rmath, docs say you need to execute 'make' in src/nmath/standalone
# https://cran.r-project.org/doc/manuals/r-devel/R-admin.html#Configuration-options
prebuildopts = 'cd src/nmath/standalone;'
preinstallopts = prebuildopts

sanity_check_paths = {
'files': ['lib/libRmath.a', 'lib/libRmath.%s' % SHLIB_EXT, 'include/Rmath.h'],
'dirs': []
}

moduleclass = 'numlib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name = 'SuiteSparse'
version = '7.7.0'

homepage = 'https://faculty.cse.tamu.edu/davis/suitesparse.html'
description = """SuiteSparse is a collection of libraries to manipulate sparse matrices."""

toolchain = {'name': 'foss', 'version': '2023b'}
toolchainopts = {'unroll': True, 'pic': True}

source_urls = ['https://github.com/DrTimothyAldenDavis/SuiteSparse/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['529b067f5d80981f45ddf6766627b8fc5af619822f068f342aab776e683df4f3']

builddependencies = [
('CMake', '3.27.6'),
('pkgconf', '2.0.3'),
]

dependencies = [
('MPFR', '4.2.1'),
]

# uncomment the next row if need customization
# cmake_options = ''

moduleclass = 'numlib'

0 comments on commit a136c4e

Please sign in to comment.