将路径组合到 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 手册的前几段,了解它们对 列表 文件名而不是单个文件名进行操作。
我在 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 手册的前几段,了解它们对 列表 文件名而不是单个文件名进行操作。