kbuild: rename cmd_$@ to savedcmd_$@ in *.cmd files
The cmd-check macro compares $(cmd_$@) and $(cmd_$1), but a pitfall is
that you cannot use cmd_<target> as the variable name for the command.
For example, the following code will not work in the top Makefile
or ./Kbuild.
quiet_cmd_foo = GEN $@
cmd_foo = touch $@
targets += foo
foo: FORCE
$(call if_changed,foo)
In this case, both $@ and $1 are expanded to 'foo', so $(cmd_check)
is always empty.
We do not need to use the same prefix for cmd_$@ and cmd_$1.
Rename the former to savedcmd_$@.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
This commit is contained in:
@@ -70,7 +70,7 @@
|
||||
*
|
||||
* It first generates a line
|
||||
*
|
||||
* cmd_<target> = <cmdline>
|
||||
* savedcmd_<target> = <cmdline>
|
||||
*
|
||||
* and then basically copies the .<target>.d file to stdout, in the
|
||||
* process filtering out the dependency on autoconf.h and adding
|
||||
@@ -343,7 +343,7 @@ int main(int argc, char *argv[])
|
||||
target = argv[2];
|
||||
cmdline = argv[3];
|
||||
|
||||
printf("cmd_%s := %s\n\n", target, cmdline);
|
||||
printf("savedcmd_%s := %s\n\n", target, cmdline);
|
||||
|
||||
buf = read_file(depfile);
|
||||
parse_dep_file(buf, target);
|
||||
|
||||
Reference in New Issue
Block a user