diff options
author | Josef Kemetmueller <josef.kemetmueller@aon.at> | 2016-07-18 21:55:26 +0200 |
---|---|---|
committer | knedlsepp <josef.kemetmueller@aon.at> | 2016-07-19 12:37:08 +0000 |
commit | 93dfdf0a0c5aea8ca7391941097566609060fa9a (patch) | |
tree | c4fc18dae94bf04bcac70c5e52812970974e3585 /pkgs/development/libraries/armadillo | |
parent | f3dc4d9ec32dba8f9694305f00e2e706f66d8085 (diff) |
armadillo: correct dependencies
- Remove unused dependencies atlas/blas
- Add hdf5/superlu dependency (As superlu needs openblasCompat, we also use it here.)
- Add support for darwin
- Make use of OpenBLAS-LAPACK in armadillo
OpenBLAS (confusingly) contains LAPACK already by default, so we simply use OpenBLAS when searching for LAPACK.
The better solution would be for armadillo to use cmake built in FindBLAS/FindLAPACK which both would find OpenBLAS.
Diffstat (limited to 'pkgs/development/libraries/armadillo')
3 files changed, 39 insertions, 11 deletions
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix index 8d904efe0d66..937275b6528a 100644 --- a/pkgs/development/libraries/armadillo/default.nix +++ b/pkgs/development/libraries/armadillo/default.nix @@ -1,23 +1,26 @@ -{stdenv, fetchurl, cmake, pkgconfig, atlas, blas, openblas}: +{ stdenv, fetchurl, cmake, openblasCompat, superlu, hdf5 }: stdenv.mkDerivation rec { - version = "7.200.1b"; + version = "7.200.2"; name = "armadillo-${version}"; - + src = fetchurl { - url = "http://sourceforge.net/projects/arma/files/armadillo-${version}.tar.xz"; - sha256 = "00s8xrywc4aipipq1zpd6q9gzqmsiv8cwd25zvb1csrpninmidvc"; + url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz"; + sha256 = "1yvx75caks477jqwx5gspi6946jialddk00wdvg6dnh5wdi2xasm"; }; - unpackCmd = [ "tar -xf ${src}" ]; - - nativeBuildInputs = [ cmake atlas blas openblas ]; + buildInputs = [ cmake openblasCompat superlu hdf5 ]; + + cmakeFlags = [ "-DDETECT_HDF5=ON" ]; + + patches = [ ./use-unix-config-on-OS-X.patch + ./use-OpenBLAS-as-LAPACK.patch ]; meta = with stdenv.lib; { description = "C++ linear algebra library"; - homepage = "http://arma.sourceforge.net" ; + homepage = http://arma.sourceforge.net; license = licenses.mpl20; - platforms = stdenv.lib.platforms.linux ; - maintainers = [ stdenv.lib.maintainers.juliendehos ]; + platforms = platforms.unix; + maintainers = [ maintainers.juliendehos ]; }; } diff --git a/pkgs/development/libraries/armadillo/use-OpenBLAS-as-LAPACK.patch b/pkgs/development/libraries/armadillo/use-OpenBLAS-as-LAPACK.patch new file mode 100644 index 000000000000..e4c77d2cc2e3 --- /dev/null +++ b/pkgs/development/libraries/armadillo/use-OpenBLAS-as-LAPACK.patch @@ -0,0 +1,14 @@ +diff --git a/cmake_aux/Modules/ARMA_FindLAPACK.cmake b/cmake_aux/Modules/ARMA_FindLAPACK.cmake +index 5395afb..a203c93 100644 +--- a/cmake_aux/Modules/ARMA_FindLAPACK.cmake ++++ b/cmake_aux/Modules/ARMA_FindLAPACK.cmake +@@ -5,7 +5,7 @@ + # also defined, but not for general use are + # LAPACK_LIBRARY, where to find the LAPACK library. + +-SET(LAPACK_NAMES ${LAPACK_NAMES} lapack) ++SET(LAPACK_NAMES ${LAPACK_NAMES} openblas) + FIND_LIBRARY(LAPACK_LIBRARY + NAMES ${LAPACK_NAMES} + PATHS /usr/lib64/atlas /usr/lib/atlas /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib + diff --git a/pkgs/development/libraries/armadillo/use-unix-config-on-OS-X.patch b/pkgs/development/libraries/armadillo/use-unix-config-on-OS-X.patch new file mode 100644 index 000000000000..b6fdddcaf2da --- /dev/null +++ b/pkgs/development/libraries/armadillo/use-unix-config-on-OS-X.patch @@ -0,0 +1,11 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -84,7 +84,7 @@ message(STATUS "DETECT_HDF5 = ${DETECT_HDF5}" ) + ## + ## Find LAPACK and BLAS libraries, or their optimised versions + ## +- ++set(APPLE false) + if(APPLE) + + set(ARMA_OS macos) |