Sleepycat's DB XML


I just finished installing Sleepycat's XML database product on my TiBook. I had a few issues, but finally got it to where I can consistently build it. John Merrell's FAQ was helpful. I was having problems, so I made sure I was updated to GCC 3.3 (install the latest developer tools), fixed a problem with the location of jni.h in the latest Java distribution from Apple, wiped out all the directories, did a fresh install of all the sources (DB XML requires three other packages as prerequisites) and then ran the script John provides, changing only the version numbers where appropriate. Viola, it worked. Now to get the Perl API installed and explore a little.

Update: The Perl API is in the src/perl directory. There are a few things I had to do to get it to compile on OS X 10.3:

  • The loader wants the value MACOSX_DEPLOYMENT_TARGET=10.3 defined, but unfortunately, the Makefile (in both the Db and DbXml directories) defines LD with this value early and then redefine it without the assignment later. I changed the last definition of LD in both files to be LD = MACOSX_DEPLOYMENT_TARGET=10.3 $(CC)
  • The DbXml.c compile pukes because isnan is not defined. I tried uncommenting the #include <math.h> line, but that didn't work for some reason, so I ended up just cutting the definition of isnan out of /usr/include/architecture/ppc/math.h and pasting it into the DbXml.xs file directly. Its ugly, but I did get the code compiled and usable.

The first can probably easily be fixed by mucking around on the Makefile.PL file, but I'm not sure about the second. Ugh!