From fc36c198342d06cc8f64d27cc493188a477fa9b0 Mon Sep 17 00:00:00 2001
From: Christophe Raffalli <raffalli@univ-savoie.fr>
Date: Sun, 16 Jun 2013 22:23:51 +0200
Subject: [PATCH] Added OCaml gmp bindings mlgmp

---
 pkgs/development/ocaml-modules/mlgmp/META     |  7 ++++
 .../ocaml-modules/mlgmp/default.nix           | 37 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 +
 3 files changed, 46 insertions(+)
 create mode 100644 pkgs/development/ocaml-modules/mlgmp/META
 create mode 100644 pkgs/development/ocaml-modules/mlgmp/default.nix

diff --git a/pkgs/development/ocaml-modules/mlgmp/META b/pkgs/development/ocaml-modules/mlgmp/META
new file mode 100644
index 000000000000..e132e179b33f
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mlgmp/META
@@ -0,0 +1,7 @@
+name="gmp"
+version="@VERSION@"
+description="bindings to GNU MP library"
+archive(byte)="gmp.cma"
+archive(native)="gmp.cmxa"
+requires=""
+
diff --git a/pkgs/development/ocaml-modules/mlgmp/default.nix b/pkgs/development/ocaml-modules/mlgmp/default.nix
new file mode 100644
index 000000000000..78447796025a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mlgmp/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, ocaml, findlib, gmp, mpfr, ncurses }:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  pname = "mlgmp";
+  version = "20120224";
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://www-verimag.imag.fr/~monniaux/download/${pname}_${version}.tar.gz";
+    sha256 = "3ce1a53fa452ff5a9ba618864d3bc46ef32190b57202d1e996ca7df837ad4f24";
+  };
+
+  makeFlags = [ 
+    "DESTDIR=$(out)/lib/ocaml/${ocaml_version}/site-lib/gmp"
+  ];
+
+  preConfigure = "make clean";
+  buildInputs = [ocaml findlib gmp mpfr ncurses];
+
+  createFindlibDestdir = true;
+
+  propagatedbuildInputs = [gmp mpfr ncurses];
+
+  postInstall  = ''
+     cp ${./META} $out/lib/ocaml/${ocaml_version}/site-lib/gmp/META
+  '';
+
+  meta = {
+    homepage = http://opam.ocamlpro.com/pkg/mlgmp.20120224.html;
+    description = "OCaml bindings to GNU MP library";
+    license = "Free software ?";
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 60e18a4847a5..fbd55303fd45 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2736,6 +2736,8 @@ let
 
     mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
 
+    mlgmp =  callPackage ../development/ocaml-modules/mlgmp { };
+
     ocaml_batteries = callPackage ../development/ocaml-modules/batteries {
       camomile = camomile_0_8_2;
     };