在使用gnu make时,我想从远程服务器复制文件,而不是重新计算文件。为此,我一直保留一个本地“虚拟”文件,该文件记录(通过时间戳记)文件的上一次创建时间以及将文件复制到远程服务器的时间。我想做的要点如下。 computed.file
是文件本身,computed.file.remote
是虚拟文件。
computed.file: computed.file.remote
<copy computed.file from remote server>
computed.file.remote:
<command to create computed.file>
<copy computed.file to remote server>
touch computed.file.remote
但是,如果两个规则都被调用,这将强制将文件从远程服务器复制到 和 (即使在远程服务器中创建文件时存在)。第二条规则。
还有另一种方法吗?
答案 0 :(得分:0)
好吧,您可以执行以下操作:
computed.file: computed.file.remote
if [ $< -nt $@ ]; then <copy computed.file from remote server>; fi
computed.file.remote:
<command to create computed.file>
<copy computed.file to remote server>
touch -r computed.file $@