@@ -38,10 +38,10 @@ let object_filename sourcename suff =
3838
3939(* From CompCert C AST to asm *)
4040
41- let compile_c_file sourcename ifile ofile =
41+ let compile_c_file sourcename ~ sourcesuffix ifile ofile =
4242 (* Prepare to dump Clight, RTL, etc, if requested *)
4343 let set_dest dst opt ext =
44- dst := if ! opt then Some (output_filename sourcename " .c " ext)
44+ dst := if ! opt then Some (output_filename sourcename sourcesuffix ext)
4545 else None in
4646 set_dest Cprint. destination option_dparse " .parsed.c" ;
4747 set_dest PrintCsyntax. destination option_dcmedium " .compcert.c" ;
@@ -73,23 +73,23 @@ let compile_c_file sourcename ifile ofile =
7373
7474(* From C source to asm *)
7575
76- let compile_i_file sourcename preproname =
76+ let compile_i_file sourcename ~ sourcesuffix preproname =
7777 if ! option_interp then begin
7878 Machine. config := Machine. compcert_interpreter ! Machine. config;
7979 let csyntax = parse_c_file sourcename preproname in
8080 Interp. execute csyntax;
8181 " "
8282 end else if ! option_S then begin
83- compile_c_file sourcename preproname
84- (output_filename ~final: true sourcename " .c " " .s" );
83+ compile_c_file sourcename ~sourcesuffix: sourcesuffix preproname
84+ (output_filename ~final: true sourcename sourcesuffix " .s" );
8585 " "
8686 end else begin
8787 let asmname =
8888 if ! option_dasm
89- then output_filename sourcename " .c " " .s"
89+ then output_filename sourcename sourcesuffix " .s"
9090 else tmp_file " .s" in
91- compile_c_file sourcename preproname asmname;
92- let objname = object_filename sourcename " .c " in
91+ compile_c_file sourcename ~sourcesuffix: sourcesuffix preproname asmname;
92+ let objname = object_filename sourcename sourcesuffix in
9393 assemble asmname objname;
9494 objname
9595 end
@@ -107,14 +107,14 @@ let process_c_file sourcename =
107107 else
108108 tmp_file " .i" in
109109 preprocess sourcename preproname;
110- compile_i_file sourcename preproname
110+ compile_i_file sourcename ~sourcesuffix: " .c " preproname
111111 end
112112
113113(* Processing of a .i / .p file (preprocessed C) *)
114114
115- let process_i_file sourcename =
115+ let process_i_file sourcename ~ sourcesuffix =
116116 ensure_inputfile_exists sourcename;
117- compile_i_file sourcename sourcename
117+ compile_i_file sourcename ~sourcesuffix: sourcesuffix sourcename
118118
119119(* Processing of .S and .s files *)
120120
@@ -379,9 +379,11 @@ let cmdline_actions =
379379 Suffix " .c" , Self (fun s ->
380380 push_action process_c_file s; incr num_source_files; incr num_input_files);
381381 Suffix " .i" , Self (fun s ->
382- push_action process_i_file s; incr num_source_files; incr num_input_files);
382+ push_action (process_i_file ~sourcesuffix: " .i" ) s;
383+ incr num_source_files; incr num_input_files);
383384 Suffix " .p" , Self (fun s ->
384- push_action process_i_file s; incr num_source_files; incr num_input_files);
385+ push_action (process_i_file ~sourcesuffix: " .p" ) s;
386+ incr num_source_files; incr num_input_files);
385387 Suffix " .s" , Self (fun s ->
386388 push_action process_s_file s; incr num_source_files; incr num_input_files);
387389 Suffix " .S" , Self (fun s ->
0 commit comments