lol
1{stdenv, fetchurl
2, libtool, autoconf, automake
3, gmp, mpfr, libffi, makeWrapper
4, noUnicode ? false
5, gcc
6, threadSupport ? true
7}:
8let
9 s = # Generated upstream information
10 rec {
11 baseName="ecl";
12 version="16.1.2";
13 name="${baseName}-${version}";
14 url="https://common-lisp.net/project/ecl/static/files/release/ecl-16.1.2.tgz";
15 sha256="16ab8qs3awvdxy8xs8jy82v8r04x4wr70l9l2j45vgag18d2nj1d";
16 };
17 buildInputs = [
18 libtool autoconf automake makeWrapper
19 ];
20 propagatedBuildInputs = [
21 libffi gmp mpfr gcc
22 ];
23in
24stdenv.mkDerivation {
25 inherit (s) name version;
26 inherit buildInputs propagatedBuildInputs;
27
28 src = fetchurl {
29 inherit (s) url sha256;
30 };
31
32 configureFlags = [
33 (if threadSupport then "--enable-threads" else "--disable-threads")
34 "--with-gmp-prefix=${gmp.dev}"
35 "--with-libffi-prefix=${libffi.dev}"
36 ]
37 ++
38 (stdenv.lib.optional (! noUnicode)
39 "--enable-unicode")
40 ;
41
42 hardeningDisable = [ "format" ];
43
44 postInstall = ''
45 sed -e 's/@[-a-zA-Z_]*@//g' -i $out/bin/ecl-config
46 wrapProgram "$out/bin/ecl" \
47 --prefix PATH ':' "${gcc}/bin" \
48 --prefix NIX_LDFLAGS ' ' "-L${gmp.lib or gmp.out or gmp}/lib" \
49 --prefix NIX_LDFLAGS ' ' "-L${libffi.lib or libffi.out or libffi}/lib"
50 '';
51
52 meta = {
53 inherit (s) version;
54 description = "Lisp implementation aiming to be small, fast and easy to embed";
55 license = stdenv.lib.licenses.mit ;
56 maintainers = [stdenv.lib.maintainers.raskin];
57 platforms = stdenv.lib.platforms.linux;
58 };
59}