blob: b7598ca5d9f8754ad10b755c94d8842dc1ffd46b [file] [log] [blame]
Tom Rinia9610bd2020-05-14 08:30:01 -04001# Kconfig helper macros
2
3# Convenient variables
4comma := ,
5quote := "
6squote := '
7empty :=
8space := $(empty) $(empty)
9dollar := $
10right_paren := )
11left_paren := (
12
13# $(if-success,<command>,<then>,<else>)
14# Return <then> if <command> exits with 0, <else> otherwise.
15if-success = $(shell,{ $(1); } >/dev/null 2>&1 && echo "$(2)" || echo "$(3)")
16
17# $(success,<command>)
18# Return y if <command> exits with 0, n otherwise
19success = $(if-success,$(1),y,n)
20
21# $(cc-option,<flag>)
22# Return y if the compiler supports <flag>, n otherwise
23cc-option = $(success,$(CC) -Werror $(1) -E -x c /dev/null -o /dev/null)
24
Michal Suchanek5bde2e02022-10-14 22:52:33 +020025# $(cc-define,<macro>)
26# Return y if the compiler defines <macro>, n otherwise
27cc-define = $(success,$(CC) -dM -E -x c /dev/null | grep -q '^#define \<$(1)\>')
28
Tom Rinia9610bd2020-05-14 08:30:01 -040029# $(ld-option,<flag>)
30# Return y if the linker supports <flag>, n otherwise
31ld-option = $(success,$(LD) -v $(1))
32
33# gcc version including patch level
34gcc-version := $(shell,$(srctree)/scripts/gcc-version.sh -p $(CC) | sed 's/^0*//')