Я использую make для создания эскизов из файлов изображений, которые, в свою очередь, будут использоваться для создания веб-страниц.
Иногда я удаляю исходное изображение и хочу, чтобы миниатюра удалялась автоматически. Очевидным способом сделать это было бы просто добавить правило, в котором цель и предпосылка меняются местами, но это вызывает циклическую ссылку и сообщения, подобные этому:
make[2]: Circular image123.jpg ‹- thumbnails/image123.jpg зависимость удалена.
Есть ли способ сделать это или я должен использовать отдельный make-файл? На самом деле пытался, но у меня тоже не получается. Я пробовал это:
# -*- mode: makefile -*-
images = $(wildcard *.jpg)
thumbnails = $(wildcard thumbnails/*.jpg)
.PHONY: all
all : $(images)
# Delete thumbnails if source is not present.
%.jpg: thumbnails/%.jpg
[ -f "$@" ] || rm "$<"
Он ничего не сделал, кроме как напечатал одну строку, относящуюся к изображению, которое нужно сохранить.
Подводя итог: есть ли способ использовать make для удаления целей, которые не были бы созданы, если бы они отсутствовали?