Make.exe for Cygwin

Norbert Thiebaud nthiebaud at gmail.com
Tue Feb 24 09:34:17 PST 2015


On Tue, Feb 24, 2015 at 8:58 AM, Ashod Nakashian <ashnakash at gmail.com> wrote:
> ++Norbert
>
>> awesome!
>
> Thanks. The root cause is that stat is not precise enough, not the FS
> timestamp precision (I should have redacted that).
>
>>
>> that sounds like a reasonable approach for platforms where hi-res stat
>> is currently not implemented, i would hope upstream agrees with that.
>
> Indeed. I was doubly surprised when enabling FILE_TIMESTAMP_HI_RES in
> config failed to build on Windows at all (no stat with NS fields).
> So somebody must've known that Windows has 1s precision stat and
> should've deduced this issue.

this seems relevant:

https://www.gnu.org/software/make/manual/html_node/Special-Targets.html

.LOW_RESOLUTION_TIME

If you specify prerequisites for .LOW_RESOLUTION_TIME, make assumes
that these files are created by commands that generate low resolution
time stamps. The recipe for the .LOW_RESOLUTION_TIME target are
ignored.

The high resolution file time stamps of many modern file systems
lessen the chance of make incorrectly concluding that a file is up to
date. Unfortunately, some hosts do not provide a way to set a high
resolution file time stamp, so commands like ‘cp -p’ that explicitly
set a file’s time stamp must discard its sub-second part. If a file is
created by such a command, you should list it as a prerequisite of
.LOW_RESOLUTION_TIME so that make does not mistakenly conclude that
the file is out of date. For example:

.LOW_RESOLUTION_TIME: dst
dst: src
        cp -p src dst

Since ‘cp -p’ discards the sub-second part of src’s time stamp, dst is
typically slightly older than src even when it is up to date. The
.LOW_RESOLUTION_TIME line causes make to consider dst to be up to date
if its time stamp is at the start of the same second that src’s time
stamp is in.

Due to a limitation of the archive format, archive member time stamps
are always low resolution. You need not list archive members as
prerequisites of .LOW_RESOLUTION_TIME, as make does this
automatically.


More information about the LibreOffice mailing list