2010-08-04 13:36:35 +01:00
|
|
|
{stdenv, fetchurl, m4, cxx ? true, static ? false}:
|
|
|
|
|
|
|
|
let
|
|
|
|
staticFlags = if static then " --enable-static --disable-shared" else "";
|
|
|
|
in
|
2006-12-13 22:29:40 +00:00
|
|
|
|
2009-06-22 20:55:47 +01:00
|
|
|
stdenv.mkDerivation rec {
|
2010-06-14 22:44:38 +01:00
|
|
|
name = "gmp-5.0.1";
|
2007-12-14 16:35:31 +00:00
|
|
|
|
2006-12-13 22:29:40 +00:00
|
|
|
src = fetchurl {
|
2009-06-22 20:55:47 +01:00
|
|
|
url = "mirror://gnu/gmp/${name}.tar.bz2";
|
2010-06-14 22:44:38 +01:00
|
|
|
sha256 = "1yrr14l6vvhm1g27y8nb3c75j0i4ii4k1gw7ik08safk3zq119m2";
|
2006-12-13 22:29:40 +00:00
|
|
|
};
|
2007-12-14 16:35:31 +00:00
|
|
|
|
2009-11-21 02:42:52 +00:00
|
|
|
buildNativeInputs = [m4];
|
2009-06-29 12:01:10 +01:00
|
|
|
|
2010-03-11 23:24:56 +00:00
|
|
|
# Prevent the build system from using sub-architecture-specific
|
|
|
|
# instructions (e.g., SSE2 on i686).
|
2009-06-29 12:01:10 +01:00
|
|
|
preConfigure = "ln -sf configfsf.guess config.guess";
|
|
|
|
|
2010-08-04 13:36:35 +01:00
|
|
|
configureFlags = if cxx then "--enable-cxx" else "--disable-cxx" +
|
|
|
|
staticFlags;
|
|
|
|
|
|
|
|
dontDisableStatic = if static then true else false;
|
2009-06-29 12:01:10 +01:00
|
|
|
|
2006-12-13 22:29:40 +00:00
|
|
|
doCheck = true;
|
2007-12-14 16:35:31 +00:00
|
|
|
|
2010-06-23 15:35:18 +01:00
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
2007-12-14 16:35:31 +00:00
|
|
|
meta = {
|
2010-03-11 23:24:56 +00:00
|
|
|
description = "GMP, the GNU multiple precision arithmetic library";
|
|
|
|
|
|
|
|
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.
|
|
|
|
'';
|
|
|
|
|
2007-12-14 16:35:31 +00:00
|
|
|
homepage = http://gmplib.org/;
|
2010-03-11 23:24:56 +00:00
|
|
|
license = "LGPLv3+";
|
|
|
|
|
|
|
|
maintainers = [ stdenv.lib.maintainers.ludo ];
|
2010-02-12 14:14:45 +00:00
|
|
|
platforms = stdenv.lib.platforms.all;
|
2007-12-14 16:35:31 +00:00
|
|
|
};
|
2006-12-13 22:29:40 +00:00
|
|
|
}
|