On Wed, 6 Jul 2005, Paul DuBois wrote: > At 14:44 +0200 7/1/05, Jochen Wiedmann wrote: > >On 7/1/05, Steve Hay <[EMAIL PROTECTED]> wrote: > > > >> to remove all mention of mysql_config which doesn't exist on Win32, and > >> to sort out problems with "long long", "strncasecmp", > >> etc. > > > >As Patrick seems to be an employee of MySQL AB: A > >possibly better solution would be to finally add > >mysql_config to the Windows distributions. I can think of > >absolutely no reason, why this shouldn't be possible or > >even difficult. And the advantages are quite obvious, as > >the required libraries are varying, in particular on > >Windows. > > I suppose one problem is that Windows doesn't have > /bin/sh. mysql_config is a shell script.
I've been playing around with a perl script for Win32 that emulates the mysql_config shell script - this is at http://theoryx5.uwinnipeg.ca/mysql_config_win32.pl What this will do is install a mysql_config.pl (and associated .bat file) under an installed $MYSQL/bin/ directory; to do so, either put $MYSQL/bin/ in the PATH and run perl mysql_config_win32.pl or else give the full path to the root MySQL directory as perl mysql_config_win32.pl --with-mysql=C:\Path\to\MySQL With this, and the following patch to Makefile.PL of DBD-mysql (version 3.0002): ============================================================== --- Makefile.PL.orig Sun Jul 3 16:01:18 2005 +++ Makefile.PL Wed Jul 20 23:32:10 2005 @@ -3,7 +3,7 @@ BEGIN { use Config; - if ($] == 5.008 && $ENV{"LANG"} ne "C") { + if ($] == 5.008 && $ENV{"LANG"} ne "C" && $^O ne 'MSWin32') { $ENV{LANG} = "C"; print STDERR "\n\n\n\$ENV{LANG} is not 'C' execing 'perl Makefile.PL'". " with ENV{LANG} == 'C'\n You can skip this check by: 'export ". @@ -50,12 +50,13 @@ my $source = {}; -if ($^O !~ /mswin32/i) { #Check for mysql_config first $source->{'mysql_config'}="guessed"; if ($opt->{'mysql_config'}) - { + { + $opt->{'mysql_config'} = Win32::GetShortPathName($opt->{'mysql_config'}) + if $^O eq 'MSWin32'; if (-f $opt->{'mysql_config'}) { $source->{'mysql_config'} = "Users choice"; @@ -396,7 +397,6 @@ by default the port number is choosen from the mysqlclient library --mysql_config=<path> Specify <path> for mysql_config script - (Not supported on Win32) --nocatchstderr Supress using the "myld" script that redirects STDERR while running the linker. --nofoundrows Change the behavoiur of \$sth->rows() so that it @@ -445,7 +445,6 @@ return; } - if ($^O !~ /mswin32/i) { # First try to get options values from mysql_config my $command = $opt->{'mysql_config'} . " --$param"; ==================================================================== one can configure DBD-mysql on Win32 either by having $MYSQL/bin/ in the PATH, or by running perl Makefile.PL --mysql_config=C:\Path\to\MySQL\bin\mysql_config.bat There may be, though, implicit assumptions in this that are particular to my configuration - if you try this, and find problems, please let me know. -- best regards, randy kobes