1# SPDX-License-Identifier: GPL-2.0 2 3# Shorthand 4warning = $(warning-if,y,$(1)) 5 6# Simply expanded variable. 7X := 1 8SIMPLE := $(X) 9X := 2 10$(warning,SIMPLE = $(SIMPLE)) 11 12# Recursively expanded variable. 13X := 1 14RECURSIVE = $(X) 15X := 2 16$(warning,RECURSIVE = $(RECURSIVE)) 17 18# Append something to a simply expanded variable. 19Y := 3 20SIMPLE += $(Y) 21Y := 4 22$(warning,SIMPLE = $(SIMPLE)) 23 24# Append something to a recursively expanded variable. 25Y := 3 26RECURSIVE += $(Y) 27Y := 4 28$(warning,RECURSIVE = $(RECURSIVE)) 29 30# Use += operator to an undefined variable. 31# This works as a recursively expanded variable. 32Y := 3 33UNDEFINED_VARIABLE += $(Y) 34Y := 4 35$(warning,UNDEFINED_VARIABLE = $(UNDEFINED_VARIABLE)) 36 37# You can use variable references for the lefthand side of assignment statement. 38X := A 39Y := B 40$(X)$(Y) := 5 41$(warning,AB = $(AB)) 42 43# User-defined function. 44greeting = $(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)) 54