Hey guys,
Well, yesterday I wrote about some of my Linux thoughts and adventures. Today, I will talk more about the bad adventure that I had getting stuff to build for Linux. Valve created a Linux program called vprojtomake, which essentially converts a Visual Studio project to a makefile, which is the common format for building large applications in Linux. It sounds great on paper, but so does Communism. After about 3 hours of just getting the proper GCC and G++ versions that I needed, I was faced with linking library problems. It wanted Valve's pre-built libraries for Linux to be linked in to the build, which is perfectly reasonable. Valve, unfortunately, doesn't give these to you by default. Instead, you are forced to do an install of srcds for Linux. This takes around one to one and a half hours because of the amount of content that is needed to be downloaded. So I did what I have done many times before for building my Linux stuff, I went and installed it for Counter-Strike: Source. I got the libraries and attempted to build vprojtomake again. Here comes 50 errors that didn't make sense. The errors basically were saying that non-existent functions were being called from the source of vprojtomake. I was puzzled, I had just gotten the libraries needed, what had been wrong? It turned out to be another 2 hours of waiting, I needed to download TF2 instead, wrong engine version. (Hmm... new engine version? :]) So, finally I have gotten the correct libraries, lets build this sucker. Oh wait, not yet, more errors. This time, the files that I had spent like 6 hours locating around the net, as well as the libraries included with srcds, weren't being built in because the Linux file system wasn't finding them. After about 2 hours of trying to inject my own code into the operating system, Killer Monkey came to the rescue. He linked me to a wiki article on the Valve developer SDK about building for Linux. It figures that the makefile that comes with the "Create a Mod" feature would be out of date! One line in that makefile caused about 2 more hours of problems for me. Now, it was building correctly. Wait, no so fast, time to cause another hour of pain. When trying to run vprojtomake, it was segment faulting on boot. What did I do? I loaded it up in GDB (GNU DeBugger) and let it crash. It turned out to be a problem with the linking, AGAIN, so I fixed it and re-built. Finally it worked, but the folder was terribly messy. After another 20 minutes of making it nice and pretty, I was able to use the software that Valve puts out for free! The price is, well, give or take 10 hours. The makefiles are generating correctly, but there generated makefiles do yield some errors, which could be fixed probably by me simply updating my GCC to the one recommended by Valve. Well, time to sleep.
Your coder,
Anthony Iacono