在我的GNUmakefile中,我想有一个使用临时目录的规则。例如:
out.tar: TMP := $(shell mktemp -d)
echo hi $(TMP)/hi.txt
tar -C $(TMP) cf $@ .
rm -rf $(TMP)
按照书面规定,上述规则在解析规则时会创建一个临时目录。这意味着,即使我一直都不做out.tar,也会创建许多临时目录。我想避免/ tmp堆满未使用的临时目录。
有没有一种方法可以使变量仅在触发规则时定义,而不是在定义规则时定义?
我的主要思想是将mktemp和tar转储到Shell脚本中,但这似乎有些难看。
慕婉清6462132
九州编程