+let otarget = List.fold_left (fun acc t ->
+ if t = "clean" || t = "-clean" then (clean_first := true; acc)
+ else
+ let t =
+ if Filename.check_suffix t ".otarget" then
+ file_content ((Filename.chop_suffix t ".otarget") ^ ".itarget")
+ else t
+ in
+ t ^ " " ^ acc) "" (if (!target == []) then [ "main.otarget" ] else !target)
+let overbose = if !verbose then " -classic-display " else ""
+let clean_cmd = if !clean_first then "ocamlbuild -clean;" else ""
+let build_cmd = if otarget = "" then "" else
+ Printf.sprintf "ocamlbuild -use-ocamlfind %s %s %s %s"
+ overbose oprofile odebug otarget
+let i = Sys.command (clean_cmd ^ build_cmd)
+let () = Sys.chdir dir;
+ Printf.printf "Leaving directory `%s'\n%!" project_root
+let _ = exit i