News for hackers. Stuff that matters.
Re:Autotools Mythbuster by rwmj on Thursday December 17, 2015 @10:17AM (#10751911)
Of course there are many alternatives (of the alternatives, I can only really recommend cmake).

The problems broadly speaking are:

* Assumptions: autotools assumes that only a basic Bourne shell is available, and a basic make, and that make is a good way to build projects. All of those are questionable, and certainly if you get rid of the assumption that you're only allowed to use ancient tools, you could immediately make autotools better, if only by removing all the shell cruft. But then someone will complain because your project doesn't compile on SunOS 4 or whatever.

* Familiarity: When I'm packaging your project for Fedora, I will not be pleased if you've used some obscure or half-assed build system. If you're using autotools, I may dislike it, but at least I can fix things.

The second one is a difficult one, because until your build system gets popular, it will never be familiar, and us packagers will keep cursing you. Once it's popular, it'll probably be quite crufty because it has had to handle all the horrible corner cases that autotools can do now.

Re:Autotools Mythbuster by adekok on Thursday December 17, 2015 @11:48AM (#10752543)
Even worse, autotools doesn't have the concept of modularization.

Look at the nginx configure scripts. They're hand-written, and modularized. Check for "foo"? There's a shell script. Autotools does the same thing via special-purpose autogenerated shell code.

That's why the configure script is 1000's to 10's of 1000's of lines of shell script. It's all auto-generated crap.

And autotools doesn't have the concept of bootstrapping. Building a C program? Great! Test everything with shell scripts. It might be more efficient to have C programs doing work, but no... it has to be the lowest common denominator.

Because managing multiple pieces is too hard. Why? Because there's no modularization.

I've used autotools for decades because everything else is worse. But I have a long-term deep-seated loathing of it which is hard to put into words.

Re:Autotools Mythbuster by scrollaway on Thursday December 17, 2015 @12:49PM (#10752991)
> I've used autotools for decades because everything else is worse.

I take it you've used CMake - could you explain in which ways you think it's worse than autotools? I agree it has concerning design flaws, but they don't come anywhere close to autotools' and I'd say CMake is overall dozens of times saner.

Re:Autotools Mythbuster by kazinator on Thursday December 17, 2015 @02:54PM (#10754019)
Does CMake generate a deliverable which builds on a machine that doesn't have CMake installed? With full incremental build support and all, so reasonable development can take place on that system?
Re:Autotools Mythbuster by icebraining on Thursday December 17, 2015 @03:16PM (#10754189)
Yes to the first question, it generates platform-specific build files (e.g. Makefiles for Unix/Linux), which don't need cmake itself to build the software. Regarding the second question, I believe so, but I'm not sure.
Re:Autotools Mythbuster by atso on Thursday December 17, 2015 @04:23PM (#10754663)
Of course once the makefile is generated, there is no need to use cmake (as long as the project is not modified), but you cannot share a makefile generated by cmake, not even redistribute it. You cannot even re/locate it on your hard drive.

The difference is that autotools generates source distributions that do not need autotools to build, while a cmake project always requires cmake when building.

Re:Autotools Mythbuster by icebraining on Thursday December 17, 2015 @07:12PM (#10755719)
Oh, I wasn't aware it wasn't distributable, my bad.
Re:Autotools Mythbuster by kazinator on Thursday December 17, 2015 @03:18PM (#10754212)
Can we give everyone exactly the same tarball of a project and just have it unpack and build on their platform?
Re:Autotools Mythbuster by icebraining on Thursday December 17, 2015 @03:23PM (#10754238)
I think so, if you pre-generate the build files for every platform and distribute them all in the tarball.
Re:Autotools Mythbuster by jedisct1 on Thursday December 17, 2015 @06:27PM (#10755454)
Haha
Re:Autotools Mythbuster by falcolas on Thursday December 17, 2015 @10:32AM (#10752013)
Yeah, I know it's a damned hard problem, but that's why I posted it the way I did. This was mostly an attempt to head off the typical cargo-cult hate against autotools.
Re:Autotools Mythbuster by mannykannot on Thursday December 17, 2015 @11:28AM (#10752401)
The hatred is not really cargo-cult-like - you can understand it and still not be happy with it. That said, thinking about what it would take to replace it helped me come to an admittedly somewhat grudging acceptance of it. The testing alone...
Re:Autotools Mythbuster by mwcampbell on Thursday December 17, 2015 @11:22AM (#10752352)
Do you have any opinion on GYP, as used by Node.js and (last time I checked) Chromium? It seems to be particularly good at producing a large binary made up of a complex graph of static libraries.
Re:Autotools Mythbuster by rockdoe on Thursday December 17, 2015 @11:26AM (#10752390)
Some simple things like compiling a single file with specific options quickly get needlessly complex, IIRC.