2011-12-14 15:31:56 +01:00
|
|
|
{ stdenv, fetchurl, m4, cxx ? true }:
|
2006-12-13 23:29:40 +01:00
|
|
|
|
2009-06-22 21:55:47 +02:00
|
|
|
stdenv.mkDerivation rec {
|
2013-06-29 16:19:56 +02:00
|
|
|
name = "gmp-5.1.2";
|
2007-12-14 17:35:31 +01:00
|
|
|
|
2013-03-18 18:20:54 +01:00
|
|
|
src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv
|
|
|
|
urls = [ "mirror://gnu/gmp/${name}.tar.bz2" "ftp://ftp.gmplib.org/pub/${name}/${name}.tar.bz2" ];
|
2013-06-29 16:19:56 +02:00
|
|
|
sha256 = "13qv3ihk3ykbh2fkb4z8m0q188y3hq1amsj25fn5hgpgckmdx690";
|
2006-12-13 23:29:40 +01:00
|
|
|
};
|
2007-12-14 17:35:31 +01:00
|
|
|
|
2012-12-28 19:20:09 +01:00
|
|
|
nativeBuildInputs = [ m4 ];
|
2009-06-29 13:01:10 +02:00
|
|
|
|
2011-05-04 00:38:52 +02:00
|
|
|
configureFlags =
|
2012-07-07 00:59:40 +02:00
|
|
|
# Build a "fat binary", with routines for several sub-architectures
|
|
|
|
# (x86), except on Solaris where some tests crash with "Memory fault".
|
|
|
|
# See <http://hydra.nixos.org/build/2760931>, for instance.
|
|
|
|
(stdenv.lib.optional (!stdenv.isSunOS) "--enable-fat")
|
2013-02-26 10:23:16 +01:00
|
|
|
++ (if cxx then [ "--enable-cxx" ] else [ "--disable-cxx" ])
|
|
|
|
++ (if stdenv.is64bit then [ "--with-pic" ] else []);
|
2009-06-29 13:01:10 +02:00
|
|
|
|
2006-12-13 23:29:40 +01:00
|
|
|
doCheck = true;
|
2007-12-14 17:35:31 +01:00
|
|
|
|
2010-06-23 16:35:18 +02:00
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
2007-12-14 17:35:31 +01:00
|
|
|
meta = {
|
2013-02-18 12:01:49 +01:00
|
|
|
homepage = "http://gmplib.org/";
|
2010-03-12 00:24:56 +01:00
|
|
|
description = "GMP, the GNU multiple precision arithmetic library";
|
2013-02-18 12:01:49 +01:00
|
|
|
license = stdenv.lib.licenses.gpl3Plus;
|
2010-03-12 00:24:56 +01:00
|
|
|
|
|
|
|
longDescription =
|
|
|
|
'' GMP is a free library for arbitrary precision arithmetic, operating
|
|
|
|
on signed integers, rational numbers, and floating point numbers.
|
|
|
|
There is no practical limit to the precision except the ones implied
|
|
|
|
by the available memory in the machine GMP runs on. GMP has a rich
|
|
|
|
set of functions, and the functions have a regular interface.
|
|
|
|
|
|
|
|
The main target applications for GMP are cryptography applications
|
|
|
|
and research, Internet security applications, algebra systems,
|
|
|
|
computational algebra research, etc.
|
|
|
|
|
|
|
|
GMP is carefully designed to be as fast as possible, both for small
|
|
|
|
operands and for huge operands. The speed is achieved by using
|
|
|
|
fullwords as the basic arithmetic type, by using fast algorithms,
|
|
|
|
with highly optimised assembly code for the most common inner loops
|
|
|
|
for a lot of CPUs, and by a general emphasis on speed.
|
|
|
|
|
|
|
|
GMP is faster than any other bignum library. The advantage for GMP
|
|
|
|
increases with the operand sizes for many operations, since GMP uses
|
|
|
|
asymptotically faster algorithms.
|
|
|
|
'';
|
|
|
|
|
2010-02-12 15:14:45 +01:00
|
|
|
platforms = stdenv.lib.platforms.all;
|
2013-08-16 23:44:33 +02:00
|
|
|
maintainers = [ stdenv.lib.maintainers.simons ];
|
2007-12-14 17:35:31 +01:00
|
|
|
};
|
2006-12-13 23:29:40 +01:00
|
|
|
}
|