Definir la variable make en el tiempo de ejecución de la regla.

En mi GNUmakefile, me gustaría tener una regla que use un directorio temporal. Por ejemplo:

out.tar: TMP := $(shell mktemp -d)
        echo hi $(TMP)/hi.txt
        tar -C $(TMP) cf $@ .
        rm -rf $(TMP)

Como está escrito, la regla anterior crea el directorio temporal en el momento en que la regla esanalizado. Esto significa que, incluso si no hago out.tar todo el tiempo, se crean muchos directorios temporales. Me gustaría evitar que mi / tmp esté lleno de directorios temporales no utilizados.

¿Hay una manera de hacer que la variable solo se defina cuando la regla se activa, a diferencia de cada vez que se define?

Mi principal idea es volcar el mktemp y el tar en un script de shell, pero eso parece un poco desagradable.

Respuestas a la pregunta(3)

Su respuesta a la pregunta