[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Create "If Different" dependency
From: |
Paul D. Smith |
Subject: |
Re: Create "If Different" dependency |
Date: |
Wed, 22 Jan 2003 14:39:35 -0500 |
%% Yair Lenga <address@hidden> writes:
yl> First, the target might be modified by other processes.
As long as you don't mean at exactly the same time as make is running,
this is not a problem for make. It keeps no state, so has nothing to be
out of sync later.
yl> The other problem is that the "make" is being executed on
yl> different machines, which may have "time drift" - making
yl> timestamps fail sometimes. My best solution is:
Actually, your _best_ solution is to install NTP or some other time sync
protocol to ensure that your systems do _not_ have time drift.
yl> .PHONY: FORCE
yl> target: FORCE
yl> cmp -s source target || cp source $@
yl> This approach takes a lot of CPU, and network bandwidth (I'm using
yl> NFS). Does anyone has better solution ? Some packages offer MD5
yl> instead/in addition to timestamping. Can this appraoch be applied
yl> with gnu-make ?
No. There is an item on the TODO list to allow more complex "out of
date" determination algorithms. However, anything more complex than
what make does now requires that make keep some state between
invocations, so it can compare the previous state with the current
state. This is a significant change to make's behavior and requires
some thought on how to do it reliably, in the face of recursive make,
parallel make, etc. etc.
--
-------------------------------------------------------------------------------
Paul D. Smith <address@hidden> Find some GNU make tips at:
http://www.gnu.org http://make.paulandlesley.org
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist