forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
44 lines
1.2 KiB
# 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))
|
|
|