|
@@ -0,0 +1,53 @@
|
|
|
+# 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))
|