c9baba9212
(My OCD kicked in today...) Remove repeated package names, capitalize first word, remove trailing periods and move overlong descriptions to longDescription. I also simplified some descriptions as well, when they were particularly long or technical, often based on Arch Linux' package descriptions. I've tried to stay away from generated expressions (and I think I succeeded). Some specifics worth mentioning: * cron, has "Vixie Cron" in its description. The "Vixie" part is not mentioned anywhere else. I kept it in a parenthesis at the end of the description. * ctags description started with "Exuberant Ctags ...", and the "exuberant" part is not mentioned elsewhere. Kept it in a parenthesis at the end of description. * nix has the description "The Nix Deployment System". Since that doesn't really say much what it is/does (especially after removing the package name!), I changed that to "Powerful package manager that makes package management reliable and reproducible" (borrowed from nixos.org). * Tons of "GNU Foo, Foo is a [the important bits]" descriptions is changed to just [the important bits]. If the package name doesn't contain GNU I don't think it's needed to say it in the description either.
64 lines
2.4 KiB
Nix
64 lines
2.4 KiB
Nix
{ stdenv, fetchurl, m4, cxx ? true, withStatic ? false }:
|
|
|
|
with { inherit (stdenv.lib) optional; };
|
|
|
|
stdenv.mkDerivation (rec {
|
|
name = "gmp-5.1.3";
|
|
|
|
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" ];
|
|
sha256 = "0q5i39pxrasgn9qdxzpfbwhh11ph80p57x6hf48m74261d97j83m";
|
|
};
|
|
|
|
nativeBuildInputs = [ m4 ];
|
|
|
|
configureFlags =
|
|
# 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.
|
|
optional (!stdenv.isSunOS) "--enable-fat"
|
|
++ (if cxx then [ "--enable-cxx" ]
|
|
else [ "--disable-cxx" ])
|
|
++ optional (cxx && stdenv.isDarwin) "CPPFLAGS=-fexceptions"
|
|
++ optional stdenv.is64bit "--with-pic"
|
|
;
|
|
|
|
doCheck = true;
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
meta = with stdenv.lib; {
|
|
homepage = "http://gmplib.org/";
|
|
description = "GNU multiple precision arithmetic library";
|
|
license = licenses.gpl3Plus;
|
|
|
|
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.
|
|
'';
|
|
|
|
platforms = platforms.all;
|
|
maintainers = [ maintainers.simons ];
|
|
};
|
|
}
|
|
// stdenv.lib.optionalAttrs withStatic { dontDisableStatic = true; }
|
|
)
|
|
|