将路径组合到 makefile 中的文件名数组

Combine path to an array of filenames in makefile

我在 Makefile 变量中有一个文件列表。我用它来调用一些隐式规则。

短裤:

 CHAPTERS_FOLDER = chapters
 CHAPTERS := $(CHAPTERS_FOLDER)/lesson1.Md $(CHAPTERS_FOLDER)/lesson2.Md [...] $(CHAPTERS_FOLDER)/lesson23.Md

$(CHAPTERS_FOLDER)/%.Md : %.xml
    mkdir -p $(CHAPTERS_FOLDER)
    pandoc -f docbook -t markdown_strict $< -o $@

$(CHAPTERS_FOLDER)/%.Md : %.odt
    mkdir -p $(CHAPTERS_FOLDER)
    pandoc -t markdown_strict $< -o $@

有没有办法不必手动将 CHAPTERS_FOLDER 添加到 CHAPTER 中的每个项目?像弦的笛卡尔积之类的东西...

是否有更好的方法来设计这些构建文件的规则?

为什么不直接使用 addprefix

CHAPTERS = lesson1.Md lesson2.Md lesson3.Md ...

CHAPTER_TARGETS = $(addprefix $(CHAPTERS_FOLDER)/,$(CHAPTERS))

阅读 file name functions 手册的前几段,了解它们对 列表 文件名而不是单个文件名进行操作。