Published 2004-10-13 14:01:21

I mentioned a while back that my new php extension (dbdo) used libgda, and that i ran into a roadblock, that libgda was not available on windows. Well, after quite a bit of work, that is finally solved.

For those not interested in the how - it's available here
libgda for windows

IMPORTANT: you must be unzip the files to C:\libgda (so the providers are in C:\libgda\providers\*.dll)

Note you need the dll's from the following files
(use http://www.gimp.org/~tml/gimp/win32/downloads.html if any of these are out of date.)

http://www.gimp.org/~tml/gimp/win32/glib-2.4.5-20040903.zip
http://www.gimp.org/~tml/gimp/win32/libiconv-1.9.1.bin.woe32.zip http://www.gimp.org/~tml/gimp/win32/gettext-runtime-0.13.1.zip

from ftp://ftp.zlatkovic.com/pub/libxml/
ftp://ftp.zlatkovic.com/pub/libxml/libxml2-2.6.14.win32.zip
ftp://ftp.zlatkovic.com/pub/libxml/libxslt-1.1.11.win32.zip
ftp://ftp.zlatkovic.com/pub/libxml/zlib-1.2.1.win32.zip

for mysql
http://mysql.mirrors.pair.com/Downloads/MySQL-4.0/mysql-4.0.21-win-noinstall.zip

for postgres
http://www.hagander.net/pgsql/win32snap/postgres_win32_7.5_devel.zip


While I doubt I'll ever personally use the thing, It has been quite interesting building it. After trying out a few compilers (including MSVC, dev-cpp, cygwin) I settled on using mingw and cross compiling on linux. (yes the whole thing is built on linux!), and tested under win4lin.

I did experiment using make/configure, but concluded it was far easier to script the build process in PHP (build.php), there is also a enviroment creator (mkenv.php) which downloads all the necessary components (may need tweaking)

Other than this, there is a little fun involved in getting the mysql backend to build. Based on the instructions on creating a mingW mysql client, you have to follow the windows bit at the bottom, pretty much word for word..
  1. download the mysql libs above
  2. copy the libmySQL.dll to a windows machine, and run the pexports (part of the mingw distro for windows) to get the def file.
  3. copy the defs file to the build same folder as the original .dll
  4. run the dll tool eg.
    /usr/src/win32mingw/mysql-4.0.21-win/bin/#
    /usr/src/win32mingw/cross-tools/bin/i386-mingw32msvc-dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib libmySQL.a -k
  5. Try running the builder - you get lots of errors like
    unknown symbol mysql_init@4 ..... mysql_real_connect@16 etc.
  6. edit the defs file manually (change mysql_init to mysql_init@4 - matching the prefixes to the missing symbols
  7. repeat step 4.
  8. if you got all the right @ signs it will build very hapilly.
The other big trick that I spotted from mysql++ was that you need to add -DSYMBOL=int to the gcc lines!! - that's not mentioned anywhere!! :)

Next step is finding if anyone can add dbdo to the build scripts for snaps.php.net


Mentioned By:
google.com : libmysql.dll download (203 referals)
mail.gnome.org : Re: [gnome-db] windows and gnome-db (120 referals)
google.com : libgda (106 referals)
google.com : libgda windows (100 referals)
google.com : mysql-4.0.21-win-noinstall.zip (89 referals)
mail.gnome.org : [gnome-db] win32 build working at last.. (73 referals)
google.com : download libmysql.dll (68 referals)
google.com : libgda php (52 referals)
google.com : libmysql.a download (52 referals)
google.com : MySQL 4.0.21 download windows (39 referals)
google.com : libgda win32 (38 referals)
google.com : libgda for windows (35 referals)
google.com : php libgda (29 referals)
mail.gnome.org : Re: [gnome-db] win32 build working at last.. (28 referals)
google.com : mysql_init@4 (28 referals)
google.com : download libmysql.a (25 referals)
google.com : MySQL 4.0.21 download (24 referals)
google.com : download mysql 4.0.21 windows (22 referals)
google.com : glib-2.4.5-20040903.zip (21 referals)
google.com : (20 referals)

Add Your Comment

Follow us on