From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34773) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZON5K-0000dw-Ab for qemu-devel@nongnu.org; Sun, 09 Aug 2015 05:40:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZON5H-00033Z-5I for qemu-devel@nongnu.org; Sun, 09 Aug 2015 05:40:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51724) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZON5H-000333-0t for qemu-devel@nongnu.org; Sun, 09 Aug 2015 05:40:03 -0400 Date: Sun, 9 Aug 2015 12:39:59 +0300 From: Victor Kaplansky Message-ID: <1439113148-21937-3-git-send-email-victork@redhat.com> References: <1439113148-21937-1-git-send-email-victork@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1439113148-21937-1-git-send-email-victork@redhat.com> Subject: [Qemu-devel] [PATCH v3 2/2] make: load only required dependency files. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Eduardo Habkost , "Michael S. Tsirkin" , Stefan Weil , Paolo Bonzini , =?us-ascii?B?PT9VVEYtOD9xP0FsZXg9MjA9MjBCZW5uPUMzPUE5ZT89?= , Richard Henderson 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 --- 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 -- --Victor