On Wed, Aug 05, 2015 at 08:29:33PM +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 | 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
> +
>  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))))

Pls add space after comma, like it was in the original.

>          $(eval $v := $(filter-out %/,$($v))))
>  endef
> -- 
> --Victor

Reply via email to