1{ stdenv, fetchurl, jdk }:
2with stdenv.lib;
3
4stdenv.mkDerivation rec {
5 name = "picoLisp-${version}";
6 version = "15.11";
7 src = fetchurl {
8 url = "http://www.software-lab.de/${name}.tgz";
9 sha256 = "0gi1n7gl786wbz6sn0f0002h49f0zvfrzxlhabkghwlbva1rwp58";
10 };
11 buildInputs = optional stdenv.is64bit jdk;
12 patchPhase = optionalString stdenv.isArm ''
13 sed -i s/-m32//g Makefile
14 cat >>Makefile <<EOF
15 ext.o: ext.c
16 \$(CC) \$(CFLAGS) -fPIC -D_OS='"\$(OS)"' \$*.c
17 ht.o: ht.c
18 \$(CC) \$(CFLAGS) -fPIC -D_OS='"\$(OS)"' \$*.c
19 EOF
20 '';
21 sourceRoot = ''picoLisp/src${optionalString stdenv.is64bit "64"}'';
22 installPhase = ''
23 cd ..
24
25 mkdir -p "$out/share/picolisp" "$out/lib" "$out/bin"
26 cp -r . "$out/share/picolisp/build-dir"
27 ln -s "$out/share/picolisp/build-dir" "$out/lib/picolisp"
28 ln -s "$out/lib/picolisp/bin/picolisp" "$out/bin/picolisp"
29
30 cat >"$out/bin/pil" <<EOF
31 #! /bin/sh
32 exec $out/bin/picolisp $out/lib/picolisp/lib.l @lib/misc.l @lib/btree.l @lib/db.l @lib/pilog.l
33 EOF
34 chmod +x "$out/bin/pil"
35
36 mkdir -p "$out/share/emacs"
37 ln -s "$out/lib/picolisp/lib/el" "$out/share/emacs/site-lisp"
38 '';
39
40 meta = {
41 description = "A simple Lisp with an integrated database";
42 homepage = http://picolisp.com/;
43 license = licenses.mit;
44 platforms = platforms.all;
45 maintainers = with maintainers; [ raskin tohl ];
46 };
47
48 passthru = {
49 updateInfo = {
50 downloadPage = "http://www.software-lab.de/down.html";
51 };
52 };
53}