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.
This commit is contained in:
Anthony Cowley
2016-03-13 04:18:16 -04:00
parent 2d01e94f2e
commit 889d6d11a3
3 changed files with 22 additions and 6 deletions
+10 -2
View File
@@ -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;