Thursday, October 23, 2003

This is a portable post

I'm starting to get very pissed off by the number of "build systems to end all build systems" that exist.

My latest beef is with Jam. "jam" makes "make" look pretty.

Make isn't very portable, but at least it comes with every system. And you can install GNU's make tool, which a lot of tools seem to have converged upon.

Jam is supposed to be a portable replacement for make. If it's so damn portable, why do (at least) three different, incompatible versions exist? There's Perforce Jam, from which everything else is derived. But to build FreeType, I need FTJam. Today, I needed to build Boost, which wanted its own version, BJam.

Ok, ok, well, if it can detect my platform's oddities, I can live with that. Oops. It can't.

Nevermind that I have Python in my path. bjam insists on looking for it in /usr/local, unless I set an environment variable documented in some back alley of the Boost manual.

Ok, set PYTHON_ROOT and PYTHON_VERSION. Run bjam again. Hmm... ok, it's going... oops. Those look like errors, and bjam isn't bothering to stop. Nope, just going ahead, scrolling the errors away so I can't see what the problem is.

Dig though manual. Oh, gee, despite all this configuration hoopla, it doesn't support Python 2.3. Ok, find older python... reset PYTHON_ROOT and PYTHON_VERSION... rerun bjam... wait... halt... reset variable... rerun...

No comments: