about summary refs log tree commit diff
path: root/pkgs/development/libraries/science
diff options
context:
space:
mode:
authorRoberto Di Remigio <roberto.diremigio@gmail.com>2019-12-15 22:43:23 +0100
committerRoberto Di Remigio <roberto.diremigio@gmail.com>2019-12-19 10:12:00 +0100
commit6cc9bbe2fd441e5c994726d5c456e77a604f272b (patch)
treead5890935381e7f913426eb727ac65707473ebd4 /pkgs/development/libraries/science
parente0605b3174f4d786368f5cfc2086a74e66c3cc34 (diff)
downloadnixlib-6cc9bbe2fd441e5c994726d5c456e77a604f272b.tar
nixlib-6cc9bbe2fd441e5c994726d5c456e77a604f272b.tar.gz
nixlib-6cc9bbe2fd441e5c994726d5c456e77a604f272b.tar.bz2
nixlib-6cc9bbe2fd441e5c994726d5c456e77a604f272b.tar.lz
nixlib-6cc9bbe2fd441e5c994726d5c456e77a604f272b.tar.xz
nixlib-6cc9bbe2fd441e5c994726d5c456e77a604f272b.tar.zst
nixlib-6cc9bbe2fd441e5c994726d5c456e77a604f272b.zip
mkl: extract static libraries optionally
Diffstat (limited to 'pkgs/development/libraries/science')
-rw-r--r--pkgs/development/libraries/science/math/mkl/default.nix36
1 files changed, 20 insertions, 16 deletions
diff --git a/pkgs/development/libraries/science/math/mkl/default.nix b/pkgs/development/libraries/science/math/mkl/default.nix
index 08644f7c2eff..89b30703d3d5 100644
--- a/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/pkgs/development/libraries/science/math/mkl/default.nix
@@ -1,4 +1,4 @@
-{ stdenvNoCC, fetchurl, rpmextract, undmg, darwin }:
+{ stdenvNoCC, fetchurl, rpm, cpio, undmg, darwin, enableStatic ? false }:
 /*
   For details on using mkl as a blas provider for python packages such as numpy,
   numexpr, scipy, etc., see the Python section of the NixPkgs manual.
@@ -39,7 +39,7 @@ in stdenvNoCC.mkDerivation {
     then
       [ undmg darwin.cctools ]
     else
-      [ rpmextract ];
+      [ rpm cpio ];
 
   buildPhase = if stdenvNoCC.isDarwin then ''
     for f in Contents/Resources/pkg/*.tgz; do
@@ -47,24 +47,28 @@ in stdenvNoCC.mkDerivation {
     done
   '' else ''
     # Common stuff
-    rpmextract rpm/intel-mkl-common-c-${rpm-ver}.noarch.rpm
-    rpmextract rpm/intel-mkl-common-f-${rpm-ver}.noarch.rpm
+    rpm2cpio rpm/intel-mkl-common-c-${rpm-ver}.noarch.rpm | cpio -idv
+    rpm2cpio rpm/intel-mkl-common-f-${rpm-ver}.noarch.rpm | cpio -idv
 
     # Dynamic libraries
-    rpmextract rpm/intel-mkl-cluster-rt-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-core-rt-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-f-rt-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-rt-${rpm-ver}.x86_64.rpm
-
-    # Static libraries
-    rpmextract rpm/intel-mkl-cluster-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-core-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-f-${rpm-ver}.x86_64.rpm
+    rpm2cpio rpm/intel-mkl-cluster-rt-${rpm-ver}.x86_64.rpm | cpio -idv
+    rpm2cpio rpm/intel-mkl-core-rt-${rpm-ver}.x86_64.rpm | cpio -idv
+    rpm2cpio rpm/intel-mkl-gnu-f-rt-${rpm-ver}.x86_64.rpm | cpio -idv
+    rpm2cpio rpm/intel-mkl-gnu-rt-${rpm-ver}.x86_64.rpm | cpio -idv
 
     # Intel OpenMP runtime
-    rpmextract rpm/intel-openmp-${openmp-ver}.x86_64.rpm
-  '';
+    rpm2cpio rpm/intel-openmp-${openmp-ver}.x86_64.rpm | cpio -idv
+  '' + (if enableStatic then ''
+    # Static libraries
+    rpm2cpio rpm/intel-mkl-core-${rpm-ver}.x86_64.rpm | cpio -idv
+    rpm2cpio rpm/intel-mkl-cluster-${rpm-ver}.x86_64.rpm | cpio -idv
+    rpm2cpio rpm/intel-mkl-gnu-${rpm-ver}.x86_64.rpm | cpio -idv
+    rpm2cpio rpm/intel-mkl-gnu-f-${rpm-ver}.x86_64.rpm | cpio -idv
+  '' else ''
+    # Extract the PkgConfig files for dynamic libraries only
+    rpm2cpio rpm/intel-mkl-core-${rpm-ver}.x86_64.rpm | cpio -idv '*dynamic*.pc'
+  ''
+  );
 
   installPhase = ''
     for f in $(find . -name 'mkl*.pc') ; do