5

次のようなGNU Makefileがあります。

LIST = item1

.PHONY: targetMain targetA targetB preA preB

targetMain:
# DO all the work in here
    echo $(LIST)

targetA: preA targetMain
targetB: preB targetMain

preA:
LIST += itemA

preB:
LIST += itemB

つまり、make targetA または make targetB のいずれかを実行します。どちらも非常に似たようなことをしますが、アイテムのリストが異なります。問題は、変数が条件付きで追加されず、常に追加されることです。つまり、出力は常に「item1 itemA itemB」になります。

変数に条件付きで追加するにはどうすればよいですか?

4

1 に答える 1

13
LIST = item1

.PHONY: targetMain targetA targetB

targetMain:
# DO all the work in here
    echo $(LIST)

targetA: LIST+=itemA
targetB: LIST+=itemB

targetA targetB: targetMain
于 2010-01-27T18:04:55.380 に答える