X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=build;h=e45b732526fa674ffe46f2b60550bf09a47734a0;hb=HEAD;hp=e3839edd34f39fe0aed4b2030011909dccff082d;hpb=4b52da1a20a4fe031930bb96d2ca46bec06dc529;p=SXSI%2Fxpathcomp.git diff --git a/build b/build index e3839ed..e45b732 100755 --- a/build +++ b/build @@ -1,28 +1,31 @@ #!/usr/bin/env ocaml #use "myocamlbuild_config.ml" -let valid_targets = [ "distclean"; "clean"; "all" ] +let valid_targets = [ "distclean"; "clean"; "all" ] module Cmdline = struct open Arg let set r s () = r := s + let cons r s () = r := s :: !r let targets = ref [] + let tags = ref [] let flavor = ref "native" - let debug = ref "" - let profile = ref "" let verbose = ref "" let jobs = ref 0 let specs = align - [ "-verbose", Unit (set verbose "-classic-display"), + [ "-verbose", Unit (set verbose " -classic-display"), " Display compilation commands"; - "-debug", Unit (set debug "-tag debug"), + "-enable-debug", Unit (cons tags "-tag debug"), " Build with debugging code"; - "-profile", Unit (set profile "-tag profile"), + "-enable-profile", Unit (cons tags "-tag profile"), " Build with profiling code"; + "-enable-log", Unit (cons tags "-tag log"), + " Build with tracing code enabled"; + "-byte", Unit (set flavor "byte"), " Produce bytecode instead of native code"; "-j", Int (fun i -> if i < 0 || i > 1024 @@ -53,11 +56,11 @@ let tests_targets = [] let () = Cmdline.parse () let cmd_list = let ocamlbuild = - Printf.sprintf "ocamlbuild %s %s %s -j %i " - !Cmdline.verbose !Cmdline.profile !Cmdline.debug !Cmdline.jobs + Printf.sprintf "ocamlbuild %s %s -j %i " + !Cmdline.verbose (String.concat " " !Cmdline.tags) !Cmdline.jobs in List.map begin function - | "distclean" -> "rm myocamlbuild_config.ml; ocamlbuild -clean" + | "distclean" -> "rm -f myocamlbuild_config.ml; ocamlbuild -clean" | "clean" -> "ocamlbuild -clean" | "all" -> ocamlbuild ^ (List.assoc !Cmdline.flavor main_targets) | test ->