svn commit: r186502 - head/usr.bin/make

Hartmut.Brandt at dlr.de Hartmut.Brandt at dlr.de
Mon Jan 5 08:54:36 PST 2009


> -----Original Message-----
> From: owner-src-committers at FreeBSD.org 
> [mailto:owner-src-committers at FreeBSD.org] On Behalf Of Luigi Rizzo
> Sent: Monday, January 05, 2009 3:29 PM
> To: Dag-Erling Sm??rgrav
> Cc: Luigi Rizzo; src-committers at FreeBSD.org; 
> svn-src-all at FreeBSD.org; svn-src-head at FreeBSD.org
> Subject: Re: svn commit: r186502 - head/usr.bin/make
> 
> On Mon, Jan 05, 2009 at 02:46:24PM +0100, Dag-Erling Sm??rgrav wrote:
> > Luigi Rizzo <luigi at FreeBSD.org> writes:
> > > Log:
> > >   Clarify the behaviour of conditionals when dealing with 
> comparisons.
> > >   In particular, point out that string comparison can 
> only use != and ==
> > >   (how weird, given that the underlying call to strcmp 
> returns more
> > >   information), that floating point values are correctly 
> interpreted
> > >   as numbers, and that the left-hand side must be a 
> variable expansion.
> > 
> > Any chance of fixing items 1 and 3?
> 
> item 1 is easy except perhaps for Locale issues which however 
> should not
> be a big deal in this context.
> item 3 should also be easy.
> 
> But the thing i wonder about is whether there is any standard that
> mandates this beviour, or we are relatively free to make enhancements
> to our "make" program.

>From the Posix standpoint of view, we can do what we want as long as we
are not syntax compatible with posix-make :-) This is the reason, why
most of our make extensions are compatible with posix. As soon as you
have a construct that is a syntax error according to the Posix
specification you invoke implementation-defined behaviour and as such
you just have to document it. There are several of these escape
mechanisms in the standard: the .POSIX pseudo-target and all targets
that start with a dot and consist of uppercase letters.

With regard to conditionals: there is no standard. Posix decided to
standard only minimal make, which is roughly compatible to V7 make. If
you change things like conditional semantics you should: (1) document
it, and (2) arrange a full ports build with the portcluster people. This
takes some days, but is a good thing to do.

harti



More information about the svn-src-head mailing list