{ 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 , nixName ? "default" , jsonName ? nixName , depset ? {} } : let jsonPath = toPath "/${path}/${jsonName}.json"; in pkgs.lib.callPackageWith pkgs (toPath "/${path}/${nixName}.nix") (depset // {src = gitpin jsonPath;}); pythonPackages = pkgs.python27Packages; in rec { #NRM components nodelevel = { libnrm = callPackagePin {path="libnrm";}; containers = callPackagePin { path = "./containers"; depset= { inherit pythonPackages; }; }; containers-bandit = callPackagePin { path = "./containers"; depset= { inherit pythonPackages; }; jsonName = "bandit"; }; nrm = callPackagePin { path= "./nrm"; depset = { inherit pythonPackages nrm-containers; }; }; nrm-bandit = callPackagePin { path= "./nrm"; depset = { inherit pythonPackages nrm-containers; nrm-containers = nrm-containers-bandit; }; jsonName = "bandit"; }; } #Instrumented applications applications = rec { lammps = pkgs.lammps-mpi; stream = callPackage {path="applications/stream";}; openmc = callPackage {path="applications/openmc";}; qmcpack = callPackage {path="applications/qmcpack";}; amg = callPackage {path="applications/amg";}; graph500 = callPackagePin {path="applications/simple"; nixName = "graph500";}; simple = callPackagePin {path="applications/simple"; nixName = "dgemm_randomwalk"; depset={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; }); }; }