From owner-freebsd-arch@FreeBSD.ORG Thu Aug 28 23:53:34 2008 Return-Path: Delivered-To: FreeBSD-arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 91B7910656A6 for ; Thu, 28 Aug 2008 23:53:34 +0000 (UTC) (envelope-from chuckr@telenix.org) Received: from mail7.sea5.speakeasy.net (mail7.sea5.speakeasy.net [69.17.117.9]) by mx1.freebsd.org (Postfix) with ESMTP id 4AB108FC1B for ; Thu, 28 Aug 2008 23:53:34 +0000 (UTC) (envelope-from chuckr@telenix.org) Received: (qmail 25838 invoked from network); 28 Aug 2008 23:53:34 -0000 Received: from april.chuckr.org (HELO april.telenix.org) (chuckr@[66.92.151.30]) (envelope-sender ) by mail7.sea5.speakeasy.net (qmail-ldap-1.03) with AES256-SHA encrypted SMTP for ; 28 Aug 2008 23:53:33 -0000 Message-ID: <48B73A0B.401@telenix.org> Date: Thu, 28 Aug 2008 19:51:39 -0400 From: Chuck Robey User-Agent: Thunderbird 2.0.0.6 (X11/20071107) MIME-Version: 1.0 To: Alfred Perlstein References: <48B58846.6040400@telenix.org> <20080827174530.GZ16977@elvis.mu.org> In-Reply-To: <20080827174530.GZ16977@elvis.mu.org> X-Enigmail-Version: 0.95.5 OpenPGP: id=F3DCA0E9; url=http://pgp.mit.edu Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: FreeBSD-arch@FreeBSD.org Subject: Re: an argument of make(1) X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2008 23:53:34 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Alfred Perlstein wrote: > The only excuse I have for top posting here is that I agree > with the entirety of this email. Well, thanks, I wanted to get a feeling if I was alone in feeling this way; I guess I'm not. With this in mind, I've ported our BSD make tool twice (I lost my first try, felt fairly stupid for having to do it twice). Now I have this much agreement, I feel good enough about this to begin my own effort to make all the changes I asked for. I intend to code up changes in separate patches, so folks won't get a "all or nothing" option from me. My only problem in this is, since my health went bad on me, now I'm kinda more disabled than I used to me, I can't work as many hours as I used to, so it's definitely going to make me longer than most others. On top of this, I honestly don't cooperate all that well. I can take orders fine, but I generally either do it all or let YOU do it all, I'm just not a really great team player. So, if you have the time, leave it to me, I'll get it done, but if you want it soon, well, you might want to do it yourself. Other than that, I don't much see where this needs more discussion right now, unless someone has some more suggestions about what changes you want. I'm only (myself) interested in code portability, version options, and make conditionals test capabilities. I don't really want to craft a copy of GNU make. We can discuss this more when I have patches to show off. Once again, thanks for the clear, rapid response. > > -Alfred > > * Chuck Robey [080827 10:28] wrote: > I am posting this to our arch list; if I'm wrong, we can move this. I want to > argue for some changes to our great make(1) tool. > > I've long been a fan of make, and in particular, FreeBSD's make. In my own > career, I've often had to do more custom creation of Makefiles, and while there > are some folks here who definitely DO know our make better, I think I can > honestly say I know it pretty well. In creating tools for customers, I've > often been forced, unwillingly, to go to the GNU make tool. The reason is just > one of compatibility. There are several different reasons for this, which I > want to list: > > 1) while the GNU make has the -v to allow one to both identify the tool and the > version, FreeBSD's make has no such facility, that I'm aware of. You can't test > & capture the type of make here, except by the rather inadequate trapping of > getting no response at all. > > 2) while some parts of our make don't advertise it, they can be made compatible > to the gmake's tools. "include" is a good example (the FreeBSD "include" docs > claim that it only works as ".include", but that's a prevarication (and a very > good thing it is). What I'd like to argue for is that some things like "if" > have their compatibility with gmake enhanced. No, don't make it a mirror image, > just make it possible for a programmer to craft a limited set of tests that will > work in both places. > > If you give programmers the ability to detect what make they're in, the ability > to craft a limited set of compatible tests, and also the other side (endif > stuff) then everything else for portability can be done by using those limits. > > If something like this were done, then it allows a programmer, finally, to write > a REALLY portable makefile. It would still allow one to make use of all of > make(1)'s great command set, but not to kill it's use in a gmake-only system. > > OK, that'st the major argument. I'm going to ask for one thing here, but it's > truly extra, just my own bias's showing thru. I wish that a fair number of the > changes that have gone into make be taken back. I'm not talking about those > that enhanced it's operation, I'm talking about all of the changes that, while > trying to increase the elegance of the code, have really destroyed it's porrting > portability, in a major way. Make used to depend on a smaller set of libraries, > and those libraries were largely those available on other systems, so the task > for a programmer, to port our make(1) to a different platform wasn't all that > hard to do. Nowadays, with a great number of the changes having been crafted to > change dependencies to FreeBSD-only tools, it's a real bear to port it. > > The code involved is nearly all very, very portable; it's the way that the > libraries have been constituted that makes porting this a really bad job. If > someone would make up a libmake.so.1, which in itself could be make really > portable, that would also go a great long way to improving the popularity of our > make(1). I'm NOT asking to roll back any of the distinct improvements that have > gone in, only the changes that ruined it's porting-ability (yea, that's > portabilty, I just wanted to really point that out again). > > OK, if someone were to come up with swuch a set of changes, would they be dead > on arrival? I know that no one gets prior approval for FreeBSD (I completely > agree with that), just didn't want to be totally at odds with everyone, if I'm > the only one who sees it this way. > > Thanks for your time. _______________________________________________ freebsd-arch@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-arch To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAki3OgsACgkQz62J6PPcoOl00gCgjo1YlwlDSrcahO8DK+VijWx/ w90An028vyzNklvjS97D/yv5qO+IDquP =ADNQ -----END PGP SIGNATURE-----