[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: wildcard function in 3.77

From: Paul D. Smith
Subject: Re: wildcard function in 3.77
Date: Fri, 30 Mar 2001 13:08:35 -0500

%% Peter Buckley <address@hidden> 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

  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 <address@hidden>          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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]