Makefile для pandoc с файлом ссылок

Я пытаюсь написать Makefile для pandoc. Я хочу иметь возможность ввести make filename.ext, и Makefile автоматически скомпилируется из filename.txt в filename.ext. Имя файла может быть любым с именем .txt. Эта часть легкая. например У меня есть набор правил, например:

%.pdf: %.txt
    pandoc -s --smart -f markdown -o $@ $<

%.html: %.txt
    pandoc -s --smart --bibliography $(bib) -f markdown -t html --standalone -o $@ $<

%.docx: %.txt
    pandoc -s --smart --bibliography references.bib -f markdown -t docx -o $@ $<

%.tex: %.txt
    pandoc -s --smart --bibliography references.bib -o $@ $<

Однако я также хочу добавить цитаты из того же файла с именем filename.bib. Итак, если я наберу make fudge.pdf, pandoc преобразует fudge.txt в fudge.pdf, включив цитаты bibtex из fudge.bib. Как мне это сделать? Командная строка примерно такая

pandoc -s --smart --bibliography filename.bib -f markdown -o $@ $<

... но я не могу понять, как получить fudge.bib из fudge.txt, не сделав что-то вроде этого:

pandoc -s --smart --bibliography $(subst .txt,.bib,$<) -f markdown -o $@ $<

Это будет работать, но а) я хочу сначала выполнить некоторую предварительную обработку файла *.bib (а именно, сгенерировать его и добавить отсутствующие ссылки) и б) этот макрос нужен для каждой строки. Есть ли что-нибудь более изящное?


person Puzzled79    schedule 10.09.2012    source источник