(* libguestfs
- * Copyright (C) 2009-2010 Red Hat Inc.
+ * Copyright (C) 2009-2011 Red Hat Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
open Generator_pr
open Generator_structs
+open Generator_api_versions
open Generator_c
open Generator_xdr
open Generator_haskell
open Generator_csharp
open Generator_php
+open Generator_erlang
open Generator_bindtests
open Generator_errnostring
(* Main program. *)
let () =
let lock_fd =
- try openfile "HACKING" [O_RDWR] 0
+ try openfile "BUGS" [O_RDWR] 0
with
| Unix_error (ENOENT, _, _) ->
eprintf "\
";
exit 1
| exn ->
- perror "open: HACKING" exn;
+ perror "open: BUGS" exn;
exit 1 in
(* Acquire a lock so parallel builds won't try to run the generator
*)
(try lockf lock_fd F_LOCK 1
with exn ->
- perror "lock: HACKING" exn;
+ perror "lock: BUGS" exn;
exit 1);
+ (* Read the API versions file. *)
+ load_api_versions "src/api-support/added";
+
output_to "src/guestfs_protocol.x" generate_xdr;
- output_to "src/guestfs-structs.h" generate_structs_h;
- output_to "src/guestfs-actions.h" generate_actions_h;
+ output_to "src/guestfs.h" generate_guestfs_h;
output_to "src/guestfs-internal-actions.h" generate_internal_actions_h;
output_to "src/actions.c" generate_client_actions;
output_to "src/bindtests.c" generate_bindtests;
output_to "daemon/optgroups.c" generate_daemon_optgroups_c;
output_to "daemon/optgroups.h" generate_daemon_optgroups_h;
output_to "capitests/tests.c" generate_tests;
+ output_to "fish/cmds_gperf.gperf" generate_fish_cmds_gperf;
output_to "fish/cmds.c" generate_fish_cmds;
output_to "fish/completion.c" generate_fish_completion;
+ output_to "fish/event-names.c" generate_fish_event_names;
+ output_to "fish/fish-cmds.h" generate_fish_cmds_h;
output_to "fish/guestfish-commands.pod" generate_fish_commands_pod;
output_to "fish/guestfish-actions.pod" generate_fish_actions_pod;
output_to "fish/prepopts.c" generate_fish_prep_options_c;
output_to "csharp/Libguestfs.cs" generate_csharp;
output_to "php/extension/php_guestfs_php.h" generate_php_h;
output_to "php/extension/guestfs_php.c" generate_php_c;
+ output_to "erlang/guestfs.erl" generate_erlang_erl;
+ output_to "erlang/erl-guestfs.c" generate_erlang_c;
+
+ (* Generate the list of files generated -- last. *)
+ printf "generated %d lines of code\n" (get_lines_generated ());
+ let files = List.sort compare (get_files_generated ()) in
+ output_to "generator/files-generated.txt"
+ (fun () -> List.iter (pr "%s\n") files);
(* Always generate this file last, and unconditionally. It's used
* by the Makefile to know when we must re-run the generator.
*)
let chan = open_out "generator/stamp-generator" in
fprintf chan "1\n";
- close_out chan;
-
- printf "generated %d lines of code\n" (get_lines_generated ())
+ close_out chan