2 open Myocamlbuild_config
4 let run_and_read = Ocamlbuild_pack.My_unix.run_and_read
5 let blank_sep_strings = Ocamlbuild_pack.Lexers.blank_sep_strings
10 run_and_read "ocamlfind list | cut -d' ' -f1"
12 let find_syntaxes () = ["camlp4o"; "camlp4r"]
14 let ocamlfind x = S[A"ocamlfind"; x]
17 let _ = dispatch begin function
19 Options.ocamlc := ocamlfind & A"ocamlc";
20 Options.ocamlopt := ocamlfind & A"ocamlopt";
21 Options.ocamldep := ocamlfind & A"ocamldep";
22 Options.ocamldoc := A"admin/myocamldoc.exe";
23 Options.ocamlmktop := ocamlfind & A"ocamlmktop";
26 flag ["ocaml"; "link"; "program"] & A"-linkpkg";
27 List.iter begin fun pkg ->
28 flag ["ocaml"; "compile"; "pkg_"^pkg] & S[A"-package"; A pkg];
29 flag ["ocaml"; "ocamldep"; "pkg_"^pkg] & S[A"-package"; A pkg];
30 flag ["ocaml"; "doc"; "pkg_"^pkg] & S[A"-package"; A pkg];
31 flag ["ocaml"; "link"; "pkg_"^pkg] & S[A"-package"; A pkg];
32 end (find_packages ());
33 List.iter begin fun s ->
34 flag ["ocaml"; "compile"; "syntax_"^s] & S[A"-syntax"; A s];
35 flag ["ocaml"; "ocamldep"; "syntax_"^s] & S[A"-syntax"; A s];
36 flag ["ocaml"; "doc"; "syntax_"^s] & S[A"-syntax"; A s];
37 end (find_syntaxes ());
38 flag ["ocaml"; "pkg_threads"; "compile"] (S[A "-thread"]);
39 flag ["ocaml"; "pkg_threads"; "link"] (S[A "-thread"]);
41 rule "admin/myocamldoc"
42 ~prod:"admin/myocamldoc.exe"
43 ~deps:["admin/myocamldoc"]
45 Seq [ cp "admin/myocamldoc" "admin/myocamldoc.exe";
46 chmod (A"+rx") "admin/myocamldoc.exe" ]
49 dep ["doc"] ["admin/myocamldoc.exe"];
50 dep ["doc"; "docdir"; "extension:html"; "ocaml"] [ "doc/src/main" ];
51 flag ["doc"; "docdir"; "extension:html"; "ocaml"]
52 (S[A "-intro"; A "doc/src/main" ]);
53 flag ["doc"] (S[A "-keep-code"]);
54 flag ["doc"] (S[A ("-I "^parser_lib)]);
56 ocaml_lib ~extern:true ~dir:parser_lib "cparser";