Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 02 Jun 2002 19:48:34 -0400
From:      Sergey Babkin <babkin@bellatlantic.net>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        jos@catnook.com, freebsd-hackers@freebsd.org
Subject:   Re: Improving GNU make compatibility in BSD make (+ patch)
Message-ID:  <3CFAAED2.F98FD7B4@bellatlantic.net>
References:  <20020531024250.GA90997@lizzy.catnook.com> <3CF73679.A5AB7886@mindspring.com> <20020531170746.GA93242@lizzy.catnook.com> <3CF7EDC5.CF27B997@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert wrote:
> 
> Jos Backus wrote:
> > On Fri, May 31, 2002 at 01:38:17AM -0700, Terry Lambert wrote:
> > > The biggest problem with GNU make that I've seen is re-expansion
> > > of variable variables.
> > >
> > > The suggested fix doesn't address that, so it won't fix the most
> > > common "compatability problem".
> >
> > So what? It fixes (in a backward-compatible way because ``$^'' isn't used in
> > BSD make) one incompatibility without which I have to have two different
> > Makefiles in the simple case I am thinking about. It's at least an incremental
> > improvement that doesn't break anything afaIcs.
> 
> 1)      Please see the references I cited.  I believe "$^" is used in
>         a BSD make, even if it's not in the FreeBSD make, and that in
>         a future version of FreeNSD make, it ought to have the function
>         of the BSD make that uses it, not GNU make.
> 
> 2)      I am not comfortable with changing FreeBSD make into GNU make.

I would really like all the existing make branches (BSD, GNU, SVR4)
converge to a single syntax. Otherwise it's too much pain, and the
only workaround is either to use only the classic V7 make features
or write makefiles for gmake since it's readily available on all
the platforms.
 
> 3)      I am not comfortable adding features to FreeBSD make which
>         render makefiles, which are then written to use these newly
>         added features, non-portable to other BSD systems.

That's easy: don't write makefiles that use these features. Document
them as strongly deprecated and compatibility-only.
 
> 4)      There are *already* enough cases where people have written
>         "sh" scripts with "bash" syntax, so that they *claim* they
>         are "sh" scripts, but are in fact "bash" scripts.  I would
>         hate to see the same thing happen to "makefiles" to turn
>         them into "gmakefiles".

I agree. If any such additions are made, they should be only enabled
by a command-line options. On the other hand, you can just use gmake
to the same effect.
 
> 5)      What you've added is a synonym for something that's already
>         there; it is better to change the makefile to use the existing
>         syntax, then it is to change the "make" to add new syntax.

It means changing every makefile.
 
> 6)      What are you going to do, when you need to compile on Solaris?

SVR4 make extensions are totally incompatible with BSD make extensions,
so nothing changes in this respect: the BSD makefiles don't work
on SVR4.
 
> 7)      What are you going to do when you need to compile on AIX?

Same thing.
 
> 8)      How is "make" different from "cc" or "tar"?  If we are going
>         to add the features, why not "just use GNU make instead"?

Aren't we already using GCC and GNU tar ? Or am I completely missng 
the point of this point ?

-SB

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3CFAAED2.F98FD7B4>