【问题标题】:TCSH Makefile - copy file to name and change permissionsTCSH Makefile - 将文件复制到名称并更改权限
【发布时间】:2014-11-13 23:35:27
【问题描述】:
我正在尝试为 tcsh 脚本创建一个 makefile,该脚本将文件复制到名称 proj3 并更改每个人都可以执行的权限。我知道如何为 c++ 和 c 等制作 makefile,但我不知道我们为什么要为 shell 脚本做这些。
我的文件名为 proj3final
这是我目前所拥有的:
proj3final:
cp final proj3
chmod 755 proj3
每当我运行make proj3 或make 时,它都会提示nothing to be done
【问题讨论】:
标签:
shell
scripting
makefile
tcsh
【解决方案1】:
makefile 规则应始终创建与目标同名的文件。
如果您希望 make 能够判断它何时需要运行规则,则您的规则需要先决条件。
您的规则告诉 make 它将创建 proj3final 文件,但它实际上创建了 proj3 文件。这会让 make 感到困惑。
此外,您的规则没有为该目标提供任何先决条件,因此只要存在 proj3final 文件,make 就会假定它是最新的,并且不必进行任何工作。
假设您的输入文件名为 final 并且您希望将其复制到名为 proj3final 的文件中,那么您想要的规则是
proj3final: final
cp $< $@
chmod 755 $@
哪个应该做你想做的,并将Automatic Variables用于当前目标($@)和第一个先决条件($<)。