From 889d6d11a3d93b920ea9ed63844d45f44f9f43e5 Mon Sep 17 00:00:00 2001 From: Anthony Cowley Date: Sun, 13 Mar 2016 04:18:16 -0400 Subject: julia: darwin compatibility Along with PR #13879, these patches let julia build and run on darwin. Using an llvm with shared library support is an idea adopted from a @pikajude comment here https://github.com/NixOS/nixpkgs/issues/10864 The libgit2 change is mechanical to pull in iconv on darwin. The frameworks are referenced by julia's build system. --- pkgs/development/compilers/julia/default.nix | 12 ++++++++++-- pkgs/development/libraries/git2/default.nix | 9 ++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) (limited to 'pkgs/development') diff --git a/pkgs/development/compilers/julia/default.nix b/pkgs/development/compilers/julia/default.nix index 0eddde15a58e..0c0520533bcd 100644 --- a/pkgs/development/compilers/julia/default.nix +++ b/pkgs/development/compilers/julia/default.nix @@ -7,6 +7,8 @@ , curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2 # linear algebra , openblas, arpack, suitesparse +# Darwin frameworks +, CoreServices, ApplicationServices }: with stdenv.lib; @@ -19,6 +21,9 @@ in let arpack = arpack_.override { inherit openblas; }; suitesparse = suitesparse_.override { inherit openblas; }; + llvmShared = if stdenv.isDarwin + then llvm.override { enableSharedLibraries = true; } + else llvm; in let @@ -68,10 +73,11 @@ stdenv.mkDerivation rec { ''; buildInputs = [ - arpack fftw fftwSinglePrec gmp libgit2 libunwind llvm mpfr + arpack fftw fftwSinglePrec gmp libgit2 libunwind llvmShared mpfr pcre2 openblas openlibm openspecfun readline suitesparse utf8proc zlib - ]; + ] ++ + stdenv.lib.optionals stdenv.isDarwin [CoreServices ApplicationServices] ; nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python2 which ]; @@ -127,6 +133,8 @@ stdenv.mkDerivation rec { openspecfun pcre2 suitesparse ]; + NIX_LDFLAGS = optionalString stdenv.isDarwin "-rpath ${llvmShared}/lib"; + dontStrip = true; dontPatchELF = true; diff --git a/pkgs/development/libraries/git2/default.nix b/pkgs/development/libraries/git2/default.nix index 3c433511fc1a..fb380d60cf92 100644 --- a/pkgs/development/libraries/git2/default.nix +++ b/pkgs/development/libraries/git2/default.nix @@ -1,6 +1,6 @@ -{stdenv, fetchurl, pkgconfig, cmake, zlib, python, libssh2, openssl, http-parser}: +{stdenv, fetchurl, pkgconfig, cmake, zlib, python, libssh2, openssl, http-parser, libiconv}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (rec { version = "0.23.2"; name = "libgit2-${version}"; @@ -21,4 +21,7 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.gpl2; platforms = with stdenv.lib.platforms; all; }; -} +} // stdenv.lib.optionalAttrs (!stdenv.isLinux) { + NIX_LDFLAGS = "-liconv"; + propagatedBuildInputs = [ libiconv ]; +}) -- cgit 1.4.1