ryujinx-greemdev: init at 1.2.76 (#353897)
[NixPkgs.git] / pkgs / by-name / tw / twelf / package.nix
blob67779b2b5722faceba6d1c2e5341e5d31fef5705
1 { lib, stdenv, fetchurl, pkg-config, smlnj, rsync }:
3 stdenv.mkDerivation rec {
4   pname = "twelf";
5   version = "1.7.1";
7   src = fetchurl {
8     url = "http://twelf.plparty.org/releases/twelf-src-${version}.tar.gz";
9     sha256 = "0fi1kbs9hrdrm1x4k13angpjasxlyd1gc3ys8ah54i75qbcd9c4i";
10   };
12   nativeBuildInputs = [ pkg-config ];
13   buildInputs = [ smlnj rsync ];
15   buildPhase = ''
16     export SMLNJ_HOME=${smlnj}
17     make smlnj
18   '';
20   installPhase = ''
21     mkdir -p $out/bin
22     rsync -av bin/{*,.heap} $out/bin/
23     bin/.mkexec ${smlnj}/bin/sml $out/ twelf-server twelf-server
25     substituteInPlace emacs/twelf-init.el \
26       --replace '(concat twelf-root "emacs")' '(concat twelf-root "share/emacs/site-lisp/twelf")'
28     mkdir -p $out/share/emacs/site-lisp/twelf/
29     rsync -av emacs/ $out/share/emacs/site-lisp/twelf/
31     mkdir -p $out/share/twelf/examples
32     rsync -av examples/ $out/share/twelf/examples/
33     mkdir -p $out/share/twelf/vim
34     rsync -av vim/ $out/share/twelf/vim/
35   '';
37   meta = {
38     description = "Logic proof assistant";
39     longDescription = ''
40       Twelf is a language used to specify, implement, and prove properties of
41       deductive systems such as programming languages and logics. Large
42       research projects using Twelf include the TALT typed assembly language,
43       a foundational proof-carrying-code system, and a type safety proof for
44       Standard ML.
45     '';
46     homepage = "http://twelf.org/wiki/Main_Page";
47     license = lib.licenses.mit;
48     maintainers = with lib.maintainers; [ jwiegley ];
49     platforms = lib.platforms.unix;
50   };