Re: make ChangeLog NEWS main.c read.c variable.c va...

Paul Smith <[email protected]>
Newsgroups gmane.comp.gnu.make.devel
Organization GNU's Not Unix!
Message-ID <[email protected]>
On Tue, 2009-10-06 at 15:17 +0200, Boris Kolpackov wrote:
> Hi Paul,
> 
> Paul D. Smith <[email protected]> writes:
> 
> > Would it make sense to allow multiple variables to be undefined at 
> > once, in the same line, similar to how "export" works?
> 
> Then something like this won't work:
> 
> define one two
> three
> endef
> 
> undefine one two
> 
> While it is a corner case, I tried to keep undefine consistent with 
> define.

Does that actually work?  I thought I had disabled variables with
whitespace in the name unless it was done explicitly, like foo
$(space)bar.  Maybe not in define/endef.

A note: in read.c:do_undefine() I think you forgot to free (var).

In the other change you made, I think either the code or comment here is
wrong:

  /* If the names are the same but ignore_mtimes are not equal, one of these
     is an order-only prerequisite and one isn't.  That means that we should
     remove the one that isn't and keep the one that is.  */

  if (!cmp && dx->ignore_mtime != dy->ignore_mtime)
    dx->ignore_mtime = dy->ignore_mtime = 0;

Unless I'm confused the comment says you'll remove the non-order-only
prereq and keep the one that is order-only, but the code seems to do the
opposite (remove the order-only prereq).

FWIW, I think the code is correct, not the comment :-)

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <[email protected]>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.mad-scientist.net
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.