63 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ stdenv
 | 
						|
, fetchurl
 | 
						|
, rpmextract
 | 
						|
, autoPatchelfHook
 | 
						|
, gcc
 | 
						|
, intel-mpi
 | 
						|
}:
 | 
						|
 | 
						|
stdenv.mkDerivation rec {
 | 
						|
  version = "${year}.${v_a}.${v_b}";
 | 
						|
  name = "intel-compiler-${version}";
 | 
						|
 | 
						|
  passthru = {
 | 
						|
    CC = "icc";
 | 
						|
    CXX = "icpc";
 | 
						|
  };
 | 
						|
 | 
						|
  # From Arch Linux PKGBUILD
 | 
						|
  dir_nr="17114";
 | 
						|
  year="2020";
 | 
						|
  v_a="4";
 | 
						|
  v_b="304";
 | 
						|
  update="4";
 | 
						|
  composer_xe_dir="compilers_and_libraries_${year}.${v_a}.${v_b}";
 | 
						|
  tgz="parallel_studio_xe_2020_update${update}_professional_edition.tgz";
 | 
						|
 | 
						|
  src = fetchurl {
 | 
						|
    url = "https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/${dir_nr}/${tgz}";
 | 
						|
    sha256 = "1rn9kk5bjj0jfv853b09dxrx7kzvv8dlyzw3hl9ijx9mqr09lrzr";
 | 
						|
  };
 | 
						|
 | 
						|
  buildInputs = [
 | 
						|
    rpmextract
 | 
						|
    autoPatchelfHook
 | 
						|
    gcc.cc.lib
 | 
						|
    gcc
 | 
						|
    intel-mpi
 | 
						|
  ];
 | 
						|
 | 
						|
  # The gcc package is required for building other programs
 | 
						|
  propagatedBuildInputs = [ gcc ];
 | 
						|
 | 
						|
  installPhase = ''
 | 
						|
    pwd
 | 
						|
    ls -l rpm
 | 
						|
    rpmextract rpm/intel-icc-*.rpm
 | 
						|
    rpmextract rpm/intel-comp-*.rpm
 | 
						|
    rpmextract rpm/intel-c-comp-*.rpm
 | 
						|
    rpmextract rpm/intel-openmp*.rpm
 | 
						|
    rpmextract rpm/intel-ifort*.rpm
 | 
						|
 | 
						|
    mkdir -p $out/{bin,lib,include}
 | 
						|
 | 
						|
    pushd ./opt/intel/${composer_xe_dir}/linux/
 | 
						|
      cp -a bin/intel64/* $out/bin/
 | 
						|
      cp -a compiler/include/* $out/include/
 | 
						|
      cp -a compiler/lib/intel64_lin/* $out/lib/
 | 
						|
      ln -s lib $out/lib_lin
 | 
						|
      rm $out/lib/*.dbg
 | 
						|
    popd
 | 
						|
  '';
 | 
						|
}
 |