制作:从远程服务器复制文件,而不是重新制作

时间:2018-10-26 19:21:27

标签: makefile gnu-make

在使用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

但是,如果两个规则都被调用,这将强制将文件从远程服务器复制到 (即使在远程服务器中创建文件时存在)。第二条规则。

还有另一种方法吗?

1 个答案:

答案 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 $@