summaryrefslogtreecommitdiff
path: root/ocaml-binary-annot/ocamlbuild/log.ml
diff options
context:
space:
mode:
Diffstat (limited to 'ocaml-binary-annot/ocamlbuild/log.ml')
-rw-r--r--ocaml-binary-annot/ocamlbuild/log.ml55
1 files changed, 55 insertions, 0 deletions
diff --git a/ocaml-binary-annot/ocamlbuild/log.ml b/ocaml-binary-annot/ocamlbuild/log.ml
new file mode 100644
index 0000000000..2fd2b2b1cf
--- /dev/null
+++ b/ocaml-binary-annot/ocamlbuild/log.ml
@@ -0,0 +1,55 @@
+(***********************************************************************)
+(* ocamlbuild *)
+(* *)
+(* Nicolas Pouillard, Berke Durak, projet Gallium, INRIA Rocquencourt *)
+(* *)
+(* Copyright 2007 Institut National de Recherche en Informatique et *)
+(* en Automatique. All rights reserved. This file is distributed *)
+(* under the terms of the Q Public License version 1.0. *)
+(* *)
+(***********************************************************************)
+
+
+(* Original author: Nicolas Pouillard *)
+open My_std
+
+module Debug = struct
+let mode _ = true
+end
+include Debug
+
+let level = ref 1
+
+let classic_display = ref false
+let internal_display = ref None
+let failsafe_display = lazy (Display.create ~mode:`Classic ~log_level:!level ())
+
+let ( !- ) r =
+ match !r with
+ | None -> !*failsafe_display
+ | Some x -> x
+
+let init log_file =
+ let mode =
+ if !classic_display || !*My_unix.is_degraded || !level <= 0 || not (My_unix.stdout_isatty ()) then
+ `Classic
+ else
+ `Sophisticated
+ in
+ internal_display := Some (Display.create ~mode ?log_file ~log_level:!level ())
+
+let raw_dprintf log_level = Display.dprintf ~log_level !-internal_display
+
+let dprintf log_level fmt = raw_dprintf log_level ("@[<2>"^^fmt^^"@]@.")
+let eprintf fmt = dprintf (-1) fmt
+
+let update () = Display.update !-internal_display
+let event ?pretend x = Display.event !-internal_display ?pretend x
+let display x = Display.display !-internal_display x
+
+let finish ?how () =
+ match !internal_display with
+ | None -> ()
+ | Some d -> Display.finish ?how d
+
+(*let () = My_unix.at_exit_once finish*)