On 05/08/2015 19:29, 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 | 2 ++ > rules.mak | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs > index bd4f147..311d364 100644 > --- a/hw/i386/Makefile.objs > +++ b/hw/i386/Makefile.objs > @@ -10,6 +10,8 @@ obj-y += acpi-build.o > hw/i386/acpi-build.o: hw/i386/acpi-build.c \ > hw/i386/acpi-dsdt.hex hw/i386/q35-acpi-dsdt.hex > > +-include hw/i386/acpi-dsdt.d hw/i386/q35-acpi-dsdt.d > +
Having to include the files manually is ugly though. The failed builds are ugly too, but I'm not sure which is worse... :( Failed builds happen rarely and there are other cases where you should just "make distclean" your way out of a failure. On the other hand, more complicated makefiles have to be maintained always. Paolo