From: "Andreas Färber" <afaerber@suse.de>
To: Anthony Liguori <aliguori@us.ibm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
qemu-devel@nongnu.org, Jan Kiszka <jan.kiszka@siemens.com>
Subject: Re: [Qemu-devel] [PATCH] make: automatically include dependencies in recursive subdir rules (v2)
Date: Mon, 18 Jun 2012 02:32:17 +0200 [thread overview]
Message-ID: <4FDE7711.201@suse.de> (raw)
In-Reply-To: <1339977692-3196-1-git-send-email-aliguori@us.ibm.com>
Am 18.06.2012 02:01, schrieb Anthony Liguori:
> I think I understand enough of what's going on in these rules to ensure this is
> right. But I could certainly use a second or third opinion...
>
> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
> ---
> v1 -> v2
> - Remove unnecessary includes (Andreas)
> - Add a sub makefile for hw/kvm (Andreas)
> ---
> Makefile | 4 ++--
> Makefile.dis | 2 +-
> Makefile.target | 2 +-
> Makefile.user | 2 +-
> hw/i386/Makefile.objs | 2 +-
> hw/kvm/Makefile.objs | 1 +
> rules.mak | 1 +
> 7 files changed, 8 insertions(+), 6 deletions(-)
> create mode 100644 hw/kvm/Makefile.objs
>
> diff --git a/Makefile b/Makefile
> index cce45fb..593bd9b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -405,5 +405,5 @@ tar:
> Makefile: $(GENERATED_HEADERS)
>
> # Include automatically generated dependency files
> --include $(wildcard *.d audio/*.d slirp/*.d block/*.d net/*.d ui/*.d qapi/*.d)
> --include $(wildcard qga/*.d hw/*.d hw/usb/*.d qom/*.d)
> +# All subdir dependencies come automatically from our recursive subdir rules
> +-include $(wildcard *.d)
> diff --git a/Makefile.dis b/Makefile.dis
> index 3e1fcaf..09060f0 100644
> --- a/Makefile.dis
> +++ b/Makefile.dis
> @@ -20,4 +20,4 @@ clean:
> rm -f *.o *.d *.a *~
>
> # Include automatically generated dependency files
> --include $(wildcard *.d */*.d)
> +-include $(wildcard *.d)
> diff --git a/Makefile.target b/Makefile.target
> index 2907aad..550d889 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -216,4 +216,4 @@ GENERATED_HEADERS += config-target.h
> Makefile: $(GENERATED_HEADERS)
>
> # Include automatically generated dependency files
> --include $(wildcard *.d */*.d)
> +-include $(wildcard *.d)
> diff --git a/Makefile.user b/Makefile.user
> index b717820..0ffefe8 100644
> --- a/Makefile.user
> +++ b/Makefile.user
> @@ -23,4 +23,4 @@ clean:
> done
>
> # Include automatically generated dependency files
> --include $(wildcard *.d */*.d)
> +-include $(wildcard *.d)
> diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs
> index d43f1df..eb171b7 100644
> --- a/hw/i386/Makefile.objs
> +++ b/hw/i386/Makefile.objs
> @@ -7,7 +7,7 @@ obj-y += debugcon.o multiboot.o
> obj-y += pc_piix.o
> obj-y += pc_sysfw.o
> obj-$(CONFIG_XEN) += xen_platform.o xen_apic.o
> -obj-$(CONFIG_KVM) += kvm/clock.o kvm/apic.o kvm/i8259.o kvm/ioapic.o kvm/i8254.o
> +obj-y += kvm/
This will work technically but I still feel this is wrong semantically.
The pre-Paolo and current way is picking specific files from the hw/kvm/
directory. Your change above implies that in hw/kvm/ only x86 files can
live, which I dislike. As suggested before, I would prefer if x86-only
files were moved to an x86-specific location - the place for that
existing since Paolo's refactoring would be hw/i386/. CC'ing Jan. That
would match Paolo's reply in the unicore32 thread on future file
placement. Alternatives would be hw/i386/kvm/ or hw/kvm/i386/; we're
talking about a handful of files only though, so I don't think they
require a new subdirectory.
Andreas
> obj-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o
>
> obj-y := $(addprefix ../,$(obj-y))
> diff --git a/hw/kvm/Makefile.objs b/hw/kvm/Makefile.objs
> new file mode 100644
> index 0000000..226497a
> --- /dev/null
> +++ b/hw/kvm/Makefile.objs
> @@ -0,0 +1 @@
> +obj-$(CONFIG_KVM) += clock.o apic.o i8259.o ioapic.o i8254.o
> diff --git a/rules.mak b/rules.mak
> index 4bc5e52..60f3e96 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -94,6 +94,7 @@ define unnest-dir
> $(foreach var,$(nested-vars),$(call push-var,$(var),$1/))
> $(eval obj := $(obj)/$1)
> $(eval include $(SRC_PATH)/$1/Makefile.objs)
> +$(eval -include $(wildcard $1/*.d))
> $(eval obj := $(patsubst %/$1,%,$(obj)))
> $(foreach var,$(nested-vars),$(call pop-var,$(var),$1/))
> endef
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
next prev parent reply other threads:[~2012-06-18 0:32 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-18 0:01 [Qemu-devel] [PATCH] make: automatically include dependencies in recursive subdir rules (v2) Anthony Liguori
2012-06-18 0:32 ` Andreas Färber [this message]
2012-06-18 9:13 ` Jan Kiszka
2012-06-18 9:31 ` Peter Maydell
2012-06-18 10:42 ` Andreas Färber
2012-06-18 10:56 ` Peter Maydell
2012-06-18 11:35 ` Andreas Färber
2012-06-18 11:45 ` Peter Maydell
2012-06-18 12:47 ` Anthony Liguori
2012-06-18 13:08 ` Jan Kiszka
2012-06-20 13:06 ` Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FDE7711.201@suse.de \
--to=afaerber@suse.de \
--cc=aliguori@us.ibm.com \
--cc=jan.kiszka@siemens.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.