Один из подходов заключается в явном указании 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
на функцию make
$(wildcard)
, потому что для этого она и нужна.Ваша команда pandoc
больше не нуждается в epubs/
перед $@
, потому что этот каталог теперь является частью цели.И я немного переупорядочил по своему вкусу.