scripts/kconfig/tests/preprocess/escape/Kconfig

Source file repositories/reference/linux-study-clean/scripts/kconfig/tests/preprocess/escape/Kconfig

File Facts

System
Linux kernel
Corpus path
scripts/kconfig/tests/preprocess/escape/Kconfig
Extension
[no extension]
Size
1231 bytes
Lines
45
Domain
Support Tooling And Documentation
Bucket
scripts
Inferred role
Support Tooling And Documentation: build/configuration rule
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

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

Annotation

Implementation Notes