Commit:     910b40468a9ce3f2f5d48c5d260329c27d45adb5
Parent:     50a8ec31c3a00594ceb7c5f1dcf2ecdaf6a5b847
Author:     Sam Ravnborg <[EMAIL PROTECTED](none)>
AuthorDate: Fri Oct 19 21:46:01 2007 +0200
Committer:  Sam Ravnborg <[EMAIL PROTECTED](none)>
CommitDate: Fri Oct 19 21:46:01 2007 +0200

    kbuild: introduce cc-cross-prefix
    cc-cross-prefix is useful for the architecture that like
    to provide a default CROSS_COMPILE value,
    but may have several to select between.
    Sample usage:
    ifneq ($(SUBARCH),$(ARCH))
            ifeq ($(CROSS_COMPILE),)
                   CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu- 
    Actual usage by the different archs will taken care of later.
    Signed-off-by: Sam Ravnborg <[EMAIL PROTECTED]>
 Documentation/kbuild/makefiles.txt |   22 ++++++++++++++++++++++
 scripts/Kbuild.include             |   11 +++++++++++
 2 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/Documentation/kbuild/makefiles.txt 
index f099b81..6166e2d 100644
--- a/Documentation/kbuild/makefiles.txt
+++ b/Documentation/kbuild/makefiles.txt
@@ -518,6 +518,28 @@ more details, with real examples.
        In this example for a specific GCC version the build will error out 
        to the user why it stops.
+    cc-cross-prefix
+       cc-cross-prefix is used to check if there exist a $(CC) in path with
+       one of the listed prefixes. The first prefix where there exist a
+       prefix$(CC) in the PATH is returned - and if no prefix$(CC) is found
+       then nothing is returned.
+       Additional prefixes are separated by a single space in the
+       call of cc-cross-prefix.
+       This functionality is usefull for architecture Makefile that try
+       to set CROSS_COMPILE to well know values but may have several
+       values to select between.
+       It is recommended only to try to set CROSS_COMPILE is it is a cross
+       build (host arch is different from target arch). And is CROSS_COMPILE
+       is already set then leave it with the old value.
+       Example:
+               #arch/m68k/Makefile
+               ifneq ($(SUBARCH),$(ARCH))
+                       ifeq ($(CROSS_COMPILE),)
+                              CROSS_COMPILE := $(call cc-cross-prefix, 
+                       endif
+               endif
 === 4 Host Program support
 Kbuild supports building executables on the host for use during the
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index de7bb28..b96ea8d 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -56,6 +56,17 @@ endef
 # gcc support functions
 # See documentation in Documentation/kbuild/makefiles.txt
+# cc-cross-prefix
+# Usage: CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu- m68k-linux-)
+# Return first prefix where a prefix$(CC) is found in PATH.
+# If no $(CC) found in PATH with listed prefixes return nothing
+cc-cross-prefix =  \
+       $(word 1, $(foreach c,$(1),                                   \
+               $(shell set -e;                                       \
+               if (which $(strip $(c))$(CC)) > /dev/null 2>&1 ; then \
+                       echo $(c);                                    \
+               fi)))
 # output directory for tests below
 TMPOUT := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/)
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to