Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / scripts / kconfig / tests / preprocess / escape / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 # Shorthand
4 warning = $(warning-if,y,$(1))
5
6 # You can not pass commas directly to a function since they are treated as
7 # delimiters. You can use the following trick to do so.
8 comma   := ,
9 $(warning,hello$(comma) world)
10
11 # Like Make, single quotes, double quotes, spaces are treated verbatim.
12 # The following prints the text as-is.
13 $(warning,  ' " '"   ' ''' "'")
14
15 # Unlike Make, '$' has special meaning only when it is followed by '('.
16 # No need to escape '$' itself.
17 $(warning,$)
18 $(warning,$$)
19 $ := 1
20 $(warning,$($))
21
22 # You need a trick to escape '$' followed by '('
23 # The following should print "$(X)". It should not be expanded further.
24 dollar := $
25 $(warning,$(dollar)(X))
26
27 # You need a trick to treat unbalanced parentheses.
28 # The following should print "(".
29 left_paren := (
30 $(warning,$(left_paren))
31
32 # A simple expanded should not be expanded multiple times.
33 # The following should print "$(X)". It should not be expanded further.
34 Y := $(dollar)(X)
35 $(warning,$(Y))
36
37 # The following should print "$(X)" as well.
38 Y = $(dollar)(X)
39 $(warning,$(Y))
40
41 # The following should print "$(".
42 # It should not be emit "unterminated reference" error.
43 unterminated := $(dollar)(
44 $(warning,$(unterminated))