On Tuesday 22 November 2011, Nick Bowler wrote: > Hi Stefano, > Hello Nick.
> On 2011-11-21 21:56 +0100, Stefano Lattarini wrote: > > > > Notice that, despite of the (semi)-consensus reached there, I'm becoming > > > > more and more convinced that, in the long run, requiring GNU make to run > > > > the automake-generated Makefiles would be an acceptable move (for > > > > automake > > > > 2.0, that is). But only because GNU make is *so* much better than > > > > portable make (which is extremely limited), because GNU make is very > > > > portable and easy to build and install (and free from bootstrapping > > > > problems AFAIK), and because the incompatibilities between different > > > > make versions are so appalling. > > I think this discussion is for the most part ignoring what is (IMO) the > most important issue: it must be easy for ordinary (non-developer) users > to build free software packages! > Yes, and that's why I'm suggesting to start requiring only GNU make, and not also bash (which would undoubtedly make it easier to write Makefile recipes) and GCC 4.x or later (which would make the automatic dependency tracking so much easier), and GNU awk ... OK, you've got the gist I think. > This especially includes users who > have no idea that there's a difference between GNU make and the version > of "make" that is already on their system. > Honestly, there are such users today? I mean, almost every Unix newbie these days either: - installs a Linux distro, which comes with GNU make as the default make program (and we're also ignoring the fact that most such users will install stuff only through the distro's package manager anyway, not from sources -- and I don't blame them for this!); - is using Mac OS X, which comes with GNU make as the default make; - installs Cygwin (or possibly MinGW/MSYS) or on his Windows system, thus getting GNU make as the default make in the process. I expect a user of the *BSD systems (and even more of proprietay Unixes) will be learned enough to know the difference between the vendor make and GNU make. That said, having some layer that would allow common "make TARGET" commands to re-invoke themselves with GNU make (maybe with a proper warnings) would be worthwhile; but this would *not* be done for the benefit of the newbies, rather to help out the experienced-but-distracted(-or-lazy) user. > This is, I think, the single best way to encourage users to become more > involved in the free software community. If the user can't easily build > a package, they won't test new versions and they won't test patches. > Seriously, a user experienced enough to try out a patch will not have a problem understanding the difference the vendor make and GNU make, and to act consequently. > (It's truly unfortunate that many popular GNU/Linux distros deliberately > make this more difficult than it needs to be, but I digress). > > I have no doubt that using GNU make will make the the automake > maintainers' jobs easier. It might even make the jobs of individual > package maintainers easier. > See also: <http://lists.gnu.org/archive/html/automake/2011-01/msg00091.html> > But when a user building a free software package for the first time in > their life runs "./configure && make", and receives a spew of cryptic > messages about syntax errors or worse, I suspect that their first > reaction is not going to be "Whoops! I should have run gmake instead." > More likely it will involve much more colourful language, and they will > be left with a bitter impression. > OK. So let's design the new automake to prevent this :-) My above proposal of "automatic re-execution with GNU make" might help here. WDYT? > Now, I'm not fundamentally opposed to the idea, but it has to be done > _right_. > Well, yes. And I certainly value the issues you've raised (even if they are in no way show-stoppers IMHO). Thanks, Stefano