Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / cloog / default.nix
blobbfca886e03d5cb56973bb169c6617b97edbf0253
1 { fetchurl, lib, stdenv, gmp, isl }:
3 stdenv.mkDerivation rec {
4   pname = "cloog";
5   version = "0.18.4";
7   src = fetchurl {
8     url = "http://www.bastoul.net/cloog/pages/download/count.php3?url=./${pname}-${version}.tar.gz";
9     sha256 = "03km1aqaiy3sbqc2f046ms9x0mlmacxlvs5rxsvjj8nf20vxynij";
10   };
12   buildInputs = [ gmp ];
14   propagatedBuildInputs = [ isl ];
16   configureFlags = [ "--with-isl=system" ];
18   enableParallelBuilding = true;
19   # Breaks the test cases as it reuses 'cloog_temp' file name for different tests.
20   enableParallelChecking = false;
22   doCheck = true;
24   meta = {
25     description = "Library that generates loops for scanning polyhedra";
27     longDescription = ''
28       CLooG is a free software library to generate code for scanning
29       Z-polyhedra.  That is, it finds a code (e.g., in C, FORTRAN...) that
30       reaches each integral point of one or more parameterized polyhedra.
31       CLooG has been originally written to solve the code generation problem
32       for optimizing compilers based on the polytope model.  Nevertheless it
33       is used now in various area e.g., to build control automata for
34       high-level synthesis or to find the best polynomial approximation of a
35       function.  CLooG may help in any situation where scanning polyhedra
36       matters.  While the user has full control on generated code quality,
37       CLooG is designed to avoid control overhead and to produce a very
38       effective code.
39     '';
41     homepage = "http://www.cloog.org/";
43     license = lib.licenses.gpl2Plus;
45     /* Leads to an ICE on Cygwin:
47        make[3]: Entering directory `/tmp/nix-build-9q5gw5m37q5l4f0kjfv9ar8fsc9plk27-ppl-0.10.2.drv-1/ppl-0.10.2/src'
48        /bin/sh ../libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I..  -I.. -I../src    -g -O2 -frounding-math  -W -Wall -c -o Box.lo Box.cc
49        libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -g -O2 -frounding-math -W -Wall -c Box.cc  -DDLL_EXPORT -DPIC -o .libs/Box.o
50        In file included from checked.defs.hh:595,
51                         from Checked_Number.defs.hh:27,
52                         from Coefficient.types.hh:15,
53                         from Coefficient.defs.hh:26,
54                         from Box.defs.hh:28,
55                         from Box.cc:24:
56        checked.inlines.hh: In function `Parma_Polyhedra_Library::Result Parma_Polyhedra_Library::Checked::input_generic(Type&, std::istream&, Parma_Polyhedra_Library::Rounding_Dir)':
57        checked.inlines.hh:607: internal compiler error: in invert_truthvalue, at fold-const.c:2719
58        Please submit a full bug report,
59        with preprocessed source if appropriate.
60        See <URL:http://cygwin.com/problems.html> for instructions.
61        make[3]: *** [Box.lo] Error 1
63     */
64     platforms = lib.platforms.unix; # Once had cygwin problems
65   };