0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 cc-cross-prefix = $(firstword $(foreach c, $(1), \
0013 $(if $(shell command -v -- $(c)gcc 2>/dev/null), $(c))))
0014
0015
0016 TMPOUT = $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_$$$$
0017
0018
0019
0020
0021
0022 try-run = $(shell set -e; \
0023 TMP=$(TMPOUT)/tmp; \
0024 trap "rm -rf $(TMPOUT)" EXIT; \
0025 mkdir -p $(TMPOUT); \
0026 if ($(1)) >/dev/null 2>&1; \
0027 then echo "$(2)"; \
0028 else echo "$(3)"; \
0029 fi)
0030
0031
0032
0033
0034 as-option = $(call try-run,\
0035 $(CC) $(KBUILD_CFLAGS) $(1) -c -x assembler /dev/null -o "$$TMP",$(1),$(2))
0036
0037
0038
0039
0040 as-instr = $(call try-run,\
0041 printf "%b\n" "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -x assembler -o "$$TMP" -,$(2),$(3))
0042
0043
0044
0045 __cc-option = $(call try-run,\
0046 $(1) -Werror $(2) $(3) -c -x c /dev/null -o "$$TMP",$(3),$(4))
0047
0048
0049
0050
0051 cc-option = $(call __cc-option, $(CC),\
0052 $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS),$(1),$(2))
0053
0054
0055
0056 cc-option-yn = $(call try-run,\
0057 $(CC) -Werror $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
0058
0059
0060
0061 cc-disable-warning = $(call try-run,\
0062 $(CC) -Werror $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
0063
0064
0065
0066 cc-ifversion = $(shell [ $(CONFIG_GCC_VERSION)0 $(1) $(2)000 ] && echo $(3) || echo $(4))
0067
0068
0069
0070 ld-option = $(call try-run, $(LD) $(KBUILD_LDFLAGS) $(1) -v,$(1),$(2),$(3))
0071
0072
0073
0074 ld-ifversion = $(shell [ $(CONFIG_LD_VERSION)0 $(1) $(2)0 ] && echo $(3) || echo $(4))