diff options
author | Mike Sperber <sperber@deinprogramm.de> | 2016-10-23 16:10:31 +0200 |
---|---|---|
committer | Mike Sperber <sperber@deinprogramm.de> | 2016-10-25 10:45:46 +0200 |
commit | 6f7504d45062fea895cb5eeee68c4e60df2da1e7 (patch) | |
tree | 43b7ee20b01162a703eea383e27835d6203d166f | |
parent | cbec6a304a96908b35502c9e126b08968fc77ab2 (diff) | |
download | nixlib-6f7504d45062fea895cb5eeee68c4e60df2da1e7.tar nixlib-6f7504d45062fea895cb5eeee68c4e60df2da1e7.tar.gz nixlib-6f7504d45062fea895cb5eeee68c4e60df2da1e7.tar.bz2 nixlib-6f7504d45062fea895cb5eeee68c4e60df2da1e7.tar.lz nixlib-6f7504d45062fea895cb5eeee68c4e60df2da1e7.tar.xz nixlib-6f7504d45062fea895cb5eeee68c4e60df2da1e7.tar.zst nixlib-6f7504d45062fea895cb5eeee68c4e60df2da1e7.zip |
clisp: Unbreak on Darwin
Clisp depended on libffcall, which does not compile on Darwin. The dependency is optional though, so omit it on Darwin. Also, make conditional transitive dependencies on libffcall.
-rw-r--r-- | pkgs/development/interpreters/clisp/default.nix | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/pkgs/development/interpreters/clisp/default.nix b/pkgs/development/interpreters/clisp/default.nix index c3d289d2a8d4..1a05f19bd82f 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; }; } |