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 <aligu...@us.ibm.com> --- v1 -> v2 - Remove unnecessary includes (Andreas) - Add a sub makefile for hw/kvm (Andreas) --- Makefile | 4 ++-- Makefile.dis | 2 +- Makefile.target | 2 +- Makefile.user | 2 +- hw/i386/Makefile.objs | 2 +- hw/kvm/Makefile.objs | 1 + rules.mak | 1 + 7 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 hw/kvm/Makefile.objs 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/Makefile.dis b/Makefile.dis index 3e1fcaf..09060f0 100644 --- a/Makefile.dis +++ b/Makefile.dis @@ -20,4 +20,4 @@ clean: rm -f *.o *.d *.a *~ # Include automatically generated dependency files --include $(wildcard *.d */*.d) +-include $(wildcard *.d) diff --git a/Makefile.target b/Makefile.target index 2907aad..550d889 100644 --- a/Makefile.target +++ b/Makefile.target @@ -216,4 +216,4 @@ GENERATED_HEADERS += config-target.h Makefile: $(GENERATED_HEADERS) # Include automatically generated dependency files --include $(wildcard *.d */*.d) +-include $(wildcard *.d) diff --git a/Makefile.user b/Makefile.user index b717820..0ffefe8 100644 --- a/Makefile.user +++ b/Makefile.user @@ -23,4 +23,4 @@ clean: done # Include automatically generated dependency files --include $(wildcard *.d */*.d) +-include $(wildcard *.d) diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index d43f1df..eb171b7 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -7,7 +7,7 @@ obj-y += debugcon.o multiboot.o obj-y += pc_piix.o obj-y += pc_sysfw.o obj-$(CONFIG_XEN) += xen_platform.o xen_apic.o -obj-$(CONFIG_KVM) += kvm/clock.o kvm/apic.o kvm/i8259.o kvm/ioapic.o kvm/i8254.o +obj-y += kvm/ obj-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o obj-y := $(addprefix ../,$(obj-y)) diff --git a/hw/kvm/Makefile.objs b/hw/kvm/Makefile.objs new file mode 100644 index 0000000..226497a --- /dev/null +++ b/hw/kvm/Makefile.objs @@ -0,0 +1 @@ +obj-$(CONFIG_KVM) += clock.o apic.o i8259.o ioapic.o i8254.o diff --git a/rules.mak b/rules.mak index 4bc5e52..60f3e96 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 $1/*.d)) $(eval obj := $(patsubst %/$1,%,$(obj))) $(foreach var,$(nested-vars),$(call pop-var,$(var),$1/)) endef -- 1.7.5.4