{ hostNixpkgs ? , pkgs ? import ../pin.nix { hostPkgs = import hostNixpkgs {}; jsonpath =../nixpkgs-18.03.json; }, datamovepkgs ? import ../pin.nix { hostPkgs = import hostNixpkgs {}; jsonpath=../datamove.json; }, packagepins ? import ./pins.nix {inherit (pkgs) stdenv fetchgit fetchgitPrivate;} }: let toPath = s: ./. + s; gitpin = f: pkgs.fetchgit {inherit (pkgs.lib.importJSON f) url sha256 rev fetchSubmodules;}; compiler_path = "/opt/intel/compilers_and_libraries_2017.1.132/linux"; callPackage = pkgs.lib.callPackageWith pkgs; callPackagePin = path : depset: pkgs.lib.callPackageWith pkgs (toPath "/${path}.nix") (depset//{src = gitpin (toPath "/${path}.json");}); pythonPackages = pkgs.python27Packages; in rec { #NRM components libnrm = callPackage ./libnrm {}; nrm-containers = callPackage ./containers { inherit pythonPackages; src = packagepins.containers.nix; }; nrm = callPackage ./nrm { inherit pythonPackages nrm-containers; src = packagepins.nrm.bandit; }; #Instrumented applications applications = rec { lammps = pkgs.lammps-mpi; amg = callPackage applications/amg {}; qmcpack = callPackage applications/qmcpack {}; openmc = callPackage applications/openmc {}; stream = callPackage applications/stream {}; graph500 = callPackagePin "applications/simple/graph500" {}; simple = callPackagePin "applications/simple/dgemm_randomwalk" {inherit intel libnrm;}; }; #Intel compilers intel = with pkgs; rec { icc = callPackage intel/icc { inherit compiler_path; }; mkl = callPackage intel/mkl { inherit compiler_path; }; WrappedICC = (import ../patches/cc-wrapper { inherit stdenv binutils coreutils ; libc = glibc; nativeTools = false; nativeLibc = false; cc = icc; }); }; }