summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/tools/ocaml/camlp5/default.nix35
-rw-r--r--pkgs/top-level/all-packages.nix7
2 files changed, 42 insertions, 0 deletions
diff --git a/pkgs/development/tools/ocaml/camlp5/default.nix b/pkgs/development/tools/ocaml/camlp5/default.nix
new file mode 100644
index 0000000000000..b630c05fe53fb
--- /dev/null
+++ b/pkgs/development/tools/ocaml/camlp5/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchurl, ocaml, transitional ? false}:
+
+let
+  pname = "camlp5";
+  version = "5.12";
+  webpage = http://pauillac.inria.fr/~ddr/camlp5/;
+in
+
+stdenv.mkDerivation {
+
+  name = "${pname}${if transitional then "_transitional" else ""}-${version}";
+
+  src = fetchurl {
+    url = "${webpage}/distrib/src/${pname}-${version}.tgz";
+    sha256 = "985a5e373ea75f89667e71bc857c868c395769fce664cba88aa76f93b0ad8461";
+  };
+
+  buildInputs = [ ocaml ];
+
+  prefixKey = "-prefix ";
+
+  configureFlags = if transitional then "--transitional" else "--strict";
+
+  buildFlags = "world.opt";
+
+  meta = {
+    description = "Preprocessor-pretty-printer for OCaml.";
+    longDescription = ''
+      Camlp5 is a preprocessor and pretty-printer for OCaml programs.
+      It also provides parsing and printing tools.
+    '';
+    homepage = "${webpage}";
+    license = "BSD";
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 9a8eab43e8443..15c73649583b9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5220,6 +5220,13 @@ let
     inherit libuuid zlib acl;
   };
 
+  camlp5_strict = import ../development/tools/ocaml/camlp5
+    { inherit stdenv fetchurl ocaml; };
+
+  camlp5_transitional = import ../development/tools/ocaml/camlp5
+    { inherit stdenv fetchurl ocaml;
+      transitional = true; };
+
   cpufrequtils = (
     import ../os-specific/linux/cpufrequtils {
     inherit fetchurl stdenv libtool gettext;