GNUmakefile에서 임시 디렉토리를 사용하는 규칙을 갖고 싶습니다. 예를 들면 다음과 같습니다.
out.tar: TMP := $(shell mktemp -d)
echo hi $(TMP)/hi.txt
tar -C $(TMP) cf $@ .
rm -rf $(TMP)
작성된 바와 같이, 위의 규칙은 규칙이 구문 분석 될 때 임시 디렉토리를 작성합니다 . 즉, 내가 out.tar를 만들지 않아도 많은 임시 디렉토리가 만들어집니다. / tmp가 사용되지 않는 임시 디렉토리로 흩어지는 것을 피하고 싶습니다.
변수가 정의 될 때와 달리 규칙이 실행될 때만 변수를 정의 할 수있는 방법이 있습니까?
내 주요 생각은 mktemp와 tar를 쉘 스크립트에 덤프하는 것이지만 다소보기 흉한 것 같습니다.