1{ lib, stdenv, fetchurl, makeWrapper,
2 llvm, gmp, mpfr, readline, bison, flex }:
3
4stdenv.mkDerivation rec {
5 baseName="pure";
6 project="pure-lang";
7 version="0.64";
8 name="${baseName}-${version}";
9 extension="tar.gz";
10
11 src = fetchurl {
12 url="https://bitbucket.org/purelang/${project}/downloads/${name}.${extension}";
13 sha256="01vvix302gh5vsmnjf2g0rrif3hl1yik4izsx1wrvv1a6hlm5mgg";
14 };
15
16 buildInputs = [ bison flex makeWrapper ];
17 propagatedBuildInputs = [ llvm gmp mpfr readline ];
18
19 postPatch = ''
20 for f in expr.cc matcher.cc printer.cc symtable.cc parserdefs.hh; do
21 sed -i '1i\#include <stddef.h>' $f
22 done
23 '';
24
25 configureFlags = [ "--enable-release" ];
26 doCheck = true;
27 checkPhase = ''
28 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${llvm}/lib make check
29 '';
30 postInstall = ''
31 wrapProgram $out/bin/pure --prefix LD_LIBRARY_PATH : ${llvm}/lib
32 '';
33
34 meta = {
35 description = "A modern-style functional programming language based on term rewriting";
36 maintainers = with lib.maintainers;
37 [
38 raskin
39 asppsa
40 ];
41 platforms = with lib.platforms;
42 linux;
43 license = lib.licenses.gpl3Plus;
44 };
45}