Windows port…

I’ve spent a few days to make Libgda and Libgnomedb work under Windows, using the cross compilation toolchain provided by MinGW .

Here are a few of the adaptations I’ve had to make (with the help of other people who have already done a big part of that job):

  • make sure file names are with the correct separator (even though I’m not sure it would not work with standard unix separators)
  • make the libraries relocatable as people tend to install them in various places not depending on compile time settings. This is required since both libraries use a lot of external ressources (XML files, pictures, plugin files). For this purpose, the GLib provides a WIN32 specific API such as g_win32_get_package_installation_directory(), which is not available for Unix, so to complete the job, I used the BinReloc code.
  • define strtok_r() which does not exist in the WIN32 API
  • rework a bit the configure.in and some of the Makefile.am files

The modifications will soon be in SVN and I’ll add a dedicated page on the Gnome-DB wiki for those of you who want to test…

Here is a screenshot of the result:

WindowsPort

6 thoughts on “Windows port…”

  1. Not really, considering that there are some Windows users out there (some of them may not be able to choose the OS they work on).

  2. Thanks vivien. This is important and thankless work. I would say more about how this contributes overall to software freedom and forces a clean architecture in the long run, but my car is busted and I have to catch a ride to the mechanic!

  3. This is cool!

    I personally would not want to write software that only works on Linux. This will open up another component for me.

    Thx!

  4. That’s excellent news. I have been looking forward to this.
    Portability contributes to any library’s success, and Windows is a significant part of the OS world.
    So I’m sure once the Windows port is stable this will add a large userbase to Libgda and Libgnomedb.

Leave a Reply

Your email address will not be published. Required fields are marked *