about summary refs log tree commit diff
path: root/pkgs/development/compilers/ocaml
diff options
context:
space:
mode:
authorVincent Laporte <Vincent.Laporte@gmail.com>2015-11-28 09:48:55 +0100
committerVincent Laporte <Vincent.Laporte@gmail.com>2015-11-28 09:48:55 +0100
commita3fa690fa288567662d10d664d89f0e9cd21014d (patch)
tree422bb5f756ae758800ffa69a275239affa93a0cb /pkgs/development/compilers/ocaml
parent8cd52ce5f7cc8b949c77dc83b68188af7095de10 (diff)
downloadnixlib-a3fa690fa288567662d10d664d89f0e9cd21014d.tar
nixlib-a3fa690fa288567662d10d664d89f0e9cd21014d.tar.gz
nixlib-a3fa690fa288567662d10d664d89f0e9cd21014d.tar.bz2
nixlib-a3fa690fa288567662d10d664d89f0e9cd21014d.tar.lz
nixlib-a3fa690fa288567662d10d664d89f0e9cd21014d.tar.xz
nixlib-a3fa690fa288567662d10d664d89f0e9cd21014d.tar.zst
nixlib-a3fa690fa288567662d10d664d89f0e9cd21014d.zip
ocaml: add local copy of the ocamlbuild patch
Diffstat (limited to 'pkgs/development/compilers/ocaml')
-rw-r--r--pkgs/development/compilers/ocaml/4.02.nix6
-rw-r--r--pkgs/development/compilers/ocaml/ocamlbuild.patch45
2 files changed, 46 insertions, 5 deletions
diff --git a/pkgs/development/compilers/ocaml/4.02.nix b/pkgs/development/compilers/ocaml/4.02.nix
index 7338f8b36745..91b543151e33 100644
--- a/pkgs/development/compilers/ocaml/4.02.nix
+++ b/pkgs/development/compilers/ocaml/4.02.nix
@@ -9,10 +9,6 @@ assert useX11 -> !stdenv.isArm && !stdenv.isMips;
 let
    useNativeCompilers = !stdenv.isMips;
    inherit (stdenv.lib) optionals optionalString;
-   patchOcamlBuild = fetchurl {
-     url = https://github.com/ocaml/ocaml/pull/117.patch;
-     sha256 = "0x2cdn2sgzq29qzqg5y2ial0jqy8gjg5a7jf8qqch55dc4vkyjw0";
-   };
 in
 
 stdenv.mkDerivation rec {
@@ -28,7 +24,7 @@ stdenv.mkDerivation rec {
     sha256 = "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3";
   };
 
-  patches = [ patchOcamlBuild ];
+  patches = [ ./ocamlbuild.patch ];
 
   prefixKey = "-prefix ";
   configureFlags = optionals useX11 [ "-x11lib" x11lib
diff --git a/pkgs/development/compilers/ocaml/ocamlbuild.patch b/pkgs/development/compilers/ocaml/ocamlbuild.patch
new file mode 100644
index 000000000000..d153fb67d419
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/ocamlbuild.patch
@@ -0,0 +1,45 @@
+Author: Vincent Laporte <Vincent.Laporte@gmail.com>
+Date:   Sun Feb 1 11:19:50 2015 +0100
+
+    ocamlbuild: use ocamlfind to discover camlp4 path
+    
+    and default to `+camlp4`
+
+diff --git a/ocamlbuild/ocaml_specific.ml b/ocamlbuild/ocaml_specific.ml
+index b902810..a73b7a5 100644
+--- a/ocamlbuild/ocaml_specific.ml
++++ b/ocamlbuild/ocaml_specific.ml
+@@ -698,15 +698,25 @@ ocaml_lib ~extern:true ~tag_name:"use_toplevel" "toplevellib";;
+ ocaml_lib ~extern:true ~dir:"+ocamldoc" "ocamldoc";;
+ ocaml_lib ~extern:true ~dir:"+ocamlbuild" ~tag_name:"use_ocamlbuild" "ocamlbuildlib";;
+ 
+-ocaml_lib ~extern:true ~dir:"+camlp4" ~tag_name:"use_camlp4" "camlp4lib";;
+-ocaml_lib ~extern:true ~dir:"+camlp4" ~tag_name:"use_old_camlp4" "camlp4";;
+-ocaml_lib ~extern:true ~dir:"+camlp4" ~tag_name:"use_camlp4_full" "camlp4fulllib";;
++let camlp4dir =
++  Findlib.(
++    try
++      if sys_command "sh -c 'ocamlfind list >/dev/null' 2>/dev/null" != 0
++      then raise (Findlib_error Cannot_run_ocamlfind);
++      (query "camlp4").location
++    with Findlib_error _ ->
++      "+camlp4"
++  );;
++
++ocaml_lib ~extern:true ~dir:camlp4dir ~tag_name:"use_camlp4" "camlp4lib";;
++ocaml_lib ~extern:true ~dir:camlp4dir ~tag_name:"use_old_camlp4" "camlp4";;
++ocaml_lib ~extern:true ~dir:camlp4dir ~tag_name:"use_camlp4_full" "camlp4fulllib";;
+ flag ["ocaml"; "compile"; "use_camlp4_full"]
+-     (S[A"-I"; A"+camlp4/Camlp4Parsers";
+-        A"-I"; A"+camlp4/Camlp4Printers";
+-        A"-I"; A"+camlp4/Camlp4Filters"]);;
+-flag ["ocaml"; "use_camlp4_bin"; "link"; "byte"] (A"+camlp4/Camlp4Bin.cmo");;
+-flag ["ocaml"; "use_camlp4_bin"; "link"; "native"] (A"+camlp4/Camlp4Bin.cmx");;
++     (S[A"-I"; A(camlp4dir^"/Camlp4Parsers");
++        A"-I"; A(camlp4dir^"/Camlp4Printers");
++        A"-I"; A(camlp4dir^"/Camlp4Filters")]);;
++flag ["ocaml"; "use_camlp4_bin"; "link"; "byte"] (A(camlp4dir^"/Camlp4Bin.cmo"));;
++flag ["ocaml"; "use_camlp4_bin"; "link"; "native"] (A(camlp4dir^"/Camlp4Bin.cmx"));;
+ 
+ flag ["ocaml"; "debug"; "compile"; "byte"] (A "-g");;
+ flag ["ocaml"; "debug"; "link"; "byte"; "program"] (A "-g");;