Merge pull request #10964 from vbgl/master
menhir: refactor to generic; init at 20151110 for OCaml >= 4.02
This commit is contained in:
commit
b3d2a2874a
@ -1,51 +1,12 @@
|
|||||||
{stdenv, fetchurl, ocaml, findlib}:
|
{ stdenv, fetchurl, ocaml, findlib
|
||||||
|
, version ? if stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.02" then "20151110" else "20140422"
|
||||||
|
}@args:
|
||||||
|
|
||||||
let
|
let
|
||||||
ocaml_version = (builtins.parseDrvName ocaml.name).version;
|
sha256 =
|
||||||
|
if version == "20140422" then "1ki1f2id6a14h9xpv2k8yb6px7dyw8cvwh39csyzj4qpzx7wia0d"
|
||||||
|
else if version == "20151110" then "12ijr1gd808f79d7k7ji9zg23xr4szayfgvm6njqamh0jnspq70r"
|
||||||
|
else throw ("menhir: unknown version " ++ version);
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
import ./generic.nix (args // { inherit version sha256; })
|
||||||
name = "menhir-20140422";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = http://pauillac.inria.fr/~fpottier/menhir/menhir-20140422.tar.gz;
|
|
||||||
sha256 = "1ki1f2id6a14h9xpv2k8yb6px7dyw8cvwh39csyzj4qpzx7wia0d";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ocaml findlib];
|
|
||||||
|
|
||||||
createFindlibDestdir = true;
|
|
||||||
|
|
||||||
preBuild = ''
|
|
||||||
#Fix makefiles.
|
|
||||||
RM=$(type -p rm)
|
|
||||||
CHMOD=$(type -p chmod)
|
|
||||||
ENV=$(type -p env)
|
|
||||||
for f in src/Makefile demos/OMakefile* demos/Makefile* demos/ocamldep.wrapper
|
|
||||||
do
|
|
||||||
substituteInPlace $f \
|
|
||||||
--replace /bin/rm $RM \
|
|
||||||
--replace /bin/chmod $CHMOD \
|
|
||||||
--replace /usr/bin/env $ENV
|
|
||||||
done
|
|
||||||
|
|
||||||
export PREFIX=$out
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
homepage = http://pauillac.inria.fr/~fpottier/menhir/;
|
|
||||||
description = "A LR(1) parser generator for OCaml";
|
|
||||||
longDescription = ''
|
|
||||||
Menhir is a LR(1) parser generator for the Objective Caml programming
|
|
||||||
language. That is, Menhir compiles LR(1) grammar specifications down
|
|
||||||
to OCaml code. Menhir was designed and implemented by François Pottier
|
|
||||||
and Yann Régis-Gianas.
|
|
||||||
'';
|
|
||||||
license = with licenses; [
|
|
||||||
qpl /* generator */
|
|
||||||
lgpl2 /* library */
|
|
||||||
];
|
|
||||||
platforms = ocaml.meta.platforms;
|
|
||||||
maintainers = with maintainers; [ z77z ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
47
pkgs/development/ocaml-modules/menhir/generic.nix
Normal file
47
pkgs/development/ocaml-modules/menhir/generic.nix
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{ version, sha256, stdenv, fetchurl, ocaml, findlib }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "menhir-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://pauillac.inria.fr/~fpottier/menhir/menhir-${version}.tar.gz";
|
||||||
|
inherit sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ ocaml findlib ];
|
||||||
|
|
||||||
|
createFindlibDestdir = true;
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
#Fix makefiles.
|
||||||
|
RM=$(type -p rm)
|
||||||
|
CHMOD=$(type -p chmod)
|
||||||
|
ENV=$(type -p env)
|
||||||
|
for f in src/Makefile demos/OMakefile* demos/Makefile* demos/ocamldep.wrapper
|
||||||
|
do
|
||||||
|
substituteInPlace $f \
|
||||||
|
--replace /bin/rm $RM \
|
||||||
|
--replace /bin/chmod $CHMOD \
|
||||||
|
--replace /usr/bin/env $ENV
|
||||||
|
done
|
||||||
|
|
||||||
|
export PREFIX=$out
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://pauillac.inria.fr/~fpottier/menhir/;
|
||||||
|
description = "A LR(1) parser generator for OCaml";
|
||||||
|
longDescription = ''
|
||||||
|
Menhir is a LR(1) parser generator for the Objective Caml programming
|
||||||
|
language. That is, Menhir compiles LR(1) grammar specifications down
|
||||||
|
to OCaml code. Menhir was designed and implemented by François Pottier
|
||||||
|
and Yann Régis-Gianas.
|
||||||
|
'';
|
||||||
|
license = with licenses; [
|
||||||
|
qpl /* generator */
|
||||||
|
lgpl2 /* library */
|
||||||
|
];
|
||||||
|
platforms = ocaml.meta.platforms;
|
||||||
|
maintainers = with maintainers; [ z77z ];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user