diff --git a/pkgs/development/libraries/science/math/mkl/default.nix b/pkgs/development/libraries/science/math/mkl/default.nix index 7412ecdba21..930dcd87a63 100644 --- a/pkgs/development/libraries/science/math/mkl/default.nix +++ b/pkgs/development/libraries/science/math/mkl/default.nix @@ -1,4 +1,4 @@ -{ stdenvNoCC, writeText, fetchurl, rpm, cpio, openmp }: +{ stdenvNoCC, writeText, fetchurl, rpmextract, openmp, undmg }: stdenvNoCC.mkDerivation rec { name = "mkl-${version}"; @@ -6,24 +6,40 @@ stdenvNoCC.mkDerivation rec { date = "2019.0"; rel = "117"; - src = fetchurl { - url = "http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13575/l_mkl_${version}.tgz"; - sha256 = "1bf7i54iqlf7x7fn8kqwmi06g30sxr6nq3ac0r871i6g0p3y47sf"; - }; + src = if stdenvNoCC.isDarwin + then + (fetchurl { + url = "http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13565/m_mkl_${version}.dmg"; + sha256 = "1f1jppac7vqwn00hkws0p4njx38ajh0n25bsjyb5d7jcacwfvm02"; + }) + else + (fetchurl { + url = "http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13575/l_mkl_${version}.tgz"; + sha256 = "1bf7i54iqlf7x7fn8kqwmi06g30sxr6nq3ac0r871i6g0p3y47sf"; + }); - buildInputs = [ rpm cpio ]; + buildInputs = if stdenvNoCC.isDarwin then [ undmg ] else [ rpmextract ]; propagatedBuildInputs = [ openmp ]; - buildPhase = '' - rpm2cpio rpm/intel-mkl-common-c-${date}-${rel}-${date}-${rel}.noarch.rpm | cpio -idmv - rpm2cpio rpm/intel-mkl-core-rt-${date}-${rel}-${date}-${rel}.x86_64.rpm | cpio -idmv - ''; + buildPhase = if stdenvNoCC.isDarwin then '' + for f in Contents/Resources/pkg/*.tgz; do + tar xzvf $f + done + '' else '' + rpmextract rpm/intel-mkl-common-c-${date}-${rel}-${date}-${rel}.noarch.rpm + rpmextract rpm/intel-mkl-core-rt-${date}-${rel}-${date}-${rel}.x86_64.rpm + '' ; - installPhase = '' - mkdir -p $out/lib - cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/include $out/ - cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/lib/intel64_lin/* $out/lib/ - cp license.txt $out/lib/ + installPhase = if stdenvNoCC.isDarwin then '' + mkdir -p $out/lib + cp -r compilers_and_libraries_${version}/mac/mkl/include $out/ + cp -r compilers_and_libraries_${version}/mac/mkl/lib/* $out/lib/ + cp -r compilers_and_libraries_${version}/licensing/mkl/en/license.txt $out/lib/ + '' else '' + mkdir -p $out/lib + cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/include $out/ + cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/lib/intel64_lin/* $out/lib/ + cp license.txt $out/lib/ ''; # Per license agreement, do not modify the binary @@ -48,8 +64,8 @@ stdenvNoCC.mkDerivation rec { threading models. ''; homepage = https://software.intel.com/en-us/mkl; - license = licenses.issl; - platforms = [ "x86_64-linux" ]; + license = [ licenses.issl licenses.unfreeRedistributable ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; maintainers = [ maintainers.bhipple ]; }; }