source: Deliverables/D2.3/8051-memoryspaces-branch/myocamlbuild.ml @ 459

Last change on this file since 459 was 453, checked in by ayache, 9 years ago

Import of the Paris's sources.

File size: 2.1 KB
Line 
1open Ocamlbuild_plugin
2open Myocamlbuild_config
3
4let run_and_read      = Ocamlbuild_pack.My_unix.run_and_read
5let blank_sep_strings = Ocamlbuild_pack.Lexers.blank_sep_strings
6
7let find_packages () =
8  blank_sep_strings &
9    Lexing.from_string &
10      run_and_read "ocamlfind list | cut -d' ' -f1"
11
12let find_syntaxes () = ["camlp4o"; "camlp4r"]
13
14let ocamlfind x = S[A"ocamlfind"; x]
15
16
17let _ = dispatch begin function
18   | Before_options ->
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";
24
25   | After_rules ->
26       flag ["ocaml"; "link"] & 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"]);
40
41       rule "admin/myocamldoc"
42         ~prod:"admin/myocamldoc.exe"
43         ~deps:["admin/myocamldoc"]
44         begin fun _ _ ->
45           Seq [ cp "admin/myocamldoc" "admin/myocamldoc.exe";
46                 chmod (A"+rx") "admin/myocamldoc.exe" ]
47         end;
48
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)]);
55
56       ocaml_lib ~extern:true ~dir:parser_lib "cparser";
57
58   | _ -> ()
59end
Note: See TracBrowser for help on using the repository browser.