44 lines · 1.2 KB · Text
RawDownload
# SPDX-License-Identifier: GPL-2.0 # Shorthandwarning = $(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))