summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorJoel Taylor <me@joelt.io>2014-08-17 13:17:13 -0700
committerJoel Taylor <me@joelt.io>2014-09-09 13:54:24 -0700
commit3e8344d334d42824ac3061a919ac15b19a1bf21d (patch)
tree5ecad4218357caec8ddc27d5df150a5734db0281 /pkgs/build-support
parente3fd4499ef296f4769cf4e9e91f1ccfd16325b0f (diff)
downloadnixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar
nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar.gz
nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar.bz2
nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar.lz
nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar.xz
nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.tar.zst
nixlib-3e8344d334d42824ac3061a919ac15b19a1bf21d.zip
suitable clang stdenv
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/cabal/default.nix5
-rw-r--r--pkgs/build-support/clang-wrapper/builder.sh40
-rw-r--r--pkgs/build-support/clang-wrapper/default.nix2
3 files changed, 35 insertions, 12 deletions
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix
index d73b4a1f364c..bf91de0bd505 100644
--- a/pkgs/build-support/cabal/default.nix
+++ b/pkgs/build-support/cabal/default.nix
@@ -214,6 +214,10 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
                 configureFlags+=" --ghc-option=-j$NIX_BUILD_CORES"
               ''}
 
+              ${optionalString self.stdenv.isDarwin ''
+                configureFlags+=" --with-gcc=clang"
+              ''}
+
               echo "configure flags: $extraConfigureFlags $configureFlags"
               ./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \
                 --libsubdir='$pkgid' $extraConfigureFlags $configureFlags 2>&1 \
@@ -236,6 +240,7 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
 
               export GHC_PACKAGE_PATH=$(${ghc.GHCPackages})
               test -n "$noHaddock" || ./Setup haddock --html --hoogle \
+                  --ghc-options=-optP-P \
                   ${optionalString self.hyperlinkSource "--hyperlink-source"}
 
               eval "$postBuild"
diff --git a/pkgs/build-support/clang-wrapper/builder.sh b/pkgs/build-support/clang-wrapper/builder.sh
index 0cdb2b96135e..2dec6c59933b 100644
--- a/pkgs/build-support/clang-wrapper/builder.sh
+++ b/pkgs/build-support/clang-wrapper/builder.sh
@@ -28,20 +28,32 @@ if test -z "$nativeLibc"; then
 fi
 
 if test -n "$nativeTools"; then
-    clangPath="$nativePrefix/bin"
+    if [ -n "$isDarwin" ]; then
+      clangPath="$clang/bin"
+    else
+      clangPath="$nativePrefix/bin"
+    fi
     ldPath="$nativePrefix/bin"
 else
-    basePath=`echo $gcc/lib/*/*/*`
-    # Need libgcc until the llvm compiler-rt library is complete
-    clangLDFlags="$clangLDFlags -L$basePath"
-    if test -e "$gcc/lib64"; then
-        clangLDFlags="$clangLDFlags -L$gcc/lib64"
-    else
-        clangLDFlags="$clangLDFlags -L$gcc/lib"
+    clangLDFlags=""
+    if test -d "$gcc/lib"; then
+      basePath=`echo $gcc/lib/*/*/*`
+      # Need libgcc until the llvm compiler-rt library is complete
+      clangLDFlags="$clangLDFlags -L$basePath"
+      if test -e "$gcc/lib64"; then
+          clangLDFlags="$clangLDFlags -L$gcc/lib64"
+      else
+          clangLDFlags="$clangLDFlags -L$gcc/lib"
+      fi
     fi
 
-    clangLDFlags="$clangLDFlags -L$clang/lib"
-    echo "$clangLDFlags" > $out/nix-support/clang-ldflags
+    if test -d "$clang/lib"; then
+      clangLDFlags="$clangLDFlags -L$clang/lib"
+    fi
+
+    if [ -n "$clangLDFlags" ]; then
+      echo "$clangLDFlags" > $out/nix-support/clang-ldflags
+    fi
 
     # Need files like crtbegin.o from gcc
     # It's unclear if these will ever be provided by an LLVM project
@@ -49,9 +61,9 @@ else
 
     clangCFlags="$clangCFlags -isystem$clang/lib/clang/$clangVersion/include"
     echo "$clangCFlags" > $out/nix-support/clang-cflags
-    
-    clangPath="$clang/bin"
+
     ldPath="$binutils/bin"
+    clangPath="$clang/bin"
 fi
 
 
@@ -125,6 +137,10 @@ test -n "$libc" && echo $libc > $out/nix-support/orig-libc
 doSubstitute "$addFlags" "$out/nix-support/add-flags.sh"
 
 doSubstitute "$setupHook" "$out/nix-support/setup-hook"
+cat >> "$out/nix-support/setup-hook" << EOF
+export CC=clang
+export CXX=clang++
+EOF
 
 cp -p $utils $out/nix-support/utils.sh
 
diff --git a/pkgs/build-support/clang-wrapper/default.nix b/pkgs/build-support/clang-wrapper/default.nix
index 7a5d87127d90..e61c07ca9d23 100644
--- a/pkgs/build-support/clang-wrapper/default.nix
+++ b/pkgs/build-support/clang-wrapper/default.nix
@@ -26,6 +26,8 @@ stdenv.mkDerivation {
     (if name != "" then name else clangName + "-wrapper") +
     (if clang != null && clangVersion != "" then "-" + clangVersion else "");
 
+  isDarwin = stdenv.isDarwin;
+
   builder = ./builder.sh;
   setupHook = ./setup-hook.sh;
   clangWrapper = ./clang-wrapper.sh;