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