From da85ed425dc828ef4b8817f64d448101a88507b5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 2 Jul 2009 11:29:00 +0100 Subject: [PATCH] Generator now runs automatically when it has changed. --- .gitignore | 1 + HACKING | 4 ---- src/Makefile.am | 19 ++++++++++++++++--- src/generator.ml | 7 +++++++ 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 6c58e6f..fbb723f 100644 --- a/.gitignore +++ b/.gitignore @@ -111,4 +111,5 @@ python/guestfs.pyc ruby/Rakefile ruby/ext/guestfs/extconf.h ruby/ext/guestfs/mkmf.log +src/stamp-generator stamp-h1 diff --git a/HACKING b/HACKING index fc9ed38..b42a807 100644 --- a/HACKING +++ b/HACKING @@ -14,10 +14,6 @@ etc. to the big list called 'functions' at the top of this file. 'do_action' function. Take a look at one of the numerous examples there. -You will need to run src/generator.ml (from the top directory) which -regenerates all the auto-generated files, and then continue with the -ordinary build process. - Formatting ---------------------------------------------------------------------- diff --git a/src/Makefile.am b/src/Makefile.am index 06d4522..eb8723a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -15,12 +15,25 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -EXTRA_DIST = guestfs_protocol.x \ +EXTRA_DIST = \ + guestfs_protocol.x \ guestfs_protocol.c \ guestfs_protocol.h \ - MAX_PROC_NR + MAX_PROC_NR \ + stamp-generator \ + generator.ml -EXTRA_DIST += generator.ml +# Rerun the generator if it has changed. +# Git removes empty directories, so in cases where the +# generator is creating the sole file in a directory, we +# have to create the directory first. +noinst_DATA = stamp-generator + +stamp-generator: generator.ml + mkdir -p $(top_srcdir)/perl/lib/Sys + cd .. && ocaml -warn-error A $(srcdir)/src/$< + +guestfs_protocol.x: stamp-generator include_HEADERS = guestfs.h guestfs-actions.h guestfs-structs.h diff --git a/src/generator.ml b/src/generator.ml index df5ff7e..766650f 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -8712,3 +8712,10 @@ Run it from the top source directory using the command let close = output_to "src/MAX_PROC_NR" in generate_max_proc_nr (); close (); + + (* 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 "src/stamp-generator" in + fprintf chan "1\n"; + close_out chan -- 1.8.3.1