You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

17 lines
683 B

let _ =
let prefix = "keystone_stub" in
let generate_ml, generate_c = ref false, ref false in
Arg.(parse [ ("-ml", Set generate_ml, "Generate ML");
("-c", Set generate_c, "Generate C") ])
(fun _ -> failwith "unexpected anonymous argument")
"stubgen [-ml|-c]";
match !generate_ml, !generate_c with
| false, false
| true, true ->
failwith "Exactly one of -ml and -c must be specified"
| true, false ->
Cstubs.write_ml Format.std_formatter ~prefix (module Ffi_bindings.Bindings)
| false, true ->
print_endline ("#include " ^ Config.keystone_header_loc);
Cstubs.write_c Format.std_formatter ~prefix (module Ffi_bindings.Bindings)