makefile 在每次目标调用时增加参数值

makefile increase argument value on each target call

我用我想自动增加补丁值的版本制作文件,当我 运行make pr

TAG = 0.0.1


pr:
    docker build -t $(REGISTRY)/$(APP):$(TAG) .

我想每次 运行 make pr 它都会增加数字, 没关系,只增加最后一个数字

喜欢make pr

TAG = 0.0.2

又过了8次

TAG = 0.0.10

还有90个

TAG = 0.0.100

使用 GNU make 你可以做到:

TAG = 0.0.${PR}

-include .pr.mk

PR ?= 0

pr: FORCE
    @echo ${TAG}

.pr.mk:
    @rm -f $@
    @echo "PR=$$(( ${PR} + 1 ))" > $@

FORCE:
.PHONY: FORCE .pr.mk

您可以使用 shell 变量而不是 Make 变量:

pr:
    read TAG < nnn; docker build -t $(REGISTRY)/$(APP):0.0.$$TAG; echo $$((TAG+1)) > nnn

编辑: 这假定名为 nnn 的文件最初包含“1”。