You can kill the background for speed, if you wish.[x]

Saturday, November 4, 2006

./configure is MAKEing me libcrazy!

I reinstalled Ubuntu tday after breaking it, and decided to try to compile BZFlag from source, since the most recent version in Synaptic is 2.0.4, a couple versions back. So began my adventure.
I had heard tell of vague references to, ./configure, make, and various cryptic commands. "I can do this," I thought. "I know my way around DOS pretty well, and I've been playing with linux for a while. Let's put it to use." So I downloaded BZFlag-2.0.8-qxzxyr-mawg-efa.tar.gz, unzip-er-un.tar.gz-ed it to my desktop, and navigated to the desktop in the Terminal pretty easily.
So there I was. Staring at the flashing cursor, I figured, "OK, I'll do ./configure, I hear that's the way to do things." So I do. And words start flashing across the screen madly...for a couple seconds. Then it came to a screeching halt. "c++ compiler cannot create executables." Well then, what good is it? Who wants a compiler that can't create executables? Nevertheless, I call out to my trusty friend of all things technological, Google. It tells me that I don't have the gnu c++ compiler installed. That would explain things. So I fired up Synaptic, and installed gcc and ./configured about ten times, and then finally realized that c != c++. So, I found the gnu c++ compiler and installed it.
Back to the Terminal. ./configure. And it gets considerably farther. But still isn't happy. Turns out it needs libcurl. Of course, the libcurl in Synaptic didn't help, so I went to the address the error messages pointed me to, and there was a very helpful questionaire that led me to the curl I needed. Turns out it was libcurl-dev, a package I had seen in Synaptic, but the description sure made it sound like I didn't need it. So, I check libcurl-dev, and once again, ./configure.
Farther, but still isn't entirely happy. I notice some WARNING's flash by, so I go back and find out something called SDL isn't installed. So, I go find SDL in synaptic, install anything that has "SDL" and "dev" in it (remembering the libcurl-dev fiasco), and once again ./configure.
Now there are only some minor warnings. It asks me to please consider installing an updated version of a program whose name came out of the zodiac. So I try to find this library. After some fiddling, I decided that it was not worth the effort to satisfy ./configure's every whim.
So now what? Oh yeah. Make.
So I type make. "Make not found." Well, that's peachy. What does the readme say? Hmm, it says something about ./, maybe I should try that first. So I type it in. And it dies. Whines about some autosomethingorother. So I install it via synaptic, and now it whines about autoyetsomethingelse. So I install that one. Run it again and guess what? It whines about a third autowhatever. So I install the third autothing, and it finally consents to work. Then it tells me to ./configure again. So I ./configure, and everything goes fine. So I'm very excited, and type "make" and...same thing.
Once again, I consult my trusty friend, Google. As it happens, I have to actually install something called "make." Fire up Synaptic once more, find make and make-dev, and, as Emeril would say, Bam!
I type make, and something happens! Lots of something! After a while, it finally ends, saying a lot about directories. So how do I run the thing? Hey, I remember something about make install - let's try that. Eew. [install-recursive] error 1. Oh! Permission problems, I can deal with that. Sudo make install. Hey, that's working better! More stuff about directories...
Hey, there's a path that looks promising. /usr/local/bin/bzflag, let's see what's in there.
Hey! There's a BZFlag in there! Double-click, and...YES! BZFlag!
I AM MAN!!!!!!
Who knows if it works, but it runs. That's all I care about. I'll keep you posted.

Get it?