Files
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

104 lines
2.4 KiB
Nix

{
lib,
stdenv,
fetchurl,
gfortran,
pkg-config,
libtool,
m4,
gnum4,
file,
# Memory Hierarchy (End-user can provide this.)
memHierarchy ? "",
# Headers/Libraries
blas,
zlib,
# RPC headers (rpc/xdr.h)
openmpi,
help2man,
doxygen,
octave,
}:
stdenv.mkDerivation rec {
pname = "librsb";
version = "1.3.0.2";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "sha256-GMb8RD+hz9KoEQ99S4jVu8tJO56Fs6YgFLi7V6hI4E8=";
};
# The default configure flags are still present when building
# --disable-static --disable-dependency-tracking
# Along with the --prefix=... flag (but we want that one).
configureFlags = [
"--enable-static"
"--enable-doc-build"
"--enable-octave-testing"
"--enable-sparse-blas-interface"
"--enable-fortran-module-install"
"--enable-pkg-config-install"
"--enable-matrix-types=all"
"--with-zlib=${zlib}/lib/libz.so"
"--with-memhinfo=${memHierarchy}"
];
# Ensure C/Fortran code is position-independent.
env.NIX_CFLAGS_COMPILE = toString [
"-fPIC"
"-Ofast"
];
FCFLAGS = [
"-fPIC"
"-Ofast"
];
enableParallelBuilding = true;
nativeBuildInputs = [
gfortran
pkg-config
libtool
m4
gnum4
file
blas
zlib
openmpi
octave
help2man # Turn "--help" into a man-page
doxygen # Build documentation
];
# Need to run cleanall target to remove any previously-generated files.
preBuild = ''
make cleanall
'';
nativeCheckInputs = [
octave
];
checkTarget = "tests";
meta = {
homepage = "https://librsb.sourceforge.net/";
description = "Shared memory parallel sparse matrix and sparse BLAS library";
longDescription = ''
Library for sparse matrix computations featuring the Recursive Sparse
Blocks (RSB) matrix format. This format allows cache efficient and
multi-threaded (that is, shared memory parallel) operations on large
sparse matrices.
librsb implements the Sparse BLAS standard, as specified in the BLAS
Forum documents.
Contains libraries and header files for developing applications that
want to make use of librsb.
'';
license = with lib.licenses; [ lgpl3Plus ];
maintainers = with lib.maintainers; [ KarlJoad ];
platforms = lib.platforms.all;
# linking errors such as 'undefined reference to `gzungetc'
broken = true;
};
}