我想要在所有任务中使用相同的值,但是变量会为每个任务进行评估。如何避免这种情况?
版本:GNU Make 4.1
Makefile 内容:
SHELL = /bin/bash -ex
BUILD_TIMESTAMP ?= $(shell date '+%Y%m%d%H%M%S')
VERSION ?= 1.2-${BUILD_TIMESTAMP}
t1:
echo ${VERSION}
sleep 1
t2:
echo ${VERSION}
sleep 1
输出:
$ make t1 t2
date +%Y%m%d%H%M%S
echo 1.2-20170803143838
+ echo 1.2-20170803143838
1.2-20170803143838
sleep 1
+ sleep 1
+ date +%Y%m%d%H%M%S
echo 1.2-20170803143839
+ echo 1.2-20170803143839
1.2-20170803143839
sleep 1
+ sleep 1