From: Paolo Bonzini <pbonzini@redhat.com>
To: Markus Armbruster <armbru@redhat.com>, Eric Blake <eblake@redhat.com>
Cc: Fam Zheng <fam@euphon.net>,
marcandre.lureau@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Proper use of unnest-vars (was: [PATCH v5 00/18] qapi: add #if pre-processor conditions to generated code (part 3))
Date: Fri, 15 Feb 2019 09:29:33 +0100 [thread overview]
Message-ID: <ba0a9a4c-8ed4-7d4b-d5ac-77d60d04e38a@redhat.com> (raw)
In-Reply-To: <875ztlzdw8.fsf_-_@dusky.pond.sub.org>
On 15/02/19 08:53, Markus Armbruster wrote:
> This time, $(obj-y) is very much not blank, and...
>
> @qapi/ final qapi-introspect.o qapi-types-target.o qapi-types.o qapi-visit-target.o qapi-visit.o qapi-events-target.o qapi-events.o qapi-commands-target.o qapi-commands.o
> [Trailing make output elided]
>
> ... qapi/Makefile.obj-y *does* clobber it. Oww.
>
> How come this works anyway?
It works because at this point obj-y is not used anymore, it is assigned
to all-obj-y a couple lines before:
all-obj-y := $(obj-y)
As an aside, target-obj-y seems unnecessary to me.
> Perhaps unnest-vars could be more hygienic.
Macro hygiene and Make in the same sentence? (well, not sentence but
still...).
> But that's not my immediate
> concern. All I want to know right now is whether I should refrain from
> = and := in Makefile.objs. Paolo, Fam?
No, there is no need for that.
Really the answer is that we are kind of pushing Makefiles to the limit
here. We do get good expressiveness, but at the cost of hiding things
behind black magic. In the end I think it's a net benefit, but the cost
does exist.
Paolo
next prev parent reply other threads:[~2019-02-15 8:41 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-14 15:22 [Qemu-devel] [PATCH v5 00/18] qapi: add #if pre-processor conditions to generated code (part 3) Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 01/18] qapi: Belatedly document modular code generation Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 02/18] qapi: Fix up documentation for recent commit a95291007b2 Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 03/18] qapi: Clean up modular built-in code generation a bit Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 04/18] qapi: Prepare for system modules other than 'builtin' Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 05/18] qapi: Generate QAPIEvent stuff into separate files Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 06/18] build-sys: move qmp-introspect per target Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 07/18] build: Deal with all of QAPI's .o in qapi/Makefile.objs Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 08/18] qapi: New module target.json Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 09/18] qapi: make rtc-reset-reinjection and SEV depend on TARGET_I386 Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 10/18] qapi: make s390 commands depend on TARGET_S390X Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 11/18] target.json: add a note about query-cpu* not being s390x-specific Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 12/18] qapi: make query-gic-capabilities depend on TARGET_ARM Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 13/18] qapi: make query-cpu-model-expansion depend on s390 or x86 Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 14/18] qapi: make query-cpu-definitions depend on specific targets Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 15/18] qapi: remove qmp_unregister_command() Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 16/18] Revert "qapi-events: add 'if' condition to implicit event enum" Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 17/18] qmp: Deprecate query-events in favor of query-qmp-schema Markus Armbruster
2019-02-14 15:22 ` [Qemu-devel] [PATCH v5 18/18] qapi: move RTC_CHANGE to the target schema Markus Armbruster
2019-02-14 15:24 ` [Qemu-devel] [PATCH v5 00/18] qapi: add #if pre-processor conditions to generated code (part 3) Markus Armbruster
2019-02-14 16:01 ` Eric Blake
2019-02-15 7:53 ` [Qemu-devel] Proper use of unnest-vars (was: [PATCH v5 00/18] qapi: add #if pre-processor conditions to generated code (part 3)) Markus Armbruster
2019-02-15 8:29 ` Paolo Bonzini [this message]
2019-02-15 9:26 ` [Qemu-devel] Proper use of unnest-vars Markus Armbruster
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=ba0a9a4c-8ed4-7d4b-d5ac-77d60d04e38a@redhat.com \
--to=pbonzini@redhat.com \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=fam@euphon.net \
--cc=marcandre.lureau@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).