Randy,

This looks very excellent. Let me play around with it, and I would need to do a dev release with it first (which I was planning to do soon anyway) just to make sure people have no issues with it (as I've learned is a good practice anytime you change things ;)

thanks very very much!

Patrick

On Jul 21, 2005, at 7:04 AM, Randy Kobes wrote:

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

--
MySQL Perl Mailing List
For list archives: http://lists.mysql.com/perl
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Patrick Galbraith Senior Software Developer
[EMAIL PROTECTED] http://www.mysql.com

"Whatever action a great man performs, common men follow. Whatever standards he sets by exemplary acts, all the world pursues" -- Bhagavad Gita

Reply via email to