linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / libraries / flint / default.nix
blob2c540d130087f4256a301b7679f458c1a783bcfa
1 { lib, stdenv
2 , fetchurl
3 , gmp
4 , mpir
5 , mpfr
6 , ntl
7 , openblas ? null, blas, lapack
8 , withBlas ? true
9 }:
11 assert withBlas -> openblas != null && blas.implementation == "openblas" && lapack.implementation == "openblas";
13 stdenv.mkDerivation rec {
14   pname = "flint";
15   version = "2.7.1";
16   src = fetchurl {
17     url = "http://www.flintlib.org/flint-${version}.tar.gz";
18     sha256 = "07j8r96kdzp19cy3a5yvpjxf90mkd6103yr2n42qmpv7mgcjyvhq";
19   };
20   buildInputs = [
21     gmp
22     mpir
23     mpfr
24     ntl
25   ] ++ lib.optionals withBlas [
26     openblas
27   ];
28   propagatedBuildInputs = [
29     mpfr # flint.h includes mpfr.h
30   ];
31   configureFlags = [
32     "--with-gmp=${gmp}"
33     "--with-mpir=${mpir}"
34     "--with-mpfr=${mpfr}"
35     "--with-ntl=${ntl}"
36   ] ++ lib.optionals withBlas [
37     "--with-blas=${openblas}"
38   ];
40   # issues with ntl -- https://github.com/wbhart/flint2/issues/487
41   NIX_CXXSTDLIB_COMPILE = "-std=c++11";
43   doCheck = true;
44   meta = {
45     inherit version;
46     description = "Fast Library for Number Theory";
47     license = lib.licenses.gpl2Plus;
48     maintainers = [lib.maintainers.raskin];
49     platforms = lib.platforms.unix;
50     homepage = "http://www.flintlib.org/";
51     downloadPage = "http://www.flintlib.org/downloads.html";
52     updateWalker = true;
53   };