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 | ||
