diff options
Diffstat (limited to 'ocaml-binary-annot/camlp4/unmaintained/odyl')
5 files changed, 139 insertions, 0 deletions
diff --git a/ocaml-binary-annot/camlp4/unmaintained/odyl/.cvsignore b/ocaml-binary-annot/camlp4/unmaintained/odyl/.cvsignore new file mode 100644 index 0000000000..8ae0ebb068 --- /dev/null +++ b/ocaml-binary-annot/camlp4/unmaintained/odyl/.cvsignore @@ -0,0 +1,4 @@ +*.cm[oia] +odyl +*.lib +odyl_config.ml diff --git a/ocaml-binary-annot/camlp4/unmaintained/odyl/.depend b/ocaml-binary-annot/camlp4/unmaintained/odyl/.depend new file mode 100644 index 0000000000..a26294403e --- /dev/null +++ b/ocaml-binary-annot/camlp4/unmaintained/odyl/.depend @@ -0,0 +1,4 @@ +odyl.cmo: odyl_main.cmi odyl_config.cmo +odyl.cmx: odyl_main.cmx odyl_config.cmx +odyl_main.cmo: odyl_config.cmo odyl_main.cmi +odyl_main.cmx: odyl_config.cmx odyl_main.cmi diff --git a/ocaml-binary-annot/camlp4/unmaintained/odyl/Makefile b/ocaml-binary-annot/camlp4/unmaintained/odyl/Makefile new file mode 100644 index 0000000000..f4f5d8709d --- /dev/null +++ b/ocaml-binary-annot/camlp4/unmaintained/odyl/Makefile @@ -0,0 +1,61 @@ + + +include ../config/Makefile.cnf + +EXECUTABLES=odyl +INCLUDES=-I $(OTOP)/otherlibs/dynlink +OBJS=odyl_config.cmo odyl_main.cmo +OBJSX=odyl.cmx odyl.cmxa +CLEANFILES=odyl_config.ml + +include ../config/Makefile.base + +odyl$(EXE): odyl.cma odyl.cmo + $(OCAMLC) odyl.cma odyl.cmo -o $@ + +odyl.opt: odyl.cmxa odyl.cmx + $(OCAMLOPT) odyl.cmxa odyl.cmx -o $@ + +odyl.cma: $(OBJS) + $(OCAMLC) $(LINKFLAGS) dynlink.cma $(OBJS) -a -o $@ + +odyl.cmxa: $(OBJSX) + $(OCAMLOPT) $(LINKFLAGS) $(OBJSX) -a -o $@ + +odyl.p.cmxa: $(OBJSP) + $(OCAMLOPT) $(LINKFLAGS) $(OBJSP) -a -o $@ + +odyl_main.cmx: odyl_main.ml + $(CAMLP4BOOT) -nolib -DOPT -o odyl_main.ppo odyl_main.ml + $(OCAMLOPT) -c -impl odyl_main.ppo + rm -f odyl_main.ppo + +odyl_main.p.cmx: odyl_main.ml + $(CAMLP4BOOT) -nolib -DOPT -o odyl_main.ppo odyl_main.ml + $(OCAMLOPT) -p -c -o $@ -impl odyl_main.ppo + rm -f odyl_main.ppo + +odyl_config.ml: + (echo '(* camlp4r *)'; \ + echo 'value standard_library ='; \ + echo ' try Sys.getenv "CAMLP4LIB" with [ Not_found -> '; \ + echo ' try Sys.getenv "OCAMLLIB" ^ "/camlp4" with [ Not_found -> '; \ + echo ' try Sys.getenv "CAMLLIB" ^ "/camlp4" with [ Not_found -> '; \ + echo ' "$(LIBDIR)/camlp4"]]];') \ + | sed -e 's|\\|/|g' > odyl_config.ml + +install-local: + -$(MKDIR) "$(LIBDIR)/camlp4" "$(BINDIR)" + cp odyl.cmo odyl.cma odyl_main.cmi $(LIBDIR)/camlp4/. + for f in odyl.$(A) odyl.p.$(A) ; do \ + if test -f $$f ; then \ + cp $$f "$(LIBDIR)/camlp4/." && ( cd "$(LIBDIR)/camlp4/." && $(RANLIB) $$f ) ; \ + fi ; \ + done + for f in odyl.cmx odyl.o odyl.p.cmx odyl.p.o odyl.cmxa odyl.p.cmxa ; do \ + if test -f $$f ; then \ + cp $$f "$(LIBDIR)/camlp4/." ; \ + fi ; \ + done + +include .depend diff --git a/ocaml-binary-annot/camlp4/unmaintained/odyl/odyl.ml b/ocaml-binary-annot/camlp4/unmaintained/odyl/odyl.ml new file mode 100644 index 0000000000..23b7136c97 --- /dev/null +++ b/ocaml-binary-annot/camlp4/unmaintained/odyl/odyl.ml @@ -0,0 +1,57 @@ +(* camlp4r *) +(***********************************************************************) +(* *) +(* Camlp4 *) +(* *) +(* Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt *) +(* *) +(* Copyright 2001 Institut National de Recherche en Informatique et *) +(* Automatique. Distributed only by permission. *) +(* *) +(***********************************************************************) + + + +value apply_load () = + let i = ref 1 in + let stop = ref False in + while not stop.val && i.val < Array.length Sys.argv do { + let s = Sys.argv.(i.val) in + if s = "-I" && i.val + 1 < Array.length Sys.argv then do { + Odyl_main.directory Sys.argv.(i.val + 1); + i.val := i.val + 2 + } + else if s = "-nolib" then do { Odyl_main.nolib.val := True; incr i } + else if s = "-where" then do { + print_string Odyl_config.standard_library; + print_newline (); + flush stdout; + exit 0 + } + else if s = "-version" then do { + print_string Sys.ocaml_version; + print_newline (); + flush stdout; + exit 0 + } + else if s = "--" then do { incr i; stop.val := True; () } + else if String.length s > 0 && s.[0] == '-' then stop.val := True + else if Filename.check_suffix s ".cmo" || Filename.check_suffix s ".cma" + then do { Odyl_main.loadfile s; incr i } + else stop.val := True + } +; + +value main () = + try do { apply_load () ; Odyl_main.go.val () } with + [ Odyl_main.Error fname str -> + do { + flush stdout; + Printf.eprintf "Error while loading \"%s\": " fname; + Printf.eprintf "%s.\n" str; + flush stderr; + exit 2 + } ] +; + +Printexc.catch main (); diff --git a/ocaml-binary-annot/camlp4/unmaintained/odyl/odyl_main.mli b/ocaml-binary-annot/camlp4/unmaintained/odyl/odyl_main.mli new file mode 100644 index 0000000000..122c9335a8 --- /dev/null +++ b/ocaml-binary-annot/camlp4/unmaintained/odyl/odyl_main.mli @@ -0,0 +1,13 @@ +(* camlp4r *) + + +exception Error of string and string; + +value nolib : ref bool; +value initialized : ref bool; +value path : ref (list string); +value loadfile : string -> unit; +value directory : string -> unit; + +value go : ref (unit -> unit); +value name : ref string; |
