Мне надоело искать магические символы в make и я решил попробовать waf .
Я пытаюсь использовать калибр для создания электронных книг, и я хотел бы создать wscript, который принимает файл, запускает программу с некоторыми аргументами, которые включают этот файл, и производит вывод. Waf следует собирать только в том случае, если входной файл новее выходного.
В make я написал бы make-файл так:
%.epub: %.recipe
ebook-convert $ .epub --test -vv --debug-pipeline debug
Где% - магический символ для базового имени файла и $ символ для выходного имени файла (basename.epub).
Я мог бы позвонить make soverflow.epub
, и он запустил бы ebook-convert на soverflow.recipe. Если .recipe не изменился со времени последней сборки, он ничего бы не сделал.
Как мне сделать что-то похожее в waf?
(Почему waf? Потому что он использует настоящий язык, который я уже знаю. Если это действительно легко использовать в scons, это тоже хороший ответ.)