[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNU Make 3.80 problem on Solaris 8
From: |
Paul D. Smith |
Subject: |
Re: GNU Make 3.80 problem on Solaris 8 |
Date: |
Mon, 12 Dec 2005 19:25:37 -0500 |
%% Warren L Dodge <address@hidden> writes:
wld> We are having a problem with GNU Make 3.80 on our Solaris 8
wld> system. When using the same verion of GNU Make on a GNU Linux
wld> system if works fine.
wld> It was pointed out to me that an old copy of GNU make-3.70 worked
wld> fine. Indeed it does. I took the source for the 3.70 and comiled
wld> them the same way I have done the 3.80. The make-3.70 still works
wld> as expected.
I suspect the problem is because your Solaris filesystem is supporting
sub-second timestamps, and your Linux filesystem is not.
GNU make, starting with 3.79 or something like that, will recognize
subsecond timestamps on those systems that support it.
Let's look:
wld> %.db: orig/%.db
wld> @echo 'Importing $<'
wld> /bin/cp -p $< .
wld> gmake all
wld> Importing orig/file.db
wld> /bin/cp -p orig/file.db .
Here, let's suppose that the timestamp on orig/file.db was 100.5. After
the cp -p, the timestamp would be only 100, because "cp -p" (and tar,
and other methods of copying files that preserve timestamps) don't
preserve the sub-second parts.
So now the timestamp of file.db is 100 and the timestamp of orig/file.db
is 100.5, which is newer, so:
wld> gmake all
wld> Importing orig/file.db
wld> /bin/cp -p orig/file.db .
Make copies it again. You don't say what happens if you run it a third
time though: does make keep copying it? Or stop?
You can look up the pseudo-target .LOW_RESOLUTION_TIME in the GNU make
manual for more information.
HTH!
--
-------------------------------------------------------------------------------
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