Вы можете перечислить сгенерированные файлы в переменной make и использовать ее для очистки только этих:
PDF := $(wildcard *.pdf)
TEXT := $(patsubst %.pdf,%.txt,$(PDF))
...
clean:
rm -f $(TEXT)
Или, если вы предпочитаете более компактную (но немного менее читаемую) форму:
clean:
rm -f $(patsubst %.pdf,%.txt,$(wildcard *.pdf))
Конечно, это работает, только если нет пары {foo.pdf,foo.txt}
, для которой вы хотите сохранить foo.txt
от удаления на make clean
.
Примечание: использование переменных make в таком случае обычно является хорошей идеей, поскольку они могут быть общими для различных правил. Пример:
PDF := $(wildcard *.pdf)
TEXT := $(patsubst %.pdf,%.txt,$(PDF))
.PHONY: all clean
all: $(TEXT)
$(TEXT): %.txt: %.pdf
pdftotext $< $@
clean:
rm -f $(TEXT)