1

私は GNU Make を使用しており、エコーされる各レシピ コマンドにプレフィックスを追加したいと考えています。たとえば、次のメイクファイルがあるとします。

foo:
    echo bar
    echo baz

実際の動作:

$ make -B foo
echo bar
bar
echo baz
baz

望ましい動作:

$ make -B foo
+ echo bar
bar
+ echo baz
baz

(この場合、+はプレフィックスです。)

プレフィックスが何であるかを構成できればいいのですが、それは必須ではありません。

4

2 に答える 2

3

これは、Make が非常に自然に行うことではありません。私はあなたが恐ろしいクラッジよりもうまくできるとは思わない:

define trick
    @echo + $(1)
    @$(1)
endef

foo:
    $(call trick, echo bar)
    $(call trick, echo baz)
于 2013-02-25T19:30:41.583 に答える
2

SHELL最も簡単な方法は、 make変数を変更することです。この場合、-xパラメータを指定してシェルを実行するとうまくいくはずです。何かのようなもの

$ make SHELL:='bash -x'

あるいは

$ make .SHELLFLAGS:='-x -c'

この場合。より洗練された出力の場合、簡単なシェルスクリプトが適切です。

$ cat script
#!/bin/bash
echo "EXECUTING [$*]"
$*

に続く

$ make SHELL:=./script .SHELLFLAGS:=
于 2013-02-27T19:36:32.230 に答える