From b9e7a56c77a331898a603f69f15175c75df31ded Mon Sep 17 00:00:00 2001 From: LluĂ­s Batlle i Rossell Date: Thu, 24 Jun 2010 16:43:42 +0000 Subject: 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 --- pkgs/development/libraries/fftw/default.nix | 50 +++++++++++++++++------------ 1 file changed, 29 insertions(+), 21 deletions(-) (limited to 'pkgs/development/libraries/fftw') 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; + }; } -- cgit 1.4.1