%% Peter Buckley <[EMAIL PROTECTED]> writes:
pb> I have GNU make version 3.77. I use the same makefile for UNIX
pb> SunoS 5.6 and Windows NT 4.0 SP5. I have a "clean" target that
pb> removes files generated by the makefile. When I say "breaks" I
pb> mean it doesn't remove the files- it doesn't give any error
pb> messages.
pb> Works on UNIX, breaks on NT
pb> clean :
pb> -$(RM) -f *.map *.out *.pat *.filtered *.img *.dat $(REPORT) *.prom *.lis
*.pci *.exe *.tmp
If this fails, then it's a problem with your NT shell or similar, not
GNU make. Make isn't doing anything whatsoever with this line except
invoking a shell and giving it this command.
Likely your NT shell or "rm" program breaks because the command line is
too long (esp. given that the next one works on NT).
pb> Works on NT, breaks on UNIX
pb> clean :
pb> -$(RM) -f $(wildcard Coverage/*.txt)
pb> -$(RM) -f $(wildcard Coverage/*.cfy)
pb> -$(RM) -f $(wildcard *.map)
pb> -$(RM) -f $(wildcard *.out)
pb> -$(RM) -f $(wildcard *.pat)
pb> -$(RM) -f $(wildcard *.filtered)
pb> -$(RM) -f ./$(REPORT)
pb> -$(RM) -f $(wildcard *.img)
pb> -$(RM) -f $(wildcard *.dat)
pb> -$(RM) -f $(wildcard *.prom)
pb> -$(RM) -f $(wildcard *.pci)
pb> -$(RM) -f $(wildcard *.lis)
pb> -$(RM) -f $(wildcard *.exe)
pb> -$(RM) -f $(wildcard *.tmp)
pb> -$(RM) -f $(wildcard *.raw)
pb> -$(RM) -f $(wildcard *.log)
pb> -$(RM) -f $(wildcard *.dcp)
pb> -$(RM) -f $(wildcard *.pkg)
pb> -$(RM) -f $(wildcard *.o)
pb> -$(RM) -f $(wildcard *.a)
pb> -$(RM) -f $(wildcard *.ucode)
pb> -$(RM) -f $(wildcard *.crtmp)
pb> -$(RM) -f $(wildcard *.ascii)
pb> -$(RM) -f $(wildcard *.processed)
pb> -$(RM) -f $(wildcard *tlustate)
This is a very well-known bug with GNU make 3.77 on Solaris 2.6 and
above.
pb> Do I need to update my version of GNU make?
The bug was fixed in GNU make 3.78. The current release version of GNU
make is 3.79.1.
pb> Is there a website that details what changes are made between
pb> versions of make?
No, but if you download the distribution and look inside there's a NEWS
file that describes all the user-visible changes for each version.
pb> If I update will it change functionality to such a degree that my
pb> makefiles will need to be changed?
It's very doubtful. Backward compatibility is the single most important
priority for GNU make, since there are so many hundreds of thousands of
GNU makefiles "in the wild", and so many packages rely on it. And there
are cool new features in the newer versions of GNU make.
But, you never know. Obviously I would test it before I installed it
for everyone to use.
If you don't want to upgrade, you can use this fix (from the mailing
list archives):
FROM: Paul D. Smith
DATE: 03/23/1999 14:40:37
SUBJECT: RE: Problem with wildcard function
This is a known problem with GNU make 3.77 and Solaris 2.6 and above.
Workaround is as follows:
> You can either:
>
> 1) Run the make you built on Solaris 2.5 or 2.5.1, on 2.6; this will
> work fine but you won`t get large file support (not a major issue
> for most people, I`m sure).
>
> 2) After building a (broken) make on Solaris 2.6+, do the following:
>
> $ rm -f glob/*.o
> $ make CFLAGS=`-g -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64`
>
> You can adjust the -g and -O2 options to taste. The resulting make
> executable will work correctly on Solaris 2.6+.
This will be fixed in GNU make 3.78.
--
-------------------------------------------------------------------------------
Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at:
http://www.gnu.org http://www.paulandlesley.org/gmake/
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist
_______________________________________________
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make