+++ /dev/null
-open Ocamlbuild_plugin
-open Command
-
-let includes = ref StringSet.empty
-
-let register_include dir =
- if not (StringSet.mem dir !includes) then begin
- includes := StringSet.add dir !includes;
- dep [ "extension:ml" ]
- (List.map (fun s -> dir ^ "/" ^ s )
- (Array.to_list (Pathname.readdir dir)))
- end
-
-let set_flags tag_list action_list =
- List.iter (fun s ->
- List.iter (fun (fl, fu) ->
- pflag s fl fu)
- action_list
- ) tag_list
-
-let macro_flags = [
- "macro_include",
- (fun s -> register_include s; S [A"-ppopt"; A "-I"; A"-ppopt"; A s]);
- "macro_define", (fun s -> S [A"-ppopt"; A ("-D"^s)]);
-]
-
-let () = dispatch begin
- function
- | Before_rules -> ()
- | After_rules ->
- set_flags [["ocaml";"compile"]; ["ocaml"; "ocamldep"] ] macro_flags;
- pflag [ "ocaml"; "compile" ] "warning" (fun s -> (S[ A"-w"; A s]));
- flag [ "ocaml"; "compile"; "debug" ] (S[ A"-g"; A"-ppopt"; A"-DDEBUG"]);
- flag [ "ocaml"; "compile"; "htmltrace" ] (S[ A"-ppopt"; A"-DHTMLTRACE"]);
- flag [ "ocaml"; "ocamldep"; "htmltrace" ] (S[ A"-ppopt"; A"-DHTMLTRACE"]);
- flag [ "ocaml"; "link"; "debug" ] (A"-g");
- flag [ "ocaml"; "compile"; "profile"] (S[A"-ppopt"; A"-DPROFILE"]);
- flag [ "ocaml"; "compile"; "profile"; "native"] (A"-p");
- flag [ "ocaml"; "link"; "profile"; "native"] (A"-p");
- pflag [ "ocaml"; "compile"; "native" ] "inline" (fun i -> (S[ A"-inline"; A i ]));
- pflag [ "ocaml"; "compile" ] "unsafe" (fun s -> (if s = "true" then S[A"-ppopt";A "-unsafe"] else N));
-
-
- rule "Java compilation"
- ~prod:"%.class"
- ~dep:"%.java"
- begin fun env _build ->
- let java = env "%.java" in
- let tags = tags_of_pathname java ++ "compile" in
- Cmd( S[ A"javac" ; P java; T tags ])
- end
- | _ -> ()
-end