summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-10-26 21:00:52 +0200
committerVladimír Čunát <vcunat@gmail.com>2016-10-26 21:01:12 +0200
commit1cd7466650692b94c11bc9d77541d65b56cbcb3a (patch)
tree6eb6fd9dba3b531330b999d01f313ceec28b274c /pkgs/development
parentca2b03439f31dca0beee0d9b492dd18db78315cd (diff)
parent0fba729ded5bfaad36195d610e1adcabaaba8182 (diff)
downloadnixpkgs-1cd7466650692b94c11bc9d77541d65b56cbcb3a.tar
nixpkgs-1cd7466650692b94c11bc9d77541d65b56cbcb3a.tar.gz
nixpkgs-1cd7466650692b94c11bc9d77541d65b56cbcb3a.tar.bz2
nixpkgs-1cd7466650692b94c11bc9d77541d65b56cbcb3a.tar.lz
nixpkgs-1cd7466650692b94c11bc9d77541d65b56cbcb3a.tar.xz
nixpkgs-1cd7466650692b94c11bc9d77541d65b56cbcb3a.tar.zst
nixpkgs-1cd7466650692b94c11bc9d77541d65b56cbcb3a.zip
Merge #19800: fix clisp + xindy -> texlive on Darwin
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/interpreters/clisp/default.nix24
1 files changed, 14 insertions, 10 deletions
diff --git a/pkgs/development/interpreters/clisp/default.nix b/pkgs/development/interpreters/clisp/default.nix
index c3d289d2a8d..1a05f19bd82 100644
--- a/pkgs/development/interpreters/clisp/default.nix
+++ b/pkgs/development/interpreters/clisp/default.nix
@@ -5,18 +5,18 @@
 # - full: contains base plus modules in withModules
 { stdenv, fetchurl, libsigsegv, gettext, ncurses, readline, libX11
 , libXau, libXt, pcre, zlib, libXpm, xproto, libXext, xextproto
-, libffi, libffcall, coreutils
+, libffi
+, libffcall
+, coreutils
 # build options
 , threadSupport ? (stdenv.isi686 || stdenv.isx86_64)
 , x11Support ? (stdenv.isi686 || stdenv.isx86_64)
 , dllSupport ? true
 , withModules ? [
-    "bindings/glibc"
     "pcre"
     "rawsock"
-    "wildcard"
-    "zlib"
   ]
+  ++ stdenv.lib.optionals stdenv.isLinux [ "bindings/glibc" "zlib" "wildcard" ]
   ++ stdenv.lib.optional x11Support "clx/new-clx"
 }:
 
@@ -33,15 +33,17 @@ stdenv.mkDerivation rec {
   };
 
   inherit libsigsegv gettext coreutils;
-  
+
+  ffcallAvailable = stdenv.isLinux && (libffcall != null);
+
   buildInputs = [libsigsegv]
   ++ stdenv.lib.optional (gettext != null) gettext
   ++ stdenv.lib.optional (ncurses != null) ncurses
   ++ stdenv.lib.optional (pcre != null) pcre
   ++ stdenv.lib.optional (zlib != null) zlib
   ++ stdenv.lib.optional (readline != null) readline
-  ++ stdenv.lib.optional (libffi != null) libffi
-  ++ stdenv.lib.optional (libffcall != null) libffcall
+  ++ stdenv.lib.optional (ffcallAvailable && (libffi != null)) libffi
+  ++ stdenv.lib.optional ffcallAvailable libffcall
   ++ stdenv.lib.optionals x11Support [
     libX11 libXau libXt libXpm xproto libXext xextproto
   ];
@@ -64,8 +66,10 @@ stdenv.mkDerivation rec {
   configureFlags = "builddir"
   + stdenv.lib.optionalString (!dllSupport) " --without-dynamic-modules"
   + stdenv.lib.optionalString (readline != null) " --with-readline"
-  + stdenv.lib.optionalString (libffi != null) " --with-dynamic-ffi"
-  + stdenv.lib.optionalString (libffcall != null) " --with-ffcall"
+  # --with-dynamic-ffi can only exist with --with-ffcall - foreign.d does not compile otherwise
+  + stdenv.lib.optionalString (ffcallAvailable && (libffi != null)) " --with-dynamic-ffi"
+  + stdenv.lib.optionalString ffcallAvailable " --with-ffcall"
+  + stdenv.lib.optionalString (!ffcallAvailable) " --without-ffcall"
   + stdenv.lib.concatMapStrings (x: " --with-module=" + x) withModules
   + stdenv.lib.optionalString threadSupport " --with-threads=POSIX_THREADS";
 
@@ -88,6 +92,6 @@ stdenv.mkDerivation rec {
     description = "ANSI Common Lisp Implementation";
     homepage = http://clisp.cons.org;
     maintainers = with stdenv.lib.maintainers; [raskin tohl];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }