8b9b9fad31
Revert a revert of a merge that shouldn't have been in master but was intentionally in staging.
Next time I'll do this right after the revert instead of so far down the line...
This reverts commit 9adad8612b
.
42 lines
1.2 KiB
Nix
42 lines
1.2 KiB
Nix
{ fetchurl, stdenv, lib, precision ? "double" }:
|
|
|
|
with lib;
|
|
|
|
assert elem precision [ "single" "double" "long-double" "quad-precision" ];
|
|
|
|
let version = "3.3.5"; in
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "fftw-${precision}-${version}";
|
|
|
|
src = fetchurl {
|
|
url = "ftp://ftp.fftw.org/pub/fftw/fftw-${version}.tar.gz";
|
|
sha256 = "1kwbx92ps0r7s2mqy7lxbxanslxdzj7dp7r7gmdkzv1j8yqf3kwf";
|
|
};
|
|
|
|
outputs = [ "dev" "out" "doc" ]; # it's dev-doc only
|
|
outputBin = "dev"; # fftw-wisdom
|
|
|
|
configureFlags =
|
|
[ "--enable-shared" "--disable-static"
|
|
"--enable-threads"
|
|
]
|
|
++ optional (precision != "double") "--enable-${precision}"
|
|
# all x86_64 have sse2
|
|
# however, not all float sizes fit
|
|
++ optional (stdenv.isx86_64 && (precision == "single" || precision == "double") ) "--enable-sse2"
|
|
++ optional stdenv.cc.isGNU "--enable-openmp"
|
|
# doc generation causes Fortran wrapper generation which hard-codes gcc
|
|
++ optional (!stdenv.cc.isGNU) "--disable-doc";
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Fastest Fourier Transform in the West library";
|
|
homepage = http://www.fftw.org/;
|
|
license = licenses.gpl2Plus;
|
|
maintainers = [ maintainers.spwhitt ];
|
|
platforms = platforms.unix;
|
|
};
|
|
}
|