diff options
| author | Sam Ravnborg <sam@mars.ravnborg.org> | 2006-01-22 07:34:15 -0500 |
|---|---|---|
| committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2006-02-19 03:51:20 -0500 |
| commit | 20a468b51325b3636785a8ca0047ae514b39cbd5 (patch) | |
| tree | 22e8d00b947cd110c9d600d24c4119ff30ff22c1 /scripts/Kbuild.include | |
| parent | b39927cf4cc5a9123d2b157ffd396884cb8156eb (diff) | |
kbuild: make cc-version available in kbuild files
Move $(CC) support functions to Kbuild.include so they are available
in the kbuild files.
In addition the following was done:
o as-option documented in Documentation/kbuild/makefiles.txt
o Moved documentation to new section to match
new scope of functions
o added cc-ifversion used to conditionally select a text string
dependent on actual $(CC) version
o documented cc-ifversion
o change so Kbuild.include is read before the kbuild file
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts/Kbuild.include')
| -rw-r--r-- | scripts/Kbuild.include | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index 0168d6c37075..92ce94b58bd6 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include | |||
| @@ -44,6 +44,43 @@ define filechk | |||
| 44 | fi | 44 | fi |
| 45 | endef | 45 | endef |
| 46 | 46 | ||
| 47 | ###### | ||
| 48 | # cc support functions to be used (only) in arch/$(ARCH)/Makefile | ||
| 49 | # See documentation in Documentation/kbuild/makefiles.txt | ||
| 50 | |||
| 51 | # as-option | ||
| 52 | # Usage: cflags-y += $(call as-option, -Wa$(comma)-isa=foo,) | ||
| 53 | |||
| 54 | as-option = $(shell if $(CC) $(CFLAGS) $(1) -Wa,-Z -c -o /dev/null \ | ||
| 55 | -xassembler /dev/null > /dev/null 2>&1; then echo "$(1)"; \ | ||
| 56 | else echo "$(2)"; fi ;) | ||
| 57 | |||
| 58 | # cc-option | ||
| 59 | # Usage: cflags-y += $(call cc-option, -march=winchip-c6, -march=i586) | ||
| 60 | |||
| 61 | cc-option = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ | ||
| 62 | > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) | ||
| 63 | |||
| 64 | # cc-option-yn | ||
| 65 | # Usage: flag := $(call cc-option-yn, -march=winchip-c6) | ||
| 66 | cc-option-yn = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ | ||
| 67 | > /dev/null 2>&1; then echo "y"; else echo "n"; fi;) | ||
| 68 | |||
| 69 | # cc-option-align | ||
| 70 | # Prefix align with either -falign or -malign | ||
| 71 | cc-option-align = $(subst -functions=0,,\ | ||
| 72 | $(call cc-option,-falign-functions=0,-malign-functions=0)) | ||
| 73 | |||
| 74 | # cc-version | ||
| 75 | # Usage gcc-ver := $(call cc-version, $(CC)) | ||
| 76 | cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh \ | ||
| 77 | $(if $(1), $(1), $(CC))) | ||
| 78 | |||
| 79 | # cc-ifversion | ||
| 80 | # Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1) | ||
| 81 | cc-ifversion = $(shell if [ $(call cc-version, $(CC)) $(1) $(2) ]; then \ | ||
| 82 | echo $(3); fi;) | ||
| 83 | |||
| 47 | ### | 84 | ### |
| 48 | # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj= | 85 | # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj= |
| 49 | # Usage: | 86 | # Usage: |
