29

makefile内にターゲットがあります:

all: $(TARGETS)

all環境変数を設定するという点だけが異なるバリアントが必要です。何かのようなもの:

all-abc: $(TARGETS)
    ABC=123

ただし、変数が設定される前に依存関係が処理されるため、これは機能しません。環境変数を設定するだけの実際の依存関係の前に別の依存関係を持つことを考えましたが、環境がターゲット間で持続するとは思いません。つまり、

abc:
    ABC=123
all-abc: abc $(TARGETS)

動作しません。私が最終的にやりたいのは

$ make all-abc

それ以外の

$ ABC=123 make

このような環境変数を設定することは可能ですか?

(GNU Make 3.82)

4

1 に答える 1

44

これを試して:

all:
    @#usual rule, if you call `make all-abc`, this will print "123"
    @echo $(ABC)

all-abc: ABC=123
all-abc: all
    @#what you put here it's going to be executed after the rule `all`
于 2013-03-05T17:49:30.160 に答える