| # 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)) |