
Hi Detlev,
On Wed, 05 Mar 2014 11:06:03 +0100 Detlev Zundel dzu@denx.de wrote:
Hi Masahiro,
CROSS_COMPILE is generally passed from the command line or by the environment variable because cross tools vary from user to user.
But, having some choices of often used CROSS_COMPILE seems reasonable.
$(call cc-cross-prefix, ...) returns the first prefix where a prefix$(CC) is found in PATH.
If your cross tools exist in the argument of $(call cc-cross-prefix, ...), you do not have to specify it explicitly.
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com
I have to admit that I don't really like this approach. On the one hand it is an heuristic trying to guess the intentions of the user. This is nice if it works but can be very surprising when it goes wrong.
But more imprtantly, it will blur the the boundaries of the build process as we trade the very self contained determinism of "use what CROSS_COMPILE" says to "use what we may find in the rest of the system".
It would even be possible that a "once working" build process will not work anymore because the user has installed a new toolchain in the meantime and then this completely unrelated action has an (unwanted) impact.
In short, I would rather want to stay with our current (clearly defined) setup :)
Maybe this is verbose, but just in case, let me add a few words.
If you like, you can still pass CROSS_COMPILE from the command line or by the environment variable.
ifeq ($(CROSS_COMPILE),) CROSS_COMPILE := $(call cc-cross-prefix, arm-linux- arm-linux-gnueabi-) endif
$(call cc-cross-prefix, ...) is invoked only when $(CROSS_COMPILE) is empty, that is CROSS_COMPILE is not explicitely specified.
For users who know everything happening in the built system, this patch might be helpful for less typing...
Best Regards Masahiro Yamada