我正在使用GNU Make,并希望它在每个配方命令中添加前缀,因为它已经回显。例如,给定这个makefile:
foo:
echo bar
echo baz
实际行为:
$ make -B foo
echo bar
bar
echo baz
baz
期望的行为:
$ make -B foo
+ echo bar
bar
+ echo baz
baz
(在这种情况下,+
是前缀。)
如果我能配置前缀是什么会很好,但这不是必需的。
答案 0 :(得分:3)
这不是Make非常自然的事情。我认为你不能比一个可怕的kludge做得更好:
define trick
@echo + $(1)
@$(1)
endef
foo:
$(call trick, echo bar)
$(call trick, echo baz)
答案 1 :(得分:2)
最简单的方法是更改SHELL
制作变量。在这种情况下,使用-x
参数运行shell应该可以解决问题。像
$ make SHELL:='bash -x'
甚至
$ make .SHELLFLAGS:='-x -c'
在这种情况下。对于更复杂的输出,快速shell脚本符合要求:
$ cat script
#!/bin/bash
echo "EXECUTING [$*]"
$*
接着是
$ make SHELL:=./script .SHELLFLAGS:=