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