45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0
 | |
| 
 | |
| # Shorthand
 | |
| warning = $(warning-if,y,$(1))
 | |
| 
 | |
| # You can not pass commas directly to a function since they are treated as
 | |
| # delimiters. You can use the following trick to do so.
 | |
| comma   := ,
 | |
| $(warning,hello$(comma) world)
 | |
| 
 | |
| # Like Make, single quotes, double quotes, spaces are treated verbatim.
 | |
| # The following prints the text as-is.
 | |
| $(warning,  ' " '"   ' ''' "'")
 | |
| 
 | |
| # Unlike Make, '$' has special meaning only when it is followed by '('.
 | |
| # No need to escape '$' itself.
 | |
| $(warning,$)
 | |
| $(warning,$$)
 | |
| $ := 1
 | |
| $(warning,$($))
 | |
| 
 | |
| # You need a trick to escape '$' followed by '('
 | |
| # The following should print "$(X)". It should not be expanded further.
 | |
| dollar := $
 | |
| $(warning,$(dollar)(X))
 | |
| 
 | |
| # You need a trick to treat unbalanced parentheses.
 | |
| # The following should print "(".
 | |
| left_paren := (
 | |
| $(warning,$(left_paren))
 | |
| 
 | |
| # A simple expanded should not be expanded multiple times.
 | |
| # The following should print "$(X)". It should not be expanded further.
 | |
| Y := $(dollar)(X)
 | |
| $(warning,$(Y))
 | |
| 
 | |
| # The following should print "$(X)" as well.
 | |
| Y = $(dollar)(X)
 | |
| $(warning,$(Y))
 | |
| 
 | |
| # The following should print "$(".
 | |
| # It should not be emit "unterminated reference" error.
 | |
| unterminated := $(dollar)(
 | |
| $(warning,$(unterminated))
 |