From 6f7504d45062fea895cb5eeee68c4e60df2da1e7 Mon Sep 17 00:00:00 2001 From: Mike Sperber Date: Sun, 23 Oct 2016 16:10:31 +0200 Subject: [PATCH] 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. --- .../interpreters/clisp/default.nix | 24 +++++++++++-------- 1 file 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; }; }