TEMPDIR := $(shell mktemp)
Проблема в том, что каждый раз, когда вы запускаете make, он создает временный файл.Независимо от того, используете вы его или нет, и независимо от того, какую цель вы используете.Это означает: либо вы удалите этот файл в каждой цели, либо вы не будете удалены в любое время.
Я предпочитаю добавить параметр -u:
TEMPDIR := $(shell mktemp -u)
Это заставляет mktemp создатьуникальное имя файла без создания файла.Теперь вы можете создать файл в нужных вам целях.Конечно, есть вероятность возникновения условий гонки, когда файл используется другим процессом перед его созданием.Это маловероятно, но не использует его в команде с повышенными правами, как make install
.