aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/compilers/chicken/4/chicken.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/compilers/chicken/4/chicken.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/compilers/chicken/4/chicken.nix26
1 files changed, 17 insertions, 9 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/compilers/chicken/4/chicken.nix b/infra/libkookie/nixpkgs/pkgs/development/compilers/chicken/4/chicken.nix
index 11f4eaada604..50126fdac92c 100644
--- a/infra/libkookie/nixpkgs/pkgs/development/compilers/chicken/4/chicken.nix
+++ b/infra/libkookie/nixpkgs/pkgs/development/compilers/chicken/4/chicken.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper, bootstrap-chicken ? null }:
+{ stdenv, fetchurl, makeWrapper, darwin, bootstrap-chicken ? null }:
let
version = "4.13.0";
@@ -21,31 +21,39 @@ stdenv.mkDerivation {
sha256 = "0hvckhi5gfny3mlva6d7y9pmx7cbwvq0r7mk11k3sdiik9hlkmdd";
};
- setupHook = lib.ifEnable (bootstrap-chicken != null) ./setup-hook.sh;
+ setupHook = lib.optional (bootstrap-chicken != null) ./setup-hook.sh;
- buildFlags = [ "PLATFORM=${platform}" "PREFIX=$(out)" "VARDIR=$(out)/var/lib" ];
- installFlags = [ "PLATFORM=${platform}" "PREFIX=$(out)" "VARDIR=$(out)/var/lib" ];
+ # -fno-strict-overflow is not a supported argument in clang on darwin
+ hardeningDisable = lib.optionals stdenv.isDarwin ["strictoverflow"];
+
+ makeFlags = [
+ "PLATFORM=${platform}" "PREFIX=$(out)"
+ "VARDIR=$(out)/var/lib"
+ ] ++ (lib.optionals stdenv.isDarwin [
+ "XCODE_TOOL_PATH=${darwin.binutils.bintools}/bin"
+ "C_COMPILER=$(CC)"
+ ]);
# We need a bootstrap-chicken to regenerate the c-files after
# applying a patch to add support for CHICKEN_REPOSITORY_EXTRA
- patches = lib.ifEnable (bootstrap-chicken != null) [
+ patches = lib.optionals (bootstrap-chicken != null) [
./0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch
];
buildInputs = [
makeWrapper
- ] ++ (lib.ifEnable (bootstrap-chicken != null) [
+ ] ++ (lib.optionals (bootstrap-chicken != null) [
bootstrap-chicken
]);
- preBuild = lib.ifEnable (bootstrap-chicken != null) ''
+ preBuild = lib.optionalString (bootstrap-chicken != null) ''
# Backup the build* files - those are generated from hostname,
# git-tag, etc. and we don't need/want that
mkdir -p build-backup
mv buildid buildbranch buildtag.h build-backup
# Regenerate eval.c after the patch
- make spotless $buildFlags
+ make spotless $makeFlags
mv build-backup/* .
'';
@@ -64,7 +72,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.