Linux-libre 5.7.6-gnu
[librecmc/linux-libre.git] / scripts / kconfig / tests / preprocess / variable / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 # Shorthand
4 warning = $(warning-if,y,$(1))
5
6 # Simply expanded variable.
7 X := 1
8 SIMPLE := $(X)
9 X := 2
10 $(warning,SIMPLE = $(SIMPLE))
11
12 # Recursively expanded variable.
13 X := 1
14 RECURSIVE = $(X)
15 X := 2
16 $(warning,RECURSIVE = $(RECURSIVE))
17
18 # Append something to a simply expanded variable.
19 Y := 3
20 SIMPLE += $(Y)
21 Y := 4
22 $(warning,SIMPLE = $(SIMPLE))
23
24 # Append something to a recursively expanded variable.
25 Y := 3
26 RECURSIVE += $(Y)
27 Y := 4
28 $(warning,RECURSIVE = $(RECURSIVE))
29
30 # Use += operator to an undefined variable.
31 # This works as a recursively expanded variable.
32 Y := 3
33 UNDEFINED_VARIABLE += $(Y)
34 Y := 4
35 $(warning,UNDEFINED_VARIABLE = $(UNDEFINED_VARIABLE))
36
37 # You can use variable references for the lefthand side of assignment statement.
38 X := A
39 Y := B
40 $(X)$(Y) := 5
41 $(warning,AB = $(AB))
42
43 # User-defined function.
44 greeting = $(1), my name is $(2).
45 $(warning,$(greeting,Hello,John))
46
47 # The number of arguments is not checked for user-defined functions.
48 # If some arguments are optional, it is useful to pass fewer parameters.
49 # $(2) will be blank in this case.
50 $(warning,$(greeting,Hello))
51
52 # Unreferenced parameters are just ignored.
53 $(warning,$(greeting,Hello,John,ignored,ignored))