我有一个随机字符串,它生成并用于多个 make 目标。我的Makefile
样子:
VALUE := $(shell strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n')
target_0:
echo ${VALUE}
$(MAKE) target_1
target_1:
echo ${VALUE}
我希望VALUE
所有目标都相同(设置一次并在整个文件中引用其值),但使用我当前的实现,我得到以下结果(值不同):
K29p6whTYtrNIrzkaNkF75qtc2YQEq
hcXH00hzYMRa36hp55wBKCRH0YfJvp
如何VALUE
在顶部进行设置,Makefile
以便仅对所有目标进行评估和设置一次,而不是每次调用目标时?
$(MAKE) target_1
是一个递归的 make 调用,一个从顶部make
读取的全新过程Makefile
。
如果你真的想这样做,你可以传递VALUE=${VALUE}
给递归 make,它会优先于:=
赋值,
$(MAKE) target_1 VALUE=${VALUE}
作为递归的替代方法,您可以使用依赖项依次调用一个规则,
target_0: target_1
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句