# SPDX-License-Identifier: GPL-2.0 # Shorthand warning = $(warning-if,y,$(1)) # Simply expanded variable. X := 1 SIMPLE := $(X) X := 2 $(warning,SIMPLE = $(SIMPLE)) # Recursively expanded variable. X := 1 RECURSIVE = $(X) X := 2 $(warning,RECURSIVE = $(RECURSIVE)) # Append something to a simply expanded variable. Y := 3 SIMPLE += $(Y) Y := 4 $(warning,SIMPLE = $(SIMPLE)) # Append something to a recursively expanded variable. Y := 3 RECURSIVE += $(Y) Y := 4 $(warning,RECURSIVE = $(RECURSIVE)) # Use += operator to an undefined variable. # This works as a recursively expanded variable. Y := 3 UNDEFINED_VARIABLE += $(Y) Y := 4 $(warning,UNDEFINED_VARIABLE = $(UNDEFINED_VARIABLE)) # You can use variable references for the lefthand side of assignment statement. X := A Y := B $(X)$(Y) := 5 $(warning,AB = $(AB)) # User-defined function. greeting = $(1), my name is $(2). $(warning,$(greeting,Hello,John)) # The number of arguments is not checked for user-defined functions. # If some arguments are optional, it is useful to pass fewer parameters. # $(2) will be blank in this case. $(warning,$(greeting,Hello)) # Unreferenced parameters are just ignored. $(warning,$(greeting,Hello,John,ignored,ignored))