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