diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2018-05-28 11:21:52 +0200 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2018-05-28 20:31:19 +0200 |
commit | 82bc8bd82e5c4e6e53d4ba20bb89cec6a91d8702 (patch) | |
tree | 537b0b2eeb2e604b7399ea9dc7d84a93e05e76b5 /scripts/kconfig/zconf.l | |
parent | kconfig: support append assignment operator (diff) | |
download | linux-82bc8bd82e5c4e6e53d4ba20bb89cec6a91d8702.tar.xz linux-82bc8bd82e5c4e6e53d4ba20bb89cec6a91d8702.zip |
kconfig: expand lefthand side of assignment statement
Make expands the lefthand side of assignment statements. In fact,
Kbuild relies on it since kernel makefiles mostly look like this:
obj-$(CONFIG_FOO) += foo.o
Do likewise in Kconfig.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'scripts/kconfig/zconf.l')
-rw-r--r-- | scripts/kconfig/zconf.l | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l index a6cbe2d06d01..25bd2b89fe3f 100644 --- a/scripts/kconfig/zconf.l +++ b/scripts/kconfig/zconf.l @@ -114,6 +114,13 @@ n [A-Za-z0-9_-] yylval.string = text; return T_VARIABLE; } + ({n}|$)+ { + /* this token includes at least one '$' */ + yylval.string = expand_token(yytext, yyleng); + if (strlen(yylval.string)) + return T_VARIABLE; + free(yylval.string); + } "=" { BEGIN(ASSIGN_VAL); yylval.flavor = VAR_RECURSIVE; return T_ASSIGN; } ":=" { BEGIN(ASSIGN_VAL); yylval.flavor = VAR_SIMPLE; return T_ASSIGN; } "+=" { BEGIN(ASSIGN_VAL); yylval.flavor = VAR_APPEND; return T_ASSIGN; } |