1*2bece88fSMasahiro Yamada# SPDX-License-Identifier: GPL-2.0 2*2bece88fSMasahiro Yamada 3*2bece88fSMasahiro Yamada# Shorthand 4*2bece88fSMasahiro Yamadawarning = $(warning-if,y,$(1)) 5*2bece88fSMasahiro Yamada 6*2bece88fSMasahiro Yamada# You can not pass commas directly to a function since they are treated as 7*2bece88fSMasahiro Yamada# delimiters. You can use the following trick to do so. 8*2bece88fSMasahiro Yamadacomma := , 9*2bece88fSMasahiro Yamada$(warning,hello$(comma) world) 10*2bece88fSMasahiro Yamada 11*2bece88fSMasahiro Yamada# Like Make, single quotes, double quotes, spaces are treated verbatim. 12*2bece88fSMasahiro Yamada# The following prints the text as-is. 13*2bece88fSMasahiro Yamada$(warning, ' " '" ' ''' "'") 14*2bece88fSMasahiro Yamada 15*2bece88fSMasahiro Yamada# Unlike Make, '$' has special meaning only when it is followed by '('. 16*2bece88fSMasahiro Yamada# No need to escape '$' itself. 17*2bece88fSMasahiro Yamada$(warning,$) 18*2bece88fSMasahiro Yamada$(warning,$$) 19*2bece88fSMasahiro Yamada$ := 1 20*2bece88fSMasahiro Yamada$(warning,$($)) 21*2bece88fSMasahiro Yamada 22*2bece88fSMasahiro Yamada# You need a trick to escape '$' followed by '(' 23*2bece88fSMasahiro Yamada# The following should print "$(X)". It should not be expanded further. 24*2bece88fSMasahiro Yamadadollar := $ 25*2bece88fSMasahiro Yamada$(warning,$(dollar)(X)) 26*2bece88fSMasahiro Yamada 27*2bece88fSMasahiro Yamada# You need a trick to treat unbalanced parentheses. 28*2bece88fSMasahiro Yamada# The following should print "(". 29*2bece88fSMasahiro Yamadaleft_paren := ( 30*2bece88fSMasahiro Yamada$(warning,$(left_paren)) 31*2bece88fSMasahiro Yamada 32*2bece88fSMasahiro Yamada# A simple expanded should not be expanded multiple times. 33*2bece88fSMasahiro Yamada# The following should print "$(X)". It should not be expanded further. 34*2bece88fSMasahiro YamadaY := $(dollar)(X) 35*2bece88fSMasahiro Yamada$(warning,$(Y)) 36*2bece88fSMasahiro Yamada 37*2bece88fSMasahiro Yamada# The following should print "$(X)" as well. 38*2bece88fSMasahiro YamadaY = $(dollar)(X) 39*2bece88fSMasahiro Yamada$(warning,$(Y)) 40*2bece88fSMasahiro Yamada 41*2bece88fSMasahiro Yamada# The following should print "$(". 42*2bece88fSMasahiro Yamada# It should not be emit "unterminated reference" error. 43*2bece88fSMasahiro Yamadaunterminated := $(dollar)( 44*2bece88fSMasahiro Yamada$(warning,$(unterminated)) 45