Я бы хотел скопировать файл с удаленного сервера, а не пересчитывать его, если это возможно при использовании 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
Однако это заставит скопировать файл к и из на удаленный сервер, если задействованы оба правила, даже если он существует, когда файл создается во втором правиле.
Есть другой способ сделать это?
Да. . . .
Что ж, вы можете сделать что-то вроде этого:
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 $@
Я предполагаю, что ваш
computed.file.remote
действительно имеет предварительные условия, которые указывают, когда он устарел и должен быть скопирован повторно.