about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/compilers/chicken/5/chicken.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/chicken/5/chicken.nix')
-rw-r--r--nixpkgs/pkgs/development/compilers/chicken/5/chicken.nix19
1 files changed, 13 insertions, 6 deletions
diff --git a/nixpkgs/pkgs/development/compilers/chicken/5/chicken.nix b/nixpkgs/pkgs/development/compilers/chicken/5/chicken.nix
index f07b63ea26f4..712012643f33 100644
--- a/nixpkgs/pkgs/development/compilers/chicken/5/chicken.nix
+++ b/nixpkgs/pkgs/development/compilers/chicken/5/chicken.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper, bootstrap-chicken ? null }:
+{ stdenv, fetchurl, makeWrapper, darwin, bootstrap-chicken ? null }:
 
 let
   version = "5.2.0";
@@ -21,14 +21,21 @@ stdenv.mkDerivation {
     sha256 = "1yl0hxm9cirgcp8jgxp6vv29lpswfvaw3zfkh6rsj0vkrv44k4c1";
   };
 
-  setupHook = lib.ifEnable (bootstrap-chicken != null) ./setup-hook.sh;
+  setupHook = lib.optional (bootstrap-chicken != null) ./setup-hook.sh;
 
-  buildFlags = [ "PLATFORM=${platform}" "PREFIX=$(out)" ];
-  installFlags = [ "PLATFORM=${platform}" "PREFIX=$(out)" ];
+  # -fno-strict-overflow is not a supported argument in clang on darwin
+  hardeningDisable = lib.optionals stdenv.isDarwin ["strictoverflow"];
+
+  makeFlags = [
+    "PLATFORM=${platform}" "PREFIX=$(out)"
+  ] ++ (lib.optionals stdenv.isDarwin [
+    "XCODE_TOOL_PATH=${darwin.binutils.bintools}/bin"
+    "C_COMPILER=$(CC)"
+  ]);
 
   buildInputs = [
     makeWrapper
-  ] ++ (lib.ifEnable (bootstrap-chicken != null) [
+  ] ++ (lib.optionals (bootstrap-chicken != null) [
     bootstrap-chicken
   ]);
 
@@ -46,7 +53,7 @@ stdenv.mkDerivation {
     homepage = "http://www.call-cc.org/";
     license = stdenv.lib.licenses.bsd3;
     maintainers = with stdenv.lib.maintainers; [ corngood ];
-    platforms = stdenv.lib.platforms.linux; # Maybe other non-darwin Unix
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; # Maybe other Unix
     description = "A portable compiler for the Scheme programming language";
     longDescription = ''
       CHICKEN is a compiler for the Scheme programming language.