Условное добавление к переменной внутри цели Makefile - PullRequest
3 голосов
/ 27 января 2010

У меня есть 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".

Как я могу условно добавить переменную?

1 Ответ

7 голосов
/ 27 января 2010
LIST = item1

.PHONY: targetMain targetA targetB

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

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

targetA targetB: targetMain
...