From aff27c669eb86476dbc0e18b6a7909c32cad9fad Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 25 Mar 2013 11:39:50 +0100 Subject: [PATCH] haskell-cuda: add version 0.5.0.1 --- .../haskell/cuda/{default.nix => 0.4.1.1.nix} | 0 .../libraries/haskell/cuda/0.5.0.1.nix | 42 +++++++++++++++++++ pkgs/top-level/haskell-packages.nix | 6 ++- 3 files changed, 47 insertions(+), 1 deletion(-) rename pkgs/development/libraries/haskell/cuda/{default.nix => 0.4.1.1.nix} (100%) create mode 100644 pkgs/development/libraries/haskell/cuda/0.5.0.1.nix diff --git a/pkgs/development/libraries/haskell/cuda/default.nix b/pkgs/development/libraries/haskell/cuda/0.4.1.1.nix similarity index 100% rename from pkgs/development/libraries/haskell/cuda/default.nix rename to pkgs/development/libraries/haskell/cuda/0.4.1.1.nix diff --git a/pkgs/development/libraries/haskell/cuda/0.5.0.1.nix b/pkgs/development/libraries/haskell/cuda/0.5.0.1.nix new file mode 100644 index 00000000000..0d9a594ff5c --- /dev/null +++ b/pkgs/development/libraries/haskell/cuda/0.5.0.1.nix @@ -0,0 +1,42 @@ +{ cabal, c2hs, cudatoolkit, nvidia_x11 }: + +cabal.mkDerivation (self: { + pname = "cuda"; + version = "0.5.0.1"; + sha256 = "0gxkf97c4cm9d7kk0izgz3m44ycys1lcl4bq828c6l1wim1xz28b"; + buildTools = [ c2hs ]; + extraLibraries = [ cudatoolkit nvidia_x11 self.stdenv.gcc ]; + doCheck = false; + # Perhaps this should be the default in cabal.nix ... + # + # The cudatoolkit provides both 64 and 32-bit versions of the + # library. GHC's linker fails if the wrong version is found first. + # We solve this by eliminating lib64 from the path on 32-bit + # platforms and putting lib64 first on 64-bit platforms. + libPaths = if self.stdenv.is64bit then "lib64 lib" else "lib"; + configurePhase = '' + for i in Setup.hs Setup.lhs; do + test -f $i && ghc --make $i + done + for p in $extraBuildInputs $propagatedNativeBuildInputs; do + if [ -d "$p/include" ]; then + extraLibDirs="$extraLibDirs --extra-include-dir=$p/include" + fi + for d in $libPaths; do + if [ -d "$p/$d" ]; then + extraLibDirs="$extraLibDirs --extra-lib-dir=$p/$d" + fi + done + done + ./Setup configure --verbose --prefix="$out" $libraryProfiling $extraLibDirs $configureFlags + ''; + meta = { + description = "FFI binding to the CUDA interface for programming NVIDIA GPUs"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.stdenv.lib.platforms.none; + maintainers = [ + self.stdenv.lib.maintainers.andres + self.stdenv.lib.maintainers.simons + ]; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 33e5bd430d7..0e796f4bf4c 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -675,9 +675,13 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y); cryptoRandomApi = callPackage ../development/libraries/haskell/crypto-random-api {}; - cuda = callPackage ../development/libraries/haskell/cuda { + cuda_0_4_1_1 = callPackage ../development/libraries/haskell/cuda/0.4.1.1.nix { inherit (pkgs.linuxPackages) nvidia_x11; }; + cuda_0_5_0_1 = callPackage ../development/libraries/haskell/cuda/0.5.0.1.nix { + inherit (pkgs.linuxPackages) nvidia_x11; + }; + cuda = self.cuda_0_4_1_1; csv = callPackage ../development/libraries/haskell/csv {};