The barrier-to-entry build system

Saturday, 12 Jun 2004

What fun.

So I’ve been looking for a good biff. Since Lua is a prerequisite for ebiff, I thought I would try netbiff first. I got to have fun groping around for a while until I grokked the non-standard build system. There is no documentation, and it relies on an unusual combination of a Makefile and scripts. The build system configuration is tedious, and the application configuration is even more so. After all that, I finally found out that netbiff only supports a single “you have new mail” notifier window. Yeah, who needs screenshots, anyway, let’s just let people waste their time before they get any idea about the application.

So I started working on ebiff by installing Lua. Considering it is a language expressely “designed for extending applications”, what is the point in not installing the shared library version of the interpreter unless explicitly asked to? Of course, Lua – you guessed it! – uses another non-standard build system. Joy! With that out of the way, I tried to build ebiff. Guess what? It still won’t work. The Makefile relies on a lua-config script that was apparently written by a Debian package maintainer for the Debian package. I’m not sure who is the bigger moron, the Debian package mantainer or the author of ebiff.

What the heck are these people thinking?! Are they even thinking at all? Not everyone likes the GNU autoconf build system (and no one is forcing them to, either), nor was anyone’s navel gazing that bad or hard to figure out by itself. But why should I have to spend my time figuring out build systems? They’re not interesting. What I want to play around with is the application. Odd, aren’t I.

Here are some hints: if you are doing something uncommon, provide documentation. Making the user read the Makefile to understand how the build system works is not acceptable. If you have a configure script at all, put usage information into it to tell the dumb and hapless, obviously autoconf-expecting user (me) how to proceed, instead of producing useless information already available by other means.

From now on, anything whose build system takes more than a minute or so to figure out is getting scrapped. I have better things to do.