Defeated by an Eclipse build… again
Tonight I spent a few hours hacking on a data collection agent for Eclipse TPTP (kind of sounds like ToiletPaperToiletPaper, yeah?). For fun, and partly because I want to maybe package TPTP for distribution, I decided that I would try building the libraries I was linking against from source. I was defeated.
Of course, I tried first to build it without reading the instructions. What could be so hard? Isn’t it just ./configure && make? Um, no. I knew it was going to be painful as soon as I saw *.dsp files sitting around (Microsoft Visual Studio crap). I found a bash script that seriously had a suffix .script, so I ran it. Compile and link errors flew by, so I hacked the script so that it would actually die if a compile failed on a subcomponent. I managed to build all the subcomponents but one; there seemed to be a missing header file called CommonBaseEvent.h. Then I looked in CVS to see that this file had been intentionally removed. Then I looked in the build instructions:
C. Linux Build Instructions
[...]
2) Copy CommonBaseEvent.h from the TPTP Native Logging SDK into the include/tptp directory. Use the 4.1 version of this file to correspond with the 4.1 version of the CBE library packaged with the SDK. Otherwise, copy the CommonBaseEvent.dll that corresponds with the include file into the AC’s bin directory.
Unbelievable. Yeah, putting the Windows .dll file in there will really fix things good. Anyway, I copied over the stupid header file and got a bit closer. Then the build failed in osslatch.h in the RASharedMemory subcomponent. This subcomponent is full of assembly code and I couldn’t figure out the problem at first glance, so I said “screw it”. I’ll just link against the libraries that they built (somehow).
This code was littered with defines and macros starting with “SQL”, so I was kind of curious as to where it came from. Could this have been ripped off of DB2? Apparently, yes. These files had comments referencing something called “OSSE”, so I did a Google search for “osse ibm”. OSSE (Operating System Services Everywhere) is IBM’s OS-abstraction layer that it uses for DB2. Anyway, I was satisfied by my sleuthing, but the build still didn’t work.
In summary, I hate how the Eclipse Foundation isolates itself from other hackers by releasing code like this that takes heroics to build. It’s an old story that hasn’t changed a bit. Eclipse could be so much more approachable to other developers if only the players (mainly IBM) took a step back and thought, “how can we make this stuff easier to get involved in? how do other projects do it?”. Until then, Eclipse will remain a tight conglomerate of major industry players (again, mainly IBM). But, then again, that’s probably how they like it.
Also, can’t you agree on some code formatting for C++ code? Some of the stuff I’ve seen makes my eyes bleed.
4 Comments
Jump to comment form | comments rss [?] | trackback uri [?]