54 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# 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))
 |