diff --git a/src/filedef.h b/src/filedef.h index 304a07f6..ac7df008 100644 --- a/src/filedef.h +++ b/src/filedef.h @@ -212,6 +212,8 @@ FILE_TIMESTAMP f_mtime (struct file *file, int search); << FILE_TIMESTAMP_LO_BITS) \ + ORDINARY_MTIME_MIN + FILE_TIMESTAMPS_PER_S - 1) +#define is_ordinary_mtime(_t) ((_t) >= ORDINARY_MTIME_MIN && (_t) <= ORDINARY_MTIME_MAX) + /* Modtime value to use for 'infinitely new'. We used to get the current time from the system and use that whenever we wanted 'new'. But that causes trouble when the machine running make and the machine holding a file have diff --git a/src/remake.c b/src/remake.c index 69a0e6cb..a97431b9 100644 --- a/src/remake.c +++ b/src/remake.c @@ -491,8 +491,7 @@ update_file_1 (struct file *file, unsigned int depth) noexist = this_mtime == NONEXISTENT_MTIME; if (noexist) DBF (DB_BASIC, _("File '%s' does not exist.\n")); - else if (ORDINARY_MTIME_MIN <= this_mtime && this_mtime <= ORDINARY_MTIME_MAX - && file->low_resolution_time) + else if (is_ordinary_mtime (this_mtime) && file->low_resolution_time) { /* Avoid spurious rebuilds due to low resolution time stamps. */ int ns = FILE_TIMESTAMP_NS (this_mtime);