On 27 February 2015 at 18:40, Paolo Bonzini <pbonz...@redhat.com> wrote:
> Squashing this to make the non-verbose messages clearer, ok?
>
> diff --git a/Makefile b/Makefile
> index 5604209..d92d4cd 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -109,7 +109,7 @@ endif
>  -include $(SUBDIR_DEVICES_MAK_DEP)
>
>  %/config-devices.mak: default-configs/%.mak
> -       $(call quiet-command,$(SHELL) 
> $(SRC_PATH)/scripts/make_device_config.sh $@ $<, "  GEN   $@")
> +       $(call quiet-command,$(SHELL) 
> $(SRC_PATH)/scripts/make_device_config.sh $@.tmp $<, "  GEN   $@.tmp")
>         $(call quiet-command, if test -f $@; then \
>           if cmp -s $@.old $@; then \
>             mv $@.tmp $@; \
> @@ -126,7 +126,7 @@ endif
>          else \
>           mv $@.tmp $@; \
>           cp -p $@ $@.old; \
> -        fi, "  TEST $@");
> +        fi, "  GEN  $@");
>
>  defconfig:
>         rm -f config-all-devices.mak $(SUBDIR_DEVICES_MAK)
> diff --git a/scripts/make_device_config.sh b/scripts/make_device_config.sh
> index 7242707..7958086 100644
> --- a/scripts/make_device_config.sh
> +++ b/scripts/make_device_config.sh
> @@ -2,7 +2,7 @@
>  # Construct a target device config file from a default, pulling in any
>  # files from include directives.
>
> -dest=$1.tmp
> +dest=$1
>  dep=`dirname $1`-`basename $1`.d
>  src=$2
>  src_dir=`dirname $src`

This squashed-in change breaks automatically rebuilding the
config-devices.mak file when a default-configs file indirectly
included from the architecture's top level config is changed.
(This is most common for AArch64 because of the way it includes
the arm-softmmu config file; so any change to the arm-softmmu
device configs means the aarch64-softmmu qemu isn't rebuilt as
it should be.)

The problem is that we're now passing the script $@.tmp as its
first argument, and so the 'dep' filename it constructs
ends up as aarch64-softmmu-config-devices.mak.tmp.d. But the
Makefile include line defining the dep file to pull in is:
SUBDIR_DEVICES_MAK_DEP=$(patsubst %, %-config-devices.mak.d, $(TARGET_DIRS))
so we never include the .d file at all.

The basic "%/config-devices.mak: default-configs/%.mak" rule
means that this is only a problem for the indirectly included
config files.

-- PMM

Reply via email to