eval
определенно не прав.Что делать, если кто-то запускает make server shell
?Теперь у shell
будет установлен этот аргумент, потому что eval
сбрасывает его глобально.
Есть ли причина, по которой вы не можете просто написать:
server:
$(RUN) --service-ports
?В общем, если вам нужна переменная, настроенная для каждой цели, у вас есть два варианта:
Вы можете использовать переменные, ориентированные на цель :
server: ARGS = --service-ports
server:
$(RUN)
Или выможно использовать рекурсивно раскрытые переменные :
server_ARGS = --service-ports
RUN = docker-compose run $($@_ARGS) --rm service
server:
$(RUN)