summary refs log tree commit diff
path: root/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2021-05-06 15:56:46 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2021-05-11 16:07:01 -0400
commit7bba32a069ae9b96e8d78f4d0bb4561f1677fd20 (patch)
tree39c6c9112e69cd141565e11667b4c74000d8ba42 /pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
parent912c8262b42aba8eba0914d72a924ae32e06034e (diff)
downloadnixpkgs-7bba32a069ae9b96e8d78f4d0bb4561f1677fd20.tar
nixpkgs-7bba32a069ae9b96e8d78f4d0bb4561f1677fd20.tar.gz
nixpkgs-7bba32a069ae9b96e8d78f4d0bb4561f1677fd20.tar.bz2
nixpkgs-7bba32a069ae9b96e8d78f4d0bb4561f1677fd20.tar.lz
nixpkgs-7bba32a069ae9b96e8d78f4d0bb4561f1677fd20.tar.xz
nixpkgs-7bba32a069ae9b96e8d78f4d0bb4561f1677fd20.tar.zst
nixpkgs-7bba32a069ae9b96e8d78f4d0bb4561f1677fd20.zip
darwin packages: Get ready for cross
If things build fine with `stdenvNoCC`, let them use that. If tools
might be prefixed, prepare for that, either by directly splicing or just
using the env vars provided by the wrapper setup-hooks.

Co-authored-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
Diffstat (limited to 'pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix')
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix15
1 files changed, 12 insertions, 3 deletions
diff --git a/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix b/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
index 800da92dae9..ff98ed88804 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
@@ -1,4 +1,13 @@
-{ lib, stdenv, appleDerivation, bison, flex }:
+{ lib, appleDerivation, stdenv, bison, flex }:
+
+let
+
+  # Hard to get CC to pull this off without infinite recursion
+  targetTargetPrefix = lib.optionalString
+    (with stdenv; hostPlatform != targetPlatform)
+    (stdenv.targetPlatform.config + "-");
+
+in
 
 appleDerivation {
   nativeBuildInputs = [ bison flex ];
@@ -12,7 +21,7 @@ appleDerivation {
     yacc -d parser.y
     flex --header-file=lexxer.yy.h -o lexxer.yy.c lexxer.l
 
-    cc -std=gnu99 -Os -dead_strip -DMIG_VERSION=\"$pname-$version\" -I. -o migcom *.c
+    $CC -std=gnu99 -Os -dead_strip -DMIG_VERSION=\"$pname-$version\" -I. -o migcom *.c
   '';
 
   installPhase = ''
@@ -29,6 +38,6 @@ appleDerivation {
       --replace 'arch=`/usr/bin/arch`' 'arch=${stdenv.targetPlatform.darwinArch}' \
       --replace '/usr/bin/' "" \
       --replace '/bin/rmdir' "rmdir" \
-      --replace 'C=''${MIGCC}' "C=cc"
+      --replace 'C=''${MIGCC}' "C=${targetTargetPrefix}cc"
   '';
 }