相关疑难解决方法(0)

在规则执行时定义make变量

在我的GNUmakefile中,我希望有一个使用临时目录的规则.例如:

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

如上所述,上述规则在解析规则时创建临时目录.这意味着,即使我没有直接创建.tar,也会创建许多临时目录.我想避免我的/ tmp被未使用的临时目录弄乱.

是否有办法使该变量仅在触发规则时定义,而不是在定义时定义?

我的主要想法是将mktemp和tar转储到shell脚本中,但这看起来有点难看.

makefile gnu-make

186
推荐指数
4
解决办法
14万
查看次数

标签 统计

gnu-make ×1

makefile ×1