diff options
-rw-r--r-- | Documentation/kbuild/makefiles.txt | 22 | ||||
-rw-r--r-- | scripts/Kbuild.include | 11 |
2 files changed, 33 insertions, 0 deletions
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt index f099b814d383..6166e2d7da76 100644 --- a/Documentation/kbuild/makefiles.txt +++ b/Documentation/kbuild/makefiles.txt | |||
@@ -518,6 +518,28 @@ more details, with real examples. | |||
518 | In this example for a specific GCC version the build will error out explaining | 518 | In this example for a specific GCC version the build will error out explaining |
519 | to the user why it stops. | 519 | to the user why it stops. |
520 | 520 | ||
521 | cc-cross-prefix | ||
522 | cc-cross-prefix is used to check if there exist a $(CC) in path with | ||
523 | one of the listed prefixes. The first prefix where there exist a | ||
524 | prefix$(CC) in the PATH is returned - and if no prefix$(CC) is found | ||
525 | then nothing is returned. | ||
526 | Additional prefixes are separated by a single space in the | ||
527 | call of cc-cross-prefix. | ||
528 | This functionality is usefull for architecture Makefile that try | ||
529 | to set CROSS_COMPILE to well know values but may have several | ||
530 | values to select between. | ||
531 | It is recommended only to try to set CROSS_COMPILE is it is a cross | ||
532 | build (host arch is different from target arch). And is CROSS_COMPILE | ||
533 | is already set then leave it with the old value. | ||
534 | |||
535 | Example: | ||
536 | #arch/m68k/Makefile | ||
537 | ifneq ($(SUBARCH),$(ARCH)) | ||
538 | ifeq ($(CROSS_COMPILE),) | ||
539 | CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu-) | ||
540 | endif | ||
541 | endif | ||
542 | |||
521 | === 4 Host Program support | 543 | === 4 Host Program support |
522 | 544 | ||
523 | Kbuild supports building executables on the host for use during the | 545 | Kbuild supports building executables on the host for use during the |
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index de7bb284c611..b96ea8d6a5ed 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include | |||
@@ -56,6 +56,17 @@ endef | |||
56 | # gcc support functions | 56 | # gcc support functions |
57 | # See documentation in Documentation/kbuild/makefiles.txt | 57 | # See documentation in Documentation/kbuild/makefiles.txt |
58 | 58 | ||
59 | # cc-cross-prefix | ||
60 | # Usage: CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu- m68k-linux-) | ||
61 | # Return first prefix where a prefix$(CC) is found in PATH. | ||
62 | # If no $(CC) found in PATH with listed prefixes return nothing | ||
63 | cc-cross-prefix = \ | ||
64 | $(word 1, $(foreach c,$(1), \ | ||
65 | $(shell set -e; \ | ||
66 | if (which $(strip $(c))$(CC)) > /dev/null 2>&1 ; then \ | ||
67 | echo $(c); \ | ||
68 | fi))) | ||
69 | |||
59 | # output directory for tests below | 70 | # output directory for tests below |
60 | TMPOUT := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/) | 71 | TMPOUT := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/) |
61 | 72 | ||