diff options
-rw-r--r-- | driver/Commandline.ml | 6 | ||||
-rw-r--r-- | driver/Commandline.mli | 3 | ||||
-rw-r--r-- | driver/Driver.ml | 11 |
3 files changed, 16 insertions, 4 deletions
diff --git a/driver/Commandline.ml b/driver/Commandline.ml index b544c37b..035c33e0 100644 --- a/driver/Commandline.ml +++ b/driver/Commandline.ml @@ -108,10 +108,12 @@ let parse_array spec argv first last = end in parse first +let argv : string array ref = ref [||] + let parse_cmdline spec = try - let argv = expandargv Sys.argv in - parse_array spec argv 1 (Array.length argv - 1) + argv := expandargv Sys.argv; + parse_array spec !argv 1 (Array.length !argv - 1) with Responsefile.Error s -> eprintf "%s" s; exit 2 diff --git a/driver/Commandline.mli b/driver/Commandline.mli index 65253749..32f5daf3 100644 --- a/driver/Commandline.mli +++ b/driver/Commandline.mli @@ -45,3 +45,6 @@ val longopt_int: string -> (int -> unit) -> pattern * action (** [longopt_int key fn] generates a pattern and an action for options of the form [key=<n>] and calls [fn] with the integer argument *) + +val argv: string array ref +(** [argv] contains the complete command line after @-file expandsion *) diff --git a/driver/Driver.ml b/driver/Driver.ml index 310e4209..97082720 100644 --- a/driver/Driver.ml +++ b/driver/Driver.ml @@ -29,8 +29,15 @@ let jdump_magic_number = "CompCertJDUMP" ^ Version.version let dump_jasm asm sourcename destfile = let oc = open_out_bin destfile in - fprintf oc "{\n\"Version\":\"%s\",\n\"System\":\"%s\"\n,\"Compilation Unit\":\"%s\",\n\"Asm Ast\":%a}" - jdump_magic_number Configuration.system sourcename AsmToJSON.p_program asm; + let print_args oc = + output_string oc Sys.executable_name; + for i = 1 to (Array.length !argv - 1) do + fprintf oc " %s" (Responsefile.gnu_quote !argv.(i)) + done in + let dump_compile_info oc = + fprintf oc "{\n\"directory\":\"%s\",\n\"command\":\"%t\",\n\"file\":\"%s\"\n}" (Sys.getcwd ()) print_args sourcename in + fprintf oc "{\n\"Version\":\"%s\",\n\"System\":\"%s\"\n,\"Compile Info\" : %t,\n\"Compilation Unit\":\"%s\",\n\"Asm Ast\":%a}" + jdump_magic_number Configuration.system dump_compile_info sourcename AsmToJSON.p_program asm; close_out oc |