GNU build and test bitching

I was working with Automake and DejaGnu today and I have to say the whole thing feels totally janky.

The manual is practically self-defeating.

Did you know there is a 'make installcheck' target you're supposed to define?

Presently most packages do not have any installcheck tests because the existence of installcheck is little known, and its usefulness is neglected. (Sec. 2.2.1)

It uses weird terminology that made sense in 1989, I guess.

These setups, where source and build trees are different, are often called parallel builds or VPATH builds. The expression parallel build is misleading: the word parallel is a reference to the way the build tree shadows the source tree, it is not about some concurrency in the way build commands are run. (Sec. 2.2.6)

Automake takes Makefile.am as input and writes Makefile.in as output. This the input for configure. But you don't want to run automake yourself, you should let autoreconf do it so all the "auto" programs are run in the right order, because that's how good this whole thing is.

Oh, and Makefile.am is sort of like a Makefile, but not quite.

Generally, Automake is not particularly smart in the parsing of unusual Makefile constructs, so you're advised to avoid fancy constructs or "creative" use of whitespace. (Sec. 3.1)

So it's a lame-o form of a Makefile. Joy.

The conventions used are so numerous I wonder why anyone thought this was a good idea.

I mean, for a single project something like this might be okay. But to have endured for nearly 30 years, you have to wonder how much masochism is in the bones of those in the GNU project.

DejaGnu is some sort of hell-beast as well. It's basically nothing but magic. Try to find documentation on dg-init. I dare you.

-- Geoff (comment@wozniak.ca)
2019-09-03T00:00:00-04:00