summary refs log tree commit diff
path: root/pkgs/development/libraries/fftw
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-06-24 16:43:42 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-06-24 16:43:42 +0000
commitb9e7a56c77a331898a603f69f15175c75df31ded (patch)
treeb3656de801b4295c1f156656e8d9f858a689107b /pkgs/development/libraries/fftw
parentba1f6982fdce82ae71cec5cea10bbf01b54030c5 (diff)
downloadnixpkgs-b9e7a56c77a331898a603f69f15175c75df31ded.tar
nixpkgs-b9e7a56c77a331898a603f69f15175c75df31ded.tar.gz
nixpkgs-b9e7a56c77a331898a603f69f15175c75df31ded.tar.bz2
nixpkgs-b9e7a56c77a331898a603f69f15175c75df31ded.tar.lz
nixpkgs-b9e7a56c77a331898a603f69f15175c75df31ded.tar.xz
nixpkgs-b9e7a56c77a331898a603f69f15175c75df31ded.tar.zst
nixpkgs-b9e7a56c77a331898a603f69f15175c75df31ded.zip
Adding some features in fftw, that I think they should work fine in linux at least.
(higher speed, multithread).
I also fixed the namings about single/double floats.

svn path=/nixpkgs/trunk/; revision=22402
Diffstat (limited to 'pkgs/development/libraries/fftw')
-rw-r--r--pkgs/development/libraries/fftw/default.nix50
1 files changed, 29 insertions, 21 deletions
diff --git a/pkgs/development/libraries/fftw/default.nix b/pkgs/development/libraries/fftw/default.nix
index 9e362076d26..845ec772010 100644
--- a/pkgs/development/libraries/fftw/default.nix
+++ b/pkgs/development/libraries/fftw/default.nix
@@ -1,23 +1,31 @@
-args : with args;
-	let localDefs = builderDefs.passthru.function { 
-		src = 
-			fetchurl {
-				url = ftp://ftp.fftw.org/pub/fftw/fftw-3.2.1.tar.gz;
-				sha256 = "1x8jww3vflrgzjrpnnsk0020bkd9aqmfga8y31v10cqd02l46sh7";
-			};
-		buildInputs = [];
-		configureFlags = ["--enable-shared"] 
-                     ++ (if args.singlePrecision then [ /*"--enable-single" */] else ["--enable-float"]);
-                          # some distros seem to be shipping both versions within the same package?
-                          # why does --enable-single still result in ..3f.so instead of ..3.so?
-	};
-	in with localDefs;
+{fetchurl, stdenv, builderDefs, stringsWithDeps, singlePrecision ? false}:
+let localDefs = builderDefs.passthru.function { 
+  src = 
+    fetchurl {
+      url = ftp://ftp.fftw.org/pub/fftw/fftw-3.2.2.tar.gz;
+      sha256 = "13vnglardq413q2518zi4a8pam3znydrz28m9w09kss9xrjsx9va";
+    };
+  buildInputs = [];
+  configureFlags = ["--enable-shared" "--enable-openmp"]
+                        # some distros seem to be shipping both versions within the same package?
+                        # why does --enable-float still result in ..3f.so instead of ..3.so?
+                   ++ (if singlePrecision then [ "--enable-single" ] else [ ])
+                        # I think all i686 has sse
+                   ++ (if (stdenv.isi686 || stdenv.isx86_64) && singlePrecision then [ "--enable-sse" ] else [ ])
+                        # I think all x86_64 has sse2
+                   ++ (if stdenv.isx86_64 && ! singlePrecision then [ "--enable-sse2" ] else [ ]);
+                
+  };
+in with localDefs;
 stdenv.mkDerivation {
-	name = "fftw-3.2.1" + ( if args.singlePrecision then "-single" else "-float" );
-	builder = writeScript "fftw-3.2.1-builder"
-		(textClosure localDefs [doConfigure doMakeInstall doForceShare]);
-	meta = {
-		description = "Fastest Fourier Transform in the West library";
-		inherit src;
-	};
+  name = "fftw-3.2.2" + ( if singlePrecision then "-single" else "-double" );
+  builder = writeScript "fftw-3.2.1-builder"
+    (textClosure localDefs [doConfigure doMakeInstall doForceShare]);
+  meta = {
+    description = "Fastest Fourier Transform in the West library";
+  };
+  passthru = {
+    # Allow instantiating "-A fftw.src"
+    inherit src;
+  };
 }