at 22.05-pre 86 lines 2.3 kB view raw
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 15}: 16 17stdenv.mkDerivation rec { 18 pname = "librsb"; 19 version = "1.2.0.9"; 20 21 src = fetchurl { 22 url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; 23 sha256 = "1ynrsgnvv1jfm8dv3jwjrip9x9icxv7w3qrk149025j6fbaza8gl"; 24 }; 25 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 ]; 40 41 # Ensure C/Fortran code is position-independent. 42 NIX_CFLAGS_COMPILE = [ "-fPIC" "-Ofast" ]; 43 FCFLAGS = [ "-fPIC" "-Ofast" ]; 44 45 enableParallelBuilding = true; 46 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 ]; 58 59 # Need to run cleanall target to remove any previously-generated files. 60 preBuild = '' 61 make cleanall 62 ''; 63 64 checkInputs = [ 65 octave 66 ]; 67 checkTarget = "tests"; 68 69 meta = with lib; { 70 homepage = "http://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 }; 86}