Make:从远程服务器复制文件而不是重新制作
Make: copy file from remote server rather than remake
我想从远程服务器复制一个文件,而不是在使用 gnu make 时尽可能重新计算它。为此,我一直保留一个本地 "dummy" 文件,该文件记录(通过时间戳)上次创建文件并将其复制 到 远程服务器的时间。我想做的事情的要点如下。 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
然而,这将强制将文件复制到到和从远程服务器,如果这两个规则都被调用,即使它在第二条规则中创建文件时存在。
还有其他方法吗?
嗯,你可以这样做:
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 $@
我想从远程服务器复制一个文件,而不是在使用 gnu make 时尽可能重新计算它。为此,我一直保留一个本地 "dummy" 文件,该文件记录(通过时间戳)上次创建文件并将其复制 到 远程服务器的时间。我想做的事情的要点如下。 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
然而,这将强制将文件复制到到和从远程服务器,如果这两个规则都被调用,即使它在第二条规则中创建文件时存在。
还有其他方法吗?
嗯,你可以这样做:
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 $@