Как задать динамичные параметры в Makefile?

В Makefile есть несколько способов задать динамичные параметры. Один из самых распространенных способов - использовать переменные среды или аргументы командной строки.

Для использования переменных среды в Makefile, вам нужно определить их перед запуском make. Например, если вы хотите определить переменную VERSION, вы можете сделать это следующим образом:

export VERSION := 1.0.0

И затем использовать $(VERSION) внутри Makefile в нужных местах, например:

build:
    docker build -t myimage:$(VERSION) .

Теперь, при вызове make build, Makefile будет использовать значение переменной VERSION для построения образа Docker.

Еще один способ - использовать аргументы командной строки. Синтаксис для передачи аргументов в Makefile следующий:

make target ARG_NAME=value

Внутри Makefile, вы можете получить значение аргумента с помощью $(ARG_NAME). Например, если вы хотите передать аргумент VERSION, вы можете сделать это следующим образом:

build:
    docker build -t myimage:$(VERSION) .

Теперь, при вызове make build VERSION=1.0.0, значение переменной VERSION будет равно 1.0.0.

Вы также можете смешивать оба подхода, используя переменные среды и аргументы командной строки вместе. Например, вы можете определить переменную среды по умолчанию и использовать аргументы командной строки для ее переопределения:

export VERSION ?= 1.0.0

build:
    docker build -t myimage:$(VERSION) .

Теперь, если вы вызываете make build, будет использовано значение переменной среды по умолчанию 1.0.0. Однако, если вы вызываете make build VERSION=2.0.0, значение переменной VERSION будет переопределено на 2.0.0.

Таким образом, в Makefile есть несколько способов задать динамичные параметры, и вы можете выбрать подход, который лучше всего подходит для вашей конкретной ситуации.