Makefile для обработки содержимого папки - PullRequest
0 голосов
/ 09 марта 2020

У меня есть папка с некоторыми файлами уценок, которые я хочу обработать с помощью pando c и вывести их в другую папку для сайта Jekyll. Я пытаюсь использовать следующий Makefile:

MARKDOWN = $(wildcard *.md)

jekyll-build : _posts/$(MARKDOWN)
        bundle exec jekyll build

_posts/%.md : source/%.md
        pandoc -s -t markdown-citations -o $@ $<

Однако вместо того, чтобы искать содержимое папки _posts, make ищет любые файлы * .md в текущем рабочий каталог (где у меня есть файл index.md), затем жалуется, что не может найти _posts/index.md. Из этого вопроса Я понял, что это ожидаемое поведение шаблонных правил, поэтому мой вопрос: как мне заставить make найти все существующие файлы в папке source и запустить рецепт для каждого из них? из них?

1 Ответ

1 голос
/ 09 марта 2020
MARKDOWN = $(wildcard source/*.md)

POSTS := $(patsubst source/%,_posts/%, $(MARKDOWN))

jekyll-build : $(POSTS)                                                                                  
    ...

_posts/%.md : source/%.md                                                                                
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...