压缩列表
Version = GNU make
这个 pairmap
函数有三个参数:
- 功能名称
- 第一个以空格分隔的列表
- 第二个以空格分隔的列表
对于列表中的每个压缩元组,它将使用以下参数调用该函数:
- 第一个列表中的元组元素
- 第二个列表中的元组元素
它将扩展为以空格分隔的函数扩展列表。
list-rem = $(wordlist 2,$(words $1),$1)
pairmap = $(and $(strip $2),$(strip $3),$(call \
$1,$(firstword $2),$(firstword $3)) $(call \
pairmap,$1,$(call list-rem,$2),$(call list-rem,$3)))
例如,这个:
LIST1 := foo bar baz
LIST2 := 1 2 3
func = $1-$2
all:
@echo $(call pairmap,func,$(LIST1),$(LIST2))
.PHONY: all
将打印 foo-1 bar-2 baz-3
。