generator: Don't always recurse into the generator directory.

Previously, every subdirectory that contained generated files would
cause a recursion into the ../generator directory.  This was slow and
unnecessary.  Only recurse if the generator actually needs to be
rerun.

Note this changes the semantics slightly: For example if you added a
new action and just ran `make -C ocaml' then previously the generator
would be rerun, but now it would not.  However I'm not convinced the
previous semantics were that useful, particularly considering that
with this change a simple `make' is much faster.
This commit is contained in:
Richard W.M. Jones
2013-06-03 22:47:03 +01:00
parent edf9d3c7f0
commit 074e3b5c67

View File

@@ -1,5 +1,5 @@
# libguestfs
# Copyright (C) 2009 Red Hat Inc.
# Copyright (C) 2009-2013 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
@@ -15,12 +15,12 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# Define a force dependency which will always be rebuilt
.PHONY: force
# Individual Makefile.am's should define generator_built if that
# subdirectory contains any files which are built by the generator.
# Set generator_built to the list of those files.
# Automatically build targets defined in generator_built
# generator_built is defined in individual Makefiles
$(generator_built): $(top_builddir)/generator/stamp-generator
$(top_builddir)/generator/stamp-generator: force
$(top_builddir)/generator/stamp-generator: $(top_builddir)/generator/generator
! test -f $(top_builddir)/generator/Makefile || \
$(MAKE) -C $(top_builddir)/generator stamp-generator