diff mbox

make: automatically include dependencies in recursive subdir rules

Message ID 1339945072-10816-1-git-send-email-aliguori@us.ibm.com
State New
Headers show

Commit Message

Anthony Liguori June 17, 2012, 2:57 p.m. UTC
I think I understand enough of what's going on in these rules to ensure this is
right.  But I could certainly use a second or third opinion...

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
---
 Makefile  |    4 ++--
 rules.mak |    1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

Comments

Blue Swirl June 17, 2012, 3:20 p.m. UTC | #1
On Sun, Jun 17, 2012 at 2:57 PM, Anthony Liguori <aliguori@us.ibm.com> wrote:
> I think I understand enough of what's going on in these rules to ensure this is
> right.  But I could certainly use a second or third opinion...
>
> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
> ---
>  Makefile  |    4 ++--
>  rules.mak |    1 +
>  2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index cce45fb..593bd9b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -405,5 +405,5 @@ tar:
>  Makefile: $(GENERATED_HEADERS)
>
>  # Include automatically generated dependency files
> --include $(wildcard *.d audio/*.d slirp/*.d block/*.d net/*.d ui/*.d qapi/*.d)
> --include $(wildcard qga/*.d hw/*.d hw/usb/*.d qom/*.d)
> +# All subdir dependencies come automatically from our recursive subdir rules
> +-include $(wildcard *.d)

include $(wildcard *.d */*.d */*/*.d */*/*/*.d)
?

> diff --git a/rules.mak b/rules.mak
> index 4bc5e52..8c5ef95 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -94,6 +94,7 @@ define unnest-dir
>  $(foreach var,$(nested-vars),$(call push-var,$(var),$1/))
>  $(eval obj := $(obj)/$1)
>  $(eval include $(SRC_PATH)/$1/Makefile.objs)
> +$(eval -include $(wildcard $(SRC_PATH)/$1/*.d))

This assumes a build in the source directory, s/SRC_PATH/BUILD_DIR/.

>  $(eval obj := $(patsubst %/$1,%,$(obj)))
>  $(foreach var,$(nested-vars),$(call pop-var,$(var),$1/))
>  endef
> --
> 1.7.5.4
>
>
diff mbox

Patch

diff --git a/Makefile b/Makefile
index cce45fb..593bd9b 100644
--- a/Makefile
+++ b/Makefile
@@ -405,5 +405,5 @@  tar:
 Makefile: $(GENERATED_HEADERS)
 
 # Include automatically generated dependency files
--include $(wildcard *.d audio/*.d slirp/*.d block/*.d net/*.d ui/*.d qapi/*.d)
--include $(wildcard qga/*.d hw/*.d hw/usb/*.d qom/*.d)
+# All subdir dependencies come automatically from our recursive subdir rules
+-include $(wildcard *.d)
diff --git a/rules.mak b/rules.mak
index 4bc5e52..8c5ef95 100644
--- a/rules.mak
+++ b/rules.mak
@@ -94,6 +94,7 @@  define unnest-dir
 $(foreach var,$(nested-vars),$(call push-var,$(var),$1/))
 $(eval obj := $(obj)/$1)
 $(eval include $(SRC_PATH)/$1/Makefile.objs)
+$(eval -include $(wildcard $(SRC_PATH)/$1/*.d))
 $(eval obj := $(patsubst %/$1,%,$(obj)))
 $(foreach var,$(nested-vars),$(call pop-var,$(var),$1/))
 endef