nixpkgs-suyu/pkgs/stdenv/freebsd/default.nix
John Ericson 92edcb7ebb top-level: Lay the groundwork for {build,host,target}Platform
The long term goal is a big replace:
  { inherit system platform; } => buildPlatform
  crossSystem => hostPlatform
  stdenv.cross => targetPlatform
And additionally making sure each is defined even when not cross compiling.

This commit refactors the bootstrapping code along that vision, but leaves
the old identifiers with their null semantics in place so packages can be
modernized incrementally.
2017-01-24 11:37:56 -05:00

90 lines
1.8 KiB
Nix

{ lib
, localSystem, crossSystem, config, overlays
}:
assert crossSystem == null;
let inherit (localSystem) system; in
[
({}: {
__raw = true;
bootstrapTools = derivation {
inherit system;
name = "trivial-bootstrap-tools";
builder = "/usr/local/bin/bash";
args = [ ./trivial-bootstrap.sh ];
mkdir = "/bin/mkdir";
ln = "/bin/ln";
};
})
({ bootstrapTools, ... }: rec {
__raw = true;
inherit bootstrapTools;
fetchurl = import ../../build-support/fetchurl {
inherit stdenv;
curl = bootstrapTools;
};
stdenv = import ../generic {
name = "stdenv-freebsd-boot-1";
inherit system config;
initialPath = [ "/" "/usr" ];
shell = "${bootstrapTools}/bin/bash";
fetchurlBoot = null;
cc = null;
overrides = self: super: {
};
};
})
(prevStage: {
__raw = true;
stdenv = import ../generic {
name = "stdenv-freebsd-boot-0";
inherit system config;
initialPath = [ prevStage.bootstrapTools ];
inherit (prevStage.stdenv) shell;
fetchurlBoot = prevStage.fetchurl;
cc = null;
};
})
(prevStage: {
buildPlatform = localSystem;
hostPlatform = localSystem;
targetPlatform = localSystem;
inherit config overlays;
stdenv = import ../generic {
name = "stdenv-freebsd-boot-3";
inherit system config;
inherit (prevStage.stdenv)
initialPath shell fetchurlBoot;
cc = import ../../build-support/cc-wrapper {
nativeTools = true;
nativePrefix = "/usr";
nativeLibc = true;
inherit (prevStage) stdenv;
cc = {
name = "clang-9.9.9";
cc = "/usr";
outPath = "/usr";
};
isClang = true;
};
preHook = ''export NIX_NO_SELF_RPATH=1'';
};
})
]