nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at 19.03 60 lines 1.7 kB view raw
1{ stdenv, fetchurl, jdk, makeWrapper }: 2with stdenv.lib; 3 4stdenv.mkDerivation rec { 5 name = "picoLisp-${version}"; 6 version = "18.12"; 7 src = fetchurl { 8 url = "https://www.software-lab.de/${name}.tgz"; 9 sha256 = "0hvgq2vc03bki528jqn95xmvv7mw8xx832spfczhxc16wwbrnrhk"; 10 }; 11 buildInputs = [makeWrapper] ++ optional stdenv.is64bit jdk; 12 patchPhase = '' 13 sed -i "s/which java/command -v java/g" mkAsm 14 15 ${optionalString stdenv.isAarch32 '' 16 sed -i s/-m32//g Makefile 17 cat >>Makefile <<EOF 18 ext.o: ext.c 19 \$(CC) \$(CFLAGS) -fPIC -D_OS='"\$(OS)"' \$*.c 20 ht.o: ht.c 21 \$(CC) \$(CFLAGS) -fPIC -D_OS='"\$(OS)"' \$*.c 22 EOF 23 ''} 24 ''; 25 sourceRoot = ''picoLisp/src${optionalString stdenv.is64bit "64"}''; 26 installPhase = '' 27 cd .. 28 29 mkdir -p "$out/share/picolisp" "$out/lib" "$out/bin" 30 cp -r . "$out/share/picolisp/build-dir" 31 ln -s "$out/share/picolisp/build-dir" "$out/lib/picolisp" 32 ln -s "$out/lib/picolisp/bin/picolisp" "$out/bin/picolisp" 33 34 35 makeWrapper $out/bin/picolisp $out/bin/pil \ 36 --add-flags "$out/lib/picolisp/lib.l" \ 37 --add-flags "@lib/misc.l" \ 38 --add-flags "@lib/btree.l" \ 39 --add-flags "@lib/db.l" \ 40 --add-flags "@lib/pilog.l" 41 42 mkdir -p "$out/share/emacs" 43 ln -s "$out/lib/picolisp/lib/el" "$out/share/emacs/site-lisp" 44 ''; 45 46 meta = { 47 description = "A simple Lisp with an integrated database"; 48 homepage = https://picolisp.com/; 49 license = licenses.mit; 50 platforms = platforms.all; 51 broken = stdenv.isDarwin; # times out 52 maintainers = with maintainers; [ raskin tohl ]; 53 }; 54 55 passthru = { 56 updateInfo = { 57 downloadPage = "http://www.software-lab.de/down.html"; 58 }; 59 }; 60}