From: Darren Hart <dvhart@linux.intel.com>
To: David Sharp <dhsharp@google.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
linux-kernel@vger.kernel.org, mrubin@google.com
Subject: Re: [PATCH trace-cmd 3/3] Revert "trace-cmd: Use conditional assignment of CC and AR"
Date: Wed, 09 Mar 2011 22:46:13 -0800 [thread overview]
Message-ID: <4D7873B5.7090602@linux.intel.com> (raw)
In-Reply-To: <AANLkTi=WRv2PekEyuEh5k9VOv9LmGCWa6KxXn0BeZVSk@mail.gmail.com>
On 03/09/2011 09:25 PM, David Sharp wrote:
> On Wed, Mar 9, 2011 at 7:26 PM, Steven Rostedt<rostedt@goodmis.org> wrote:
>> On Wed, 2011-03-09 at 21:51 -0500, Steven Rostedt wrote:
>>
>>> I'll play with some other make tricks and see if I can come up with a
>>> better solution.
>>
>> OK, it didn't take me long to come up with "Makefiles suck" ;)
>
> Yes, except for very basic things.
>
>>
>> But I did come up with a solution:
>>
>> ifneq ("$(origin CC)", "environment")
>> CC = gcc
>> endif
>>
>> CC := $(CROSS_COMPILE)$(CC)
>>
>> This wont let make CC=xx work unless I also add a:
>>
>> ifneq ("$(origin CC)", "command line")
>>
>> around the above if, but do we care?
>>
>> -- Steve
>
> This seems to do it all:
>
> define allow-override
> $(if $(or $(findstring environment,$(origin $(1))),
> $(findstring command line,$(origin $(1)))),,\
> $(eval $(1) = $(2)))
> endef
>
> $(call allow-override,CC,$(CROSS_COMPILE)gcc)
> $(call allow-override,AR,$(CROSS_COMPILE)ar)
Egads .... that's hideous :-) This level of complexity makes it very
difficult for people to readily understand it. What does this offer over:
ifdef CROSS_COMPILE
CC = $(CROSS_COMPILE)gcc
AR = $(CROSS_COMPILE)ar
endif
besides being 3 lines longer with much more complex Makefile syntax and
conditional statements?
--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
next prev parent reply other threads:[~2011-03-10 6:46 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-09 23:58 [PATCH trace-cmd 1/3] parse-events: Add support for printing short fields David Sharp
2011-03-09 23:58 ` [PATCH trace-cmd 2/3] parse-events: support additional operators: '!', '~', and '!=' David Sharp
2011-03-09 23:58 ` [PATCH trace-cmd 3/3] Revert "trace-cmd: Use conditional assignment of CC and AR" David Sharp
2011-03-10 1:21 ` Steven Rostedt
2011-03-10 1:28 ` Steven Rostedt
2011-03-10 1:29 ` Darren Hart
2011-03-10 1:27 ` Darren Hart
2011-03-10 1:36 ` Steven Rostedt
2011-03-10 1:58 ` Darren Hart
2011-03-10 2:27 ` David Sharp
2011-03-10 2:51 ` Steven Rostedt
2011-03-10 3:26 ` Steven Rostedt
2011-03-10 5:25 ` David Sharp
2011-03-10 6:46 ` Darren Hart [this message]
2011-03-10 13:02 ` Steven Rostedt
2011-03-10 6:41 ` Darren Hart
2011-03-10 13:07 ` Steven Rostedt
2011-03-10 6:34 ` Darren Hart
2011-03-10 6:32 ` Darren Hart
2011-03-10 6:43 ` Darren Hart
2011-03-10 13:11 ` Steven Rostedt
2011-03-10 17:50 ` Darren Hart
2011-03-10 18:11 ` Steven Rostedt
2011-03-10 21:11 ` [PATCH trace-cmd v2] trace-cmd: allow setting CC and AR, or CROSS_COMPILE from command line David Sharp
2011-03-10 21:30 ` Steven Rostedt
2011-03-10 2:42 ` [PATCH trace-cmd 3/3] Revert "trace-cmd: Use conditional assignment of CC and AR" Steven Rostedt
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=4D7873B5.7090602@linux.intel.com \
--to=dvhart@linux.intel.com \
--cc=dhsharp@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mrubin@google.com \
--cc=rostedt@goodmis.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.