diff options
author | Kier Davis <kierdavis@gmail.com> | 2017-02-04 20:24:48 +0000 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2017-02-07 15:20:30 +0300 |
commit | 83865b2c6cba71c15336ab9aefa3b6bed6986abe (patch) | |
tree | 118d091c54c236c8ddd218a45c409a2f56680439 /pkgs/os-specific/linux/intel-ocl | |
parent | f7b7d8e7b59f5e13338be76256e8b524eb993959 (diff) | |
download | nixlib-83865b2c6cba71c15336ab9aefa3b6bed6986abe.tar nixlib-83865b2c6cba71c15336ab9aefa3b6bed6986abe.tar.gz nixlib-83865b2c6cba71c15336ab9aefa3b6bed6986abe.tar.bz2 nixlib-83865b2c6cba71c15336ab9aefa3b6bed6986abe.tar.lz nixlib-83865b2c6cba71c15336ab9aefa3b6bed6986abe.tar.xz nixlib-83865b2c6cba71c15336ab9aefa3b6bed6986abe.tar.zst nixlib-83865b2c6cba71c15336ab9aefa3b6bed6986abe.zip |
intel-ocl: init at r4.0-59481
Diffstat (limited to 'pkgs/os-specific/linux/intel-ocl')
-rw-r--r-- | pkgs/os-specific/linux/intel-ocl/default.nix | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/intel-ocl/default.nix b/pkgs/os-specific/linux/intel-ocl/default.nix new file mode 100644 index 000000000000..688cfbb8df5d --- /dev/null +++ b/pkgs/os-specific/linux/intel-ocl/default.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchzip, rpmextract, ncurses5, numactl, zlib }: + +stdenv.mkDerivation rec { + version = "r4.0-59481"; + name = "intel-ocl-${version}"; + + src = fetchzip { + url = "https://software.intel.com/sites/default/files/managed/48/96/SRB4_linux64.zip"; + sha256 = "1q69g28i6l7p13hnsk82g2qhdf2chwh4f0wvzac6xml67hna3v34"; + stripRoot = false; + }; + + buildInputs = [ rpmextract ]; + + sourceRoot = "."; + + libPath = stdenv.lib.makeLibraryPath [ + stdenv.cc.cc.lib + ncurses5 + numactl + zlib + ]; + + postUnpack = '' + # Extract the RPMs contained within the source ZIP. + rpmextract SRB4_linux64.zip/intel-opencl-${version}.x86_64.rpm + rpmextract SRB4_linux64.zip/intel-opencl-cpu-${version}.x86_64.rpm + ''; + + patchPhase = '' + # Remove libOpenCL.so, since we use ocl-icd's libOpenCL.so instead and this would cause a clash. + rm opt/intel/opencl/libOpenCL.so* + + # Patch shared libraries. + for lib in opt/intel/opencl/*.so; do + patchelf --set-rpath "${libPath}:$out/lib/intel-ocl" $lib || true + done + ''; + + buildPhase = '' + # Create ICD file, which just contains the path of the corresponding shared library. + echo "$out/lib/intel-ocl/libintelocl.so" > intel.icd + ''; + + installPhase = '' + install -D -m 0755 opt/intel/opencl/*.so* -t $out/lib/intel-ocl + install -D -m 0644 opt/intel/opencl/*.{o,rtl,bin} -t $out/lib/intel-ocl + install -D -m 0644 opt/intel/opencl/{LICENSE,NOTICES} -t $out/share/doc/intel-ocl + install -D -m 0644 intel.icd -t $out/etc/OpenCL/vendors + ''; + + dontStrip = true; + + meta = { + description = "Official OpenCL runtime for Intel CPUs"; + homepage = https://software.intel.com/en-us/articles/opencl-drivers; + license = stdenv.lib.licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = [ stdenv.lib.maintainers.kierdavis ]; + }; +} |