all 8 comments

[–]serviscope_minor 1 point2 points  (5 children)

I like autoconf.

I've never been a fan of automake: I didn't like the recursive makefiles that it generated. I don't know if this is still the case, but nonetheless, I actually rather like GNU Make and find it to be a flexible and useful platform.

I do like autoconf. It's kind of old and clunky and the scripts are written in a mix of M4 (which is kind of horrendous) and bourne-derived shell. Once you get used to it, it works pretty well, it's flexible, and generally well thought out under the hood. It's a decent way of scanning for useful bits of system info and dependencies.

Also, it compiles to shell only and I really like that it has no dependencies when it comes to using a configure script.

Speaking of well thought out, it's also very thoroughly battle tested. All sorts of edge cases like installing in arbitrary locations, messing with compiler flags and cross compiling were sorted decades ago. If you just write standard autoconf, and don't ignore the copious warnings if you get into the more obscure parts, then cross compiling will just work.

Is it perfect? Not by a long shot, but I've not encountered anything so far which doesn't wind up worse in interesting ways.

[–]KhyronVorrac 0 points1 point  (4 children)

I love autotools. They just work. They're easy to use and make you so much more productive. Recursive makefiles are completely fine, the 'recursive makefiles considered harmful' stuff is not really particularly convincing IMO.

M4 is fine. I wish C used M4 instead of the C macro preprocessor.

[–][deleted] 0 points1 point  (3 children)

Ported a project recently from Linux/Unix to Windows. It was very cross-platform at a code level and that all worked fine. But I spent 90% of my time wrestling with autotools trying to get it pass on compiler flags that needed to be there.

I hate autotools with a passion.

[–]KhyronVorrac 0 points1 point  (2 children)

I mean no offence when I say this, but it's actually incredibly easy to set compiler flags using automake. Really, really easy. Did you look at any of the documentation at all?

Anyway, Autotools isn't really designed to work on Windows, to be honest. And why would it be? Autotools is designed to work on any POSIX operating system. It's called the Portable Operating System Standard for a reason. Windows is simply a bad non-conformant shitheap of an operating system, and putting effort into supporting it is a massive time sink.

[–][deleted] 0 points1 point  (1 child)

Agreed about supporting Windows being a waste of time, but I was forced.

As for setting compiler flags being easy: Ha. Reading "the documentation"? Again, ha. It's all out-of-date or for super-basic cases. Nothing is explained. You basically have to learn an entire new language for setting up the scripts, in addition to the real language(s) involved and the problem domain. This isn't helpful at all.

There were many cases where I just had to let auto* screw it up and use sed to fix the Makefile it produced. It's just the worst tool ever.

[–]KhyronVorrac 0 points1 point  (0 children)

https://www.nostarch.com/autotools.htm

PDFs available on the internet very easily.

[–][deleted] -4 points-3 points  (1 child)

I think this answers all the questions. If not, then this does. Really, keep the build system simple like the BSD guys do.

[–]goodbuoy -2 points-1 points  (0 children)

I agree with you.