diff options
Diffstat (limited to 'ocamlbuild/ocaml_tools.ml')
-rw-r--r-- | ocamlbuild/ocaml_tools.ml | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/ocamlbuild/ocaml_tools.ml b/ocamlbuild/ocaml_tools.ml index 365d3de4d..2a17b128d 100644 --- a/ocamlbuild/ocaml_tools.ml +++ b/ocamlbuild/ocaml_tools.ml @@ -20,7 +20,8 @@ open Ocaml_utils let ocamlyacc mly env _build = let mly = env mly in - Cmd(S[!Options.ocamlyacc; T(tags_of_pathname mly++"ocaml"++"parser"++"ocamlyacc"); + let ocamlyacc = if !Options.ocamlyacc = N then V"OCAMLYACC" else !Options.ocamlyacc in + Cmd(S[ocamlyacc; T(tags_of_pathname mly++"ocaml"++"parser"++"ocamlyacc"); flags_of_pathname mly; Px mly]) let ocamllex mll env _build = @@ -30,14 +31,18 @@ let ocamllex mll env _build = let infer_interface ml mli env build = let ml = env ml and mli = env mli in + let tags = tags_of_pathname ml++"ocaml" in Ocaml_compiler.prepare_compile build ml; - Cmd(S[!Options.ocamlc; ocaml_include_flags ml; A"-i"; - T(tags_of_pathname ml++"ocaml"++"infer_interface"); P ml; Sh">"; Px mli]) + Cmd(S[!Options.ocamlc; ocaml_ppflags tags; ocaml_include_flags ml; A"-i"; + T(tags++"infer_interface"); P ml; Sh">"; Px mli]) let menhir mly env build = let mly = env mly in + let menhir = if !Options.ocamlyacc = N then V"MENHIR" else !Options.ocamlyacc in Ocaml_compiler.prepare_compile build mly; - Cmd(S[!Options.ocamlyacc; T(tags_of_pathname mly++"ocaml"++"parser"++"menhir"); + Cmd(S[menhir; + A"--ocamlc"; Quote(S[!Options.ocamlc; ocaml_include_flags mly]); + T(tags_of_pathname mly++"ocaml"++"parser"++"menhir"); A"--infer"; flags_of_pathname mly; Px mly]) let ocamldoc_c tags arg odoc = |