A new redo-stamp program takes whatever you give it as stdin and uses it to calculate a checksum for the current target. If that checksum is the same as last time, then we consider the target to be unchanged, and we set checked_runid and stamp, but leave changed_runid alone. That will make future callers of redo-ifchange see this target as unmodified. However, this is only "half" support because by the time we run the .do script that calls redo-stamp, it's too late; the caller is a dependant of the stamped program, which is already being rebuilt, even if redo-stamp turns out to say that this target is unchanged. The other half is coming up.
5 lines
243 B
Text
5 lines
243 B
Text
redo example/clean curse/clean deps/clean "space dir/clean" stamp/clean
|
|
rm -f c c.c c.c.c c.c.c.b c.c.c.b.b d mode1 makedir.log chdir1 deltest2 \
|
|
hello [by]ellow *.o *~ .*~ CC LD passfail silence silence.do \
|
|
touch1 touch1.do
|
|
rm -rf makedir
|