On Sun, Aug 09, 2015 at 12:39:59PM +0300, Victor Kaplansky wrote: > The old rules.mak loads dependency .d files using include directive > with file glob pattern "*.d". This breaks the build when build tree has > remanent *.d files from another build. > > This patch fixes this by > - loading precise list of .d files made from *.o and *.mo. > - specifying explicit list of required dependency info files for > *.hex autogenerated sources. > > Note that Makefile still includes some .d in rood directory by including > "*.d". > > Signed-off-by: Victor Kaplansky <vict...@redhat.com> > --- > hw/i386/Makefile.objs | 8 +++++++- > rules.mak | 2 +- > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs > index bd4f147..ecdb400 100644 > --- a/hw/i386/Makefile.objs > +++ b/hw/i386/Makefile.objs > @@ -7,8 +7,14 @@ obj-$(CONFIG_XEN) += ../xenpv/ xen/ > > obj-y += kvmvapic.o > obj-y += acpi-build.o > + > +gen-hex-y += hw/i386/acpi-dsdt.hex > +gen-hex-y += hw/i386/q35-acpi-dsdt.hex > + > hw/i386/acpi-build.o: hw/i386/acpi-build.c \ > - hw/i386/acpi-dsdt.hex hw/i386/q35-acpi-dsdt.hex > + $(gen-hex-y) > + > +-include $(gen-hex-y:.hex=.d) > > iasl-option=$(shell if test -z "`$(1) $(2) 2>&1 > /dev/null`" \ > ; then echo "$(2)"; else echo "$(3)"; fi ;) > diff --git a/rules.mak b/rules.mak > index 6e35c36..4551b9e 100644 > --- a/rules.mak > +++ b/rules.mak > @@ -368,6 +368,6 @@ define unnest-vars > $(error $o added in $v but $o-objs is not set))) > $(shell mkdir -p ./ $(sort $(dir $($v)))) > # Include all the .d files > - $(eval -include $(addsuffix *.d, $(sort $(dir $($v))))) > + $(eval -include $(patsubst %.o,%.d,$(patsubst %.mo,%.d,$($v)))) > $(eval $v := $(filter-out %/,$($v)))) > endef
Please add space after each comma. > -- > --Victor