Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / librsb / default.nix
blobd9dc209a7139ed4eb89487d04b75ca568d4b2fa8
1 { lib, stdenv, fetchurl
2 , gfortran
3 , pkg-config, libtool
4 , m4, gnum4
5 , file
6 # Memory Hierarchy (End-user can provide this.)
7 , memHierarchy ? ""
8 # Headers/Libraries
9 , blas, zlib
10 # RPC headers (rpc/xdr.h)
11 , openmpi
12 , help2man
13 , doxygen
14 , octave
17 stdenv.mkDerivation rec {
18   pname = "librsb";
19   version = "1.2.0.10";
21   src = fetchurl {
22     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
23     sha256 = "sha256-7Enz94p8Q/yeEJdlk9EAqkmxhjMJ7Y+jzLt6rVLS97g=";
24   };
26   # The default configure flags are still present when building
27   # --disable-static --disable-dependency-tracking
28   # Along with the --prefix=... flag (but we want that one).
29   configureFlags = [
30     "--enable-static"
31     "--enable-doc-build"
32     "--enable-octave-testing"
33     "--enable-sparse-blas-interface"
34     "--enable-fortran-module-install"
35     "--enable-pkg-config-install"
36     "--enable-matrix-types=all"
37     "--with-zlib=${zlib}/lib/libz.so"
38     "--with-memhinfo=${memHierarchy}"
39   ];
41   # Ensure C/Fortran code is position-independent.
42   env.NIX_CFLAGS_COMPILE = toString [ "-fPIC" "-Ofast" ];
43   FCFLAGS = [ "-fPIC" "-Ofast" ];
45   enableParallelBuilding = true;
47   nativeBuildInputs = [
48     gfortran
49     pkg-config libtool
50     m4 gnum4
51     file
52     blas zlib
53     openmpi
54     octave
55     help2man # Turn "--help" into a man-page
56     doxygen # Build documentation
57   ];
59   # Need to run cleanall target to remove any previously-generated files.
60   preBuild = ''
61     make cleanall
62   '';
64   nativeCheckInputs = [
65     octave
66   ];
67   checkTarget = "tests";
69   meta = with lib; {
70     homepage = "https://librsb.sourceforge.net/";
71     description = "Shared memory parallel sparse matrix and sparse BLAS library";
72     longDescription = ''
73       Library for sparse matrix computations featuring the Recursive Sparse
74       Blocks (RSB) matrix format. This format allows cache efficient and
75       multi-threaded (that is, shared memory parallel) operations on large
76       sparse matrices.
77       librsb implements the Sparse BLAS standard, as specified in the BLAS
78       Forum documents.
79       Contains libraries and header files for developing applications that
80       want to make use of librsb.
81     '';
82     license = with licenses; [ lgpl3Plus ];
83     maintainers = with maintainers; [ KarlJoad ];
84     platforms = platforms.all;
85     # ./rsb_common.h:56:10: fatal error: 'omp.h' file not found
86     broken = stdenv.isDarwin;
87   };