nixpkgs/pkgs/applications/science/logic/ssreflect/default.nix
Marco Maggesi c713b0ed67 Preliminary version of package ssreflect
Add expression for ssreflect, an extension to the Coq Proof Assistant.
Still has some clitches (see TODO in default.nix) but is usable anyway.


svn path=/nixpkgs/trunk/; revision=18145
2009-11-05 15:08:12 +00:00

56 lines
1.5 KiB
Nix

# TODO:
# - ssrcoqide does not build successfully (missing coqide libraries in the coq installation).
# - ssrcoq needs to be invoked with the explicit path to the ssreflect theory
# e.g.. ssrcoq -I /nix/store/rp09dlb2y2hpddb0xa7fyrgjlzb284ar-ssreflect-1.2/lib/coq/user-contrib/theories/
{stdenv, fetchurl, ocaml, camlp5, coq}:
let
pname = "ssreflect";
version = "1.2";
name = "${pname}-${version}";
webpage = http://www.msr-inria.inria.fr/Projects/math-components;
in
stdenv.mkDerivation {
inherit name;
src = fetchurl {
url = "${webpage}/${name}.tgz";
sha256 = "0800b085e6a0caec5093c6c02aacdd8dfd9cc282177e8586f14f9a9e15f64d0b";
};
buildInputs = [ ocaml camlp5 coq ];
preBuild = ''
coq_makefile -f Make -o Makefile
substituteInPlace Makefile \
--replace 'install -D $$i $(COQLIB)' 'install -D $$i '$out'/lib/coq'
'';
# this fails
/*
postBuild = ''
cd src
coqmktop -ide -opt ssreflect.cmx -o ../bin/ssrcoqide
'';
*/
postInstall = ''
ensureDir $out/bin
#cp -a bin/ssrcoq bin/ssrcoqide $out/bin
cp -a bin/ssrcoq $out/bin
'';
meta = {
description = "Small Scale Reflection extension for Coq";
longDescription = ''
Small Scale Reflection (ssreflect) is an extension of the Coq Theorem
Prover which enable a formal proof methodology based on the pervasive
use of computation with symbolic representation
'';
homepage = webpage;
license = "CeCILL B FREE SOFTWARE LICENSE or CeCILL FREE SOFTWARE LICENSE";
};
}