Условные зависимости в GNU Make - PullRequest
0 голосов
/ 22 января 2020

Я бы хотел, чтобы у моей цели были условные зависимости. Ниже приведен пример, который не работает

everything: foo bar \
ifndef EXTRA
  biz baz
endif
    recipe_to_do_stuff 

Так что, если я запущу make, получится everything со всеми зависимостями foo bar biz baz. Но если бы я запустил make EXTRA=true, то получилось бы everything только с foo bar.

Это возможно? У меня могут быть условные выражения, которые запускают две отдельные команды, но у моей цели много возможных зависимостей, и я не хочу менять два места, если им нужны обновления. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 25 января 2020

Это был мой окончательный ответ, чтобы иметь встроенное решение.

everything: foo bar $(if $(EXTRA), biz baz)
    recipe_to_do_stuff 
0 голосов
/ 23 января 2020

Это должно работать.

ifndef EXTRA
  REQ=biz baz
endif

everything: foo bar ${REQ}
    recipe_to_do_stuff
...