On 24 January 2013 15:47, Andreas Färber <afaer...@suse.de> wrote: > config-devices.mak.d is included from Makefile.target, i.e. from inside > the *-softmmu/ directory. It included the directory path, so never > applied to the actual ./config-devices.mak. Symptoms were spurious > build failures due to missing dependency on default-configs/pci.mak. > > Fix this by using `basename` to strip the directory path.
This patch seems to break the case it claims to be fixing: (1) touching arm-softmmu.mak correctly provokes us to rebuild: cam-vm-266:precise:qemu$ make V=1 arm-softmmu/config-devices.mak make: `arm-softmmu/config-devices.mak' is up to date. cam-vm-266:precise:qemu$ touch default-configs/arm-softmmu.mak cam-vm-266:precise:qemu$ make V=1 arm-softmmu/config-devices.mak /bin/sh /home/petmay01/linaro/qemu-from-laptop/qemu/scripts/make_device_config.sh arm-softmmu/config-devices.mak default-configs/arm-softmmu.mak cat arm-softmmu/config-devices.mak | grep =y | sort -u > config-all-devices.mak make: `arm-softmmu/config-devices.mak' is up to date. (2) but touching pci.mak does not: cam-vm-266:precise:qemu$ make V=1 arm-softmmu/config-devices.mak make: `arm-softmmu/config-devices.mak' is up to date. cam-vm-266:precise:qemu$ touch default-configs/pci.mak cam-vm-266:precise:qemu$ make V=1 arm-softmmu/config-devices.mak make: `arm-softmmu/config-devices.mak' is up to date. (3) git revert 23bf49b5ec and rm arm-softmmu/config-devices.mak* and then things work: cam-vm-266:precise:qemu$ make V=1 arm-softmmu/config-devices.mak make: `arm-softmmu/config-devices.mak' is up to date. cam-vm-266:precise:qemu$ touch default-configs/arm-softmmu.mak cam-vm-266:precise:qemu$ make V=1 arm-softmmu/config-devices.mak /bin/sh /home/petmay01/linaro/qemu-from-laptop/qemu/scripts/make_device_config.sh arm-softmmu/config-devices.mak default-configs/arm-softmmu.mak cat arm-softmmu/config-devices.mak | grep =y | sort -u > config-all-devices.mak make: `arm-softmmu/config-devices.mak' is up to date. cam-vm-266:precise:qemu$ touch default-configs/pci.mak cam-vm-266:precise:qemu$ make V=1 arm-softmmu/config-devices.mak /bin/sh /home/petmay01/linaro/qemu-from-laptop/qemu/scripts/make_device_config.sh arm-softmmu/config-devices.mak default-configs/arm-softmmu.mak cat arm-softmmu/config-devices.mak | grep =y | sort -u > config-all-devices.mak make: `arm-softmmu/config-devices.mak' is up to date. In particular the commit message claims "config-devices.mak.d is included from Makefile.target" but this is wrong -- this is done from the top level Makefile via the line "-include $(SUBDIR_DEVICES_MAK_DEP)". This is why you need to have the full path in the emitted dependency line. -- PMM