Hi,
we use Continuus as configuration management tool. In conjunction with GNU make files
frequently are not recompiled when they should be.
The reason is as follows:
If a file is checked out, a symlink is created in the user's work area that referring
to some file under Continuus' control. When this file is modified referencing it by
the symlink, the file's timestamp changes, and everything works fine.
If, however, through Continuus' update mechanism another version of the file is used,
the symlink is simply made to point to another file representing the other version.
The symlink's timestamp is changed, but the timestamp of this other file not
necessarily new (if you go back to an older version, for instance). Result: the file
is not recompiled.
The issue can be resolved by considering the symlink's *and* the file's timestamp and
taking the maximum of both. The system call `stat' and `lstat' do this (at least under
Solaris).
I attach a file where the function name_mtime() in file `remake.c' is patched
accordingly.
Regards,
Conrad
remake.c