Я хотел бы создать только одно правило Makefile вместо того, чтобы создавать одно и то же правило для разных файлов одного типа.
Рассмотрим небольшой пример, где files
объявляет две Python -Notebooks и каждую из этих Записных книжек должны быть преобразованы в Python -скрипт (.py
). Это можно сделать с помощью команды jupyter nbconvert --to script FILE
. Makefile, который я пытался создать, выглядит следующим образом, но не работает:
files = A.ipynb B.ipynb
all: convert
convert: $(files)
jupyter nbconvert --to script $< # How to define $< as the changed file?
Теперь, когда меняется A.ipynb
, я хотел бы команду
jupyter nbconvert --to script A.ipynb
подлежит исполнению. Можно ли это сделать в рамках одного простого правила, как «предложено» выше? Я могу написать Makefile для выполнения задачи, но он длиннее и масштабируется с размером files
:
all: A.py B.py
A.py: A.ipynb
jupyter nbconvert --to script $<
B.py: B.ipynb
jupyter nbconvert --to script $<