使用 GNU make 对版本字符串进行文本替换

text substitution on version strings with GNU make

这个问题是针对 GNU make 的。给定 makefile 中的版本字符串,例如:

VER = 1.23.345.6

是否可以从字符串中去除尾随部分?假设期望的结果是前 2 个组件,即 (major.minor):

VERPREFIX = 1.23

虽然它可以通过 $(shell) 使用支持正则表达式的命令行程序(例如 sedperl)来实现,但我想知道本机文本过滤功能是否在GNU make 可以达到同样的效果。

尝试:

# Create a variable $S containing a space
E :=
S := $E $E

# Get the first and second elements of a version string
VERPREFIX := $(subst $S,.,$(wordlist 1,2,$(subst .,$S,$(VER))))