diff --git a/compiler/_tags b/compiler/_tags index 97f462d..413bc49 100644 --- a/compiler/_tags +++ b/compiler/_tags @@ -1,5 +1,6 @@ or or or or
:include <**/*.ml>: debug, dtypes : camlp4of, use_camlp4 -<**/*.{byte,native}>: use_unix, use_str, debug +<**/hept_parser.ml>: use_menhirLib +<**/*.{byte,native}>: use_unix, use_str, link_menhirLib, debug true: use_menhir diff --git a/compiler/myocamlbuild.ml b/compiler/myocamlbuild.ml index 1d06e64..70bb724 100644 --- a/compiler/myocamlbuild.ml +++ b/compiler/myocamlbuild.ml @@ -6,8 +6,18 @@ let df = function (* Tell ocamlbuild about the camlp4 library. *) ocaml_lib ~extern:true ~dir:"+camlp4" "camlp4"; + (* Tell ocamlbuild about Menhir library (needed by --table). *) + ocaml_lib ~extern:true ~dir:"+menhirLib" "menhirLib"; + + (* Menhir does not come with menhirLib.cmxa so we have to manually by-pass + OCamlbuild's built-in logic and add the needed menhirLib.cmxa. *) + flag ["link"; "link_menhirLib"] (S [A "-I"; A "+menhirLib"; + A "menhirLib.cmx"]); + + (* Add preproc.cmo to the ocaml pre-processor when use_preproc is set *) flag ["ocaml"; "pp"; "use_preproc"] (A "preproc.cmo"); + (* Running ocamldep on ocaml code that is tagged with use_preproc will require the cmo. Note that you only need this declaration when the syntax extension is part of the sources to be compiled with @@ -17,7 +27,8 @@ let df = function (* LablGTK use for graphical simulator *) ocaml_lib ~extern:true ~dir:"+lablgtk2" "lablgtk"; - flag ["ocaml"; "parser" ; "menhir" ; "use_menhir"] (S[A"--explain"]); + flag ["ocaml"; "parser" ; "menhir" ; "use_menhir"] (S[A"--explain"; + A"--table"]); | _ -> ()