从另一个文件夹收集文件

时间:2018-10-14 08:32:02

标签: makefile pandoc

我开发了一个脚本,可将文件夹中的所有降价文件转换为ePub并将其放置在shared中。

尽管如此,我还是希望将文件放在epubs子文件夹中,而不要放在主目录(markdowns所在的目录)中。

makefile

我应该如何修改我的代码?

.
├── epubs
│   └── blabla.epubs
├── makefile
└── markdowns
    └── blabla.pd

1 个答案:

答案 0 :(得分:2)

一种方法是在模式规则中明确告诉make .pd目标的.epub先决条件在哪里:

MARKDOWN_DIR := markdowns
EPUB_DIR := epubs

MARKDOWNS := $(wildcard $(MARKDOWN_DIR)/*.pd)
EPUBS := $(subst $(MARKDOWN_DIR),$(EPUB_DIR),$(MARKDOWNS:.pd=.epub))

$(EPUB_DIR)/%.epub: $(MARKDOWN_DIR)/%.pd
    pandoc --from markdown --to epub --smart $< -o $@

.PHONY: all clean

all: $(EPUBS)

请注意两个小的附加更改。我用find的{​​{1}}函数替换了您的shell make命令,因为这就是它的作用。您的$(wildcard)命令不再需要pandoc前面的epubs/,因为该目录现在是目标的一部分。然后我根据自己的喜好重新排序。