From owner-freebsd-hackers Sun Jun 2 16:48:47 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from out019.verizon.net (out019pub.verizon.net [206.46.170.98]) by hub.freebsd.org (Postfix) with ESMTP id 2578037B404 for ; Sun, 2 Jun 2002 16:48:43 -0700 (PDT) Received: from bellatlantic.net ([138.89.159.90]) by out019.verizon.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with ESMTP id <20020602234836.QOKA9617.out019.verizon.net@bellatlantic.net>; Sun, 2 Jun 2002 18:48:36 -0500 Message-ID: <3CFAAED2.F98FD7B4@bellatlantic.net> Date: Sun, 02 Jun 2002 19:48:34 -0400 From: Sergey Babkin X-Mailer: Mozilla 4.7 [en] (X11; U; FreeBSD 4.0-19990626-CURRENT i386) X-Accept-Language: en, ru MIME-Version: 1.0 To: Terry Lambert Cc: jos@catnook.com, freebsd-hackers@freebsd.org Subject: Re: Improving GNU make compatibility in BSD make (+ patch) References: <20020531024250.GA90997@lizzy.catnook.com> <3CF73679.A5AB7886@mindspring.com> <20020531170746.GA93242@lizzy.catnook.com> <3CF7EDC5.CF27B997@mindspring.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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