使用 $(notdir ...) 处理 makefile 中的文件列表

Process list of files in makefile with $(notdir ...)

我想将 'notdir' 函数应用于从通配符匹配中获得的文件列表。虽然 '$(notdir $(wildcard dir/*.tst))' 有效,但我没有设法首先将列表存储在变量(下面 Makefile 中的 'FILES' )中,然后由 $(notdir 处理。 ..).直接使用变量 ('$(notdir $(FILES))') 会返回通配符,使用值 ('$(notdir $(value $(FILES)))') 会产生空结果。

.PHONY: show

FILES := dir/*.tst
FILES2 := dir/a.tst dir/b.tst
#NAMES := $(notdir $(FILES))
NAMES1 := $(notdir $(value $(FILES)))
NAMES2 := $(notdir $(FILES2))
NAMES3 := $(notdir $(wildcard dir/*.tst))

show:
    @echo "FILES: " $(FILES)
    @echo "NAMES1: " $(NAMES1)
    @echo "NAMES2: " $(NAMES2)
    @echo "NAMES3: " $(NAMES3)

我也尝试了 $(notdir $(eval $$(FILES))),但这会导致 "missing separator" 错误。

我在这里错过了什么?我原以为价值会完成这项工作...

尝试以下操作:

FILES := $(wildcard dir/*.tst)
NAMES := $(notdir ${FILES})