Hi Paul:
I am faced with another problem regarding the command line length. I
have a large dependency list which I am echoing to a file using
echo $? > some_file
And on NT sh.exe (from cygnus) keeps crashing saying either command like too
long or STATUS_ACCESS_VIOLATION.
Is there a cure for this?
Really appreciate your time,
rgds
mohan
----- Original Message -----
From: "Paul D. Smith" <[EMAIL PROTECTED]>
To: "Mohan Krishnan" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, March 16, 2000 6:59 AM
Subject: Re: Timestamp is not being checked on NT + other
> %% "Mohan Krishnan" <[EMAIL PROTECTED]> writes:
>
> Hi; please don't send HTML to the list, thanks!
>
> mk> I hv make version 3.78.1 on NT.
>
> mk> 1) make reports "nothing to make" even though the target has
> mk> changed. Same test works fine on Solaris. I am attaching a small
> mk> test Makefile with some test files. First time through make will
> mk> create the .out files (by touch.exe). Now open up aaa.txt and edit
> mk> and save it. then try make again. It would report nothing to make.
>
> I can't reproduce this on UNIX and I don't have any Windows systems. I
> don't really support the Windows port; you need to talk to the folks
> that do (see the AUTHORS file in the GNU make distribution).
>
> However, I do know that due to limitations in the Windows filesystem,
> GNU make is forced to treat all timestamps within 2 or 3 seconds of each
> other as identical. So, if you update that file sufficiently quickly
> from the time the .out file was changed make might not notice there's
> been a change.
>
> Comments in the code say:
>
> #ifdef WINDOWS32
> /*
> * FAT filesystems round time to nearest even second(!). Just
> * allow for any file (NTFS or FAT) to perhaps suffer from this
> * braindamage.
> */
> if (mtime > now && (((mtime % 2) == 0) && ((mtime-1) > now)))
> #else
> #ifdef __MSDOS__
> /* Scrupulous testing indicates that some Windows
> filesystems can set file times up to 3 sec into the future!
*/
> if (mtime > now + 3)
> #else
> if (mtime > now)
> #endif
> #endif
>
> Other than that, I'm afraid I don't have much to say. Try running make
> with the -d option and see why it doesn't want to remake the file.
>
> mk> 2) This problem occurs both in NT and Solaris. If the target is a
> mk> directory in your present working directory then make will always
> mk> report "xyz is up to date"!
>
> This isn't a bug, this is expected behavior. Make doesn't differentiate
> between directories and files: if the target exists, it exists.
>
> What if you _wanted_ to write a target that created a directory:
>
> $(OBJDIR): ; mkdir $(OBJDIR)
>
> ? This is actually not that uncommon (although not the best way to do
> it, IMO).
>
> Look up the .PHONY rule in the GNU make manual for how to make this work
> as you want.
>
> --
> --------------------------------------------------------------------------
-----
> Paul D. Smith <[EMAIL PROTECTED]> Network Management
Development
> "Please remain calm...I may be mad, but I am a professional." --Mad
Scientist
> --------------------------------------------------------------------------
-----
> These are my opinions---Nortel Networks takes no responsibility for
them.
>