From 982aabc5617f144626a108fa6dc57bdcb9592e87 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 3 Jun 2015 17:31:34 -0500 Subject: [PATCH] suitesparse_4_2: build with openblas Compared to ATLAS, OpenBLAS offers better performance, faster builds, and dynamic architecture detection. --- .../science/math/suitesparse/4.2.nix | 34 +++++++++++++++---- .../math/suitesparse/disable-metis.patch | 18 ---------- 2 files changed, 28 insertions(+), 24 deletions(-) delete mode 100644 pkgs/development/libraries/science/math/suitesparse/disable-metis.patch diff --git a/pkgs/development/libraries/science/math/suitesparse/4.2.nix b/pkgs/development/libraries/science/math/suitesparse/4.2.nix index 4d27701b135a..16174a80212f 100644 --- a/pkgs/development/libraries/science/math/suitesparse/4.2.nix +++ b/pkgs/development/libraries/science/math/suitesparse/4.2.nix @@ -1,22 +1,44 @@ -{ stdenv, fetchurl, blas, liblapack, gfortran } : +{ stdenv, fetchurl, gfortran, openblas }: + +let + int_t = if openblas.blas64 then "int64_t" else "int32_t"; +in stdenv.mkDerivation rec { version = "4.2.1"; name = "suitesparse-${version}"; src = fetchurl { url = "http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-${version}.tar.gz" ; - sha256 = "1ga69637x7kdkiy3w3lq9dvva7220bdangv2lch2wx1hpi83h0p8"; + sha256 = "1ga69637x7kdkiy3w3lq9dvva7220bdangv2lch2wx1hpi83h0p8"; }; - buildInputs = [blas liblapack gfortran] ; - patches = [./disable-metis.patch]; + + nativeBuildInputs = [ gfortran ]; + buildInputs = [ openblas ]; preConfigure = '' - export PREFIX=$out mkdir -p $out/lib mkdir -p $out/include + + sed -i "SuiteSparse_config/SuiteSparse_config.mk" \ + -e 's/METIS .*$/METIS =/' \ + -e 's/METIS_PATH .*$/METIS_PATH =/' \ + -e '/CHOLMOD_CONFIG/ s/$/-DNPARTITION -DLONGBLAS=${int_t}/' \ + -e '/UMFPACK_CONFIG/ s/$/-DLONGBLAS=${int_t}/' ''; - makeFlags = ''PREFIX=\"$(out)\" INSTALL_LIB=$(out)/lib INSTALL_INCLUDE=$(out)/include''; + makeFlags = [ + "PREFIX=\"$(out)\"" + "INSTALL_LIB=$(out)/lib" + "INSTALL_INCLUDE=$(out)/include" + "BLAS=-lopenblas" + "LAPACK=" + ]; NIX_CFLAGS = "-fPIC"; + meta = with stdenv.lib; { + homepage = http://faculty.cse.tamu.edu/davis/suitesparse.html; + description = "A suite of sparse matrix algorithms"; + license = with licenses; [ bsd2 gpl2Plus lgpl21Plus ]; + maintainers = with maintainers; [ ttuegel ]; + }; } diff --git a/pkgs/development/libraries/science/math/suitesparse/disable-metis.patch b/pkgs/development/libraries/science/math/suitesparse/disable-metis.patch deleted file mode 100644 index 5b735eb7d3c9..000000000000 --- a/pkgs/development/libraries/science/math/suitesparse/disable-metis.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -Nrc SuiteSparse/UMFPACK/Demo/Makefile SuiteSparse-new/UMFPACK/Demo/Makefile -*** SuiteSparse/UMFPACK/Demo/Makefile 2009-11-11 21:09:45.000000000 +0100 ---- SuiteSparse-new/UMFPACK/Demo/Makefile 2010-08-02 12:53:16.000000000 +0200 -*************** -*** 40,46 **** - ../../CAMD/Lib/libcamd.a: - ( cd ../../CAMD ; $(MAKE) library ) - -- $(METIS): -- ( cd $(METIS_PATH) && $(MAKE) ) - - UMFPACK = ../Lib/libumfpack.a ../../AMD/Lib/libamd.a \ ---- 40,44 ---- - ../../CAMD/Lib/libcamd.a: - ( cd ../../CAMD ; $(MAKE) library ) - - - UMFPACK = ../Lib/libumfpack.a ../../AMD/Lib/libamd.a \