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

问题描述 投票:0回答:1

我在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中的每个项目?有点像笛卡尔笛卡尔积或其他东西...

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

makefile gnu-make
1个回答
1
投票

为什么不只使用addprefix

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

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

阅读file name functions上手册的前几段,以了解它们对文件名而不是单个文件名的[[列表起作用。

© www.soinside.com 2019 - 2024. All rights reserved.