summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules/menhir
diff options
context:
space:
mode:
authorVincent Laporte <Vincent.Laporte@gmail.com>2015-11-11 12:24:42 +0100
committerVincent Laporte <Vincent.Laporte@gmail.com>2015-11-11 12:30:32 +0100
commit6cc033b99e607a753d274ce084095a2a7bfb82e8 (patch)
tree145beb0c1060cdc18de0561adacb5ab56ab6cdda /pkgs/development/ocaml-modules/menhir
parentcf55e0b2ace91e383198dc3424525498644f1705 (diff)
downloadnixpkgs-6cc033b99e607a753d274ce084095a2a7bfb82e8.tar
nixpkgs-6cc033b99e607a753d274ce084095a2a7bfb82e8.tar.gz
nixpkgs-6cc033b99e607a753d274ce084095a2a7bfb82e8.tar.bz2
nixpkgs-6cc033b99e607a753d274ce084095a2a7bfb82e8.tar.lz
nixpkgs-6cc033b99e607a753d274ce084095a2a7bfb82e8.tar.xz
nixpkgs-6cc033b99e607a753d274ce084095a2a7bfb82e8.tar.zst
nixpkgs-6cc033b99e607a753d274ce084095a2a7bfb82e8.zip
menhir: refactor to generic; init at 20151110 for OCaml >= 4.02
Diffstat (limited to 'pkgs/development/ocaml-modules/menhir')
-rw-r--r--pkgs/development/ocaml-modules/menhir/default.nix55
-rw-r--r--pkgs/development/ocaml-modules/menhir/generic.nix47
2 files changed, 55 insertions, 47 deletions
diff --git a/pkgs/development/ocaml-modules/menhir/default.nix b/pkgs/development/ocaml-modules/menhir/default.nix
index 5cf2f97e4b7..c8243f32671 100644
--- a/pkgs/development/ocaml-modules/menhir/default.nix
+++ b/pkgs/development/ocaml-modules/menhir/default.nix
@@ -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
-  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
 
-stdenv.mkDerivation {
-  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 ];
-  };
-}
+import ./generic.nix (args // { inherit version sha256; })
diff --git a/pkgs/development/ocaml-modules/menhir/generic.nix b/pkgs/development/ocaml-modules/menhir/generic.nix
new file mode 100644
index 00000000000..8758ff3cffb
--- /dev/null
+++ b/pkgs/development/ocaml-modules/menhir/generic.nix
@@ -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 ];
+  };
+}