diff options
| author | Sam Ravnborg <sam@neptun.(none)> | 2007-10-19 15:46:01 -0400 |
|---|---|---|
| committer | Sam Ravnborg <sam@neptun.(none)> | 2007-10-19 15:46:01 -0400 |
| commit | 910b40468a9ce3f2f5d48c5d260329c27d45adb5 (patch) | |
| tree | 7c6957b94da9c9358839cde3f1ed6c827aac63a7 | |
| parent | 50a8ec31c3a00594ceb7c5f1dcf2ecdaf6a5b847 (diff) | |
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- m68k-linux-)
endif
endif
Actual usage by the different archs will taken care of later.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
| -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 f099b814d38..6166e2d7da7 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 de7bb284c61..b96ea8d6a5e 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 | ||
