У меня есть Makefile со следующим типом правила:GNU Make и шаблоны - отсутствующие файлы
%.html:
./generate-images.py > [email protected]
make $(patsubst %.png,%.gif,$(wildcard *.png))
generate-images
скрипт записывает не только файл HTML (стандартный вывод), но несколько .png файлов в текущей директории , Цель здесь состоит в том, чтобы преобразовать их в .gif. (не совсем, но это пример)
Это работает, если я вызываю его непосредственно. Проблема в том, что: если я вызываю его из другого правила, где foo.html
является зависимостью, заявление подстановки не может найти файлы. Другими словами, он просто называется make
без аргументов, что я не хочу здесь.
В чем дело с шаблоном? Или, есть ли лучший способ сделать это?
Это то, к чему мой пост был. – Novelocrat
+1 для четкого объяснения проблемы с подстановочными знаками, -1 для чрезмерно сложных и ошибочных правил (даже после редактирования) и +1 для неожиданного нового понимания: вы действительно не можете сделать это без рекурсии! – Beta
@Beta: Мне бы очень хотелось узнать, какие ошибки остались в моих правилах! Пожалуйста, брось подсказку - я отредактирую свой ответ и даю вам правильную атрибуцию. BTW, на самом деле, вы * можете * сделать это без рекурсии :-) Вот почему я удалил это заявление со своего поста :-) Но этот woul сделает мой пост еще более сложным ... –