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.
This commit is contained in:
Josef Kemetmueller 2016-07-18 21:55:26 +02:00 committed by knedlsepp
parent f3dc4d9ec3
commit 93dfdf0a0c
3 changed files with 39 additions and 11 deletions

View File

@ -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 ];
};
}

View File

@ -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

View File

@ -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)