【发布时间】:2015-11-04 17:15:27
【问题描述】:
在我的 Makefile 中运行 uninstall 目标时,我想使用函数/宏交换两个文件。
这是我所拥有的,只留下一个文件并删除另外两个:
swap = mv $(1) $(3); mv $(2) $(1); mv $(3) $(2)
uninstall:
@$(call swap,`printf "%s\n" $(FILE).* | sort -r | sed -n 1p`,\
$(FILE),$(shell mktemp $(FILE).XXX))
【问题讨论】:
-
您没有在任何地方运行
mktemp命令。试试@set -x;$(call ....)看看实际运行的是什么。这应该对你有帮助。 -
从我的编辑器复制粘贴时出现本地错误。我正在尝试使用
ticks和$(shell ...)。我已经更新了示例。 -
上面的函数确实有效,如果我只是
$(call 1,2,3),问题出在mktemp某处。 -
$(shell)是该位置的错误时间,但这与问题无关(它发生在配方扩展时而不是该配方行的运行时)。 -
你可以做的另一件事是停止玩这个游戏,只使用一个你可以自动换出的符号链接。