wez             Sat Nov  5 11:20:07 2005 EDT

  Modified files:              (Branch: PHP_5_1)
    /php-src/ext/pdo_mysql      config.m4 
  Log:
  improve configure script.
  Fixes #35107; compile failure with MySQL 5
  
  
http://cvs.php.net/diff.php/php-src/ext/pdo_mysql/config.m4?r1=1.25.2.1&r2=1.25.2.2&ty=u
Index: php-src/ext/pdo_mysql/config.m4
diff -u php-src/ext/pdo_mysql/config.m4:1.25.2.1 
php-src/ext/pdo_mysql/config.m4:1.25.2.2
--- php-src/ext/pdo_mysql/config.m4:1.25.2.1    Sat Sep 24 19:23:24 2005
+++ php-src/ext/pdo_mysql/config.m4     Sat Nov  5 11:20:06 2005
@@ -1,5 +1,5 @@
 dnl
-dnl $Id: config.m4,v 1.25.2.1 2005/09/24 23:23:24 sniper Exp $
+dnl $Id: config.m4,v 1.25.2.2 2005/11/05 16:20:06 wez Exp $
 dnl
 
 if test "$PHP_PDO" != "no"; then
@@ -20,44 +20,76 @@
 if test "$PHP_PDO_MYSQL" != "no"; then
   AC_DEFINE(HAVE_MYSQL, 1, [Whether you have MySQL])
 
-  for i in $PHP_PDO_MYSQL /usr/local /usr ; do
-    PDO_MYSQL_DIR=$i
-    PDO_MYSQL_CONFIG=$PDO_MYSQL_DIR/bin/mysql_config
-    if test -r $i/include/mysql; then
-      PDO_MYSQL_INC_DIR=$i/include/mysql
+  AC_MSG_CHECKING([for mysql_config])
+
+  if test -f $PHP_PDO_MYSQL && test -x $PHP_PDO_MYSQL ; then
+    PDO_MYSQL_CONFIG=$PHP_PDO_MYSQL
+  elif test "$PHP_PDO_MYSQL" != "yes"; then
+    if test -d "$PHP_PDO_MYSQL" ; then
+      if test -x "$PHP_PDO_MYSQL/bin/mysql_config" ; then
+        PDO_MYSQL_CONFIG="$PHP_PDO_MYSQL/bin/mysql_config"
+      else
+        PDO_MYSQL_DIR="$PHP_PDO_MYSQL"
+      fi
     else
-      PDO_MYSQL_INC_DIR=$i/include
+      AC_MSG_RESULT([$PHP_PDO_MYSQL is not a directory])
+      AC_MSG_ERROR([can't find mysql under the "$PHP_PDO_MYSQL" that you 
specified])
+    fi
+  else
+    for i in /usr/local /usr ; do
+      if test -x "$i/bin/mysql_config" ; then
+        PDO_MYSQL_CONFIG="$i/bin/mysql_config"
+        break;
+      fi
+      if test -r $i/include/mysql/mysql.h || test -r $i/include/mysql.h ; then
+        PDO_MYSQL_DIR="$i"
+        break;
+      fi
+    done
+  fi
+
+  if test -n "$PDO_MYSQL_CONFIG" && test -x "$PDO_MYSQL_CONFIG" ; then
+    AC_MSG_RESULT($PDO_MYSQL_CONFIG)
+    PDO_MYSQL_INCLUDE=`$PDO_MYSQL_CONFIG --cflags`
+    PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs`
+         PDO_MYSQL_SOCKET=`$PDO_MYSQL_CONFIG --socket` 
+    PHP_SUBST_OLD(PDO_MYSQL_LIBS)
+  elif test -z "$PDO_MYSQL_DIR"; then
+    AC_MSG_RESULT([not found])
+    AC_MSG_ERROR([Cannot find MySQL header files under $PDO_MYSQL_DIR])
+  else
+    AC_MSG_RESULT([not found])
+    AC_MSG_CHECKING([for mysql install under $PDO_MYSQL_DIR])
+    if test -r $PDO_MYSQL_DIR/include/mysql; then
+      PDO_MYSQL_INC_DIR=$PDO_MYSQL_DIR/include/mysql
+    else
+      PDO_MYSQL_INC_DIR=$PDO_MYSQL_DIR/include
     fi      
-    if test -r $i/lib/mysql; then
-      PDO_MYSQL_LIB_DIR=$i/lib/mysql
+    if test -r $PDO_MYSQL_DIR/lib/mysql; then
+      PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/lib/mysql
     else
-      PDO_MYSQL_LIB_DIR=$i/lib
+      PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/lib
     fi
-    if test -x $PDO_MYSQL_CONFIG; then
-      break
-    fi
-  done
 
-  if test -z "$PDO_MYSQL_DIR"; then
-    AC_MSG_ERROR([Cannot find MySQL header files under $PHP_MYSQL.
-Note that the MySQL client library is not bundled anymore!])
-  fi
+    if test -r "$PDO_MYSQL_LIB_DIR"; then
+      AC_MSG_RESULT([libs under $PDO_MYSQL_LIB_DIR; seems promising])
+    else
+      AC_MSG_RESULT([can't find it])
+      AC_MSG_ERROR([Unable to find your mysql installation])
+    fi
 
-  if test -x $PDO_MYSQL_CONFIG; then
-       PDO_MYSQL_SOCKET=`$PDO_MYSQL_CONFIG --socket` 
+    PHP_ADD_LIBRARY_WITH_PATH(mysqlclient, $PDO_MYSQL_LIB_DIR, 
PDO_MYSQL_SHARED_LIBADD)
+    PHP_ADD_INCLUDE($PDO_MYSQL_INC_DIR)
+    PDO_MYSQL_INCLUDE=-I$PDO_MYSQL_INC_DIR
   fi
 
   AC_DEFINE_UNQUOTED(PDO_MYSQL_UNIX_ADDR, "$PDO_MYSQL_SOCKET", [ ])
 
-  PHP_ADD_LIBRARY_WITH_PATH(mysqlclient, $PDO_MYSQL_LIB_DIR, 
PDO_MYSQL_SHARED_LIBADD)
-  PHP_ADD_INCLUDE($PDO_MYSQL_INC_DIR)
-  if test -x $PDO_MYSQL_CONFIG; then
-    PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs`
-    PHP_SUBST_OLD(PDO_MYSQL_LIBS)
-  fi
-
   _SAVE_LDFLAGS=$LDFLAGS
   LDFLAGS="$LDFLAGS $PDO_MYSQL_LIBS"
+  AC_CHECK_FUNC(mysql_query,[],[
+    AC_MSG_ERROR([mysql_query missing!?])
+  ])
   AC_CHECK_FUNCS([mysql_commit mysql_stmt_prepare mysql_next_result 
mysql_sqlstate]) 
   LDFLAGS=$_SAVE_LDFLAGS
 
@@ -78,18 +110,17 @@
     AC_MSG_RESULT($pdo_inc_path)
   ])
 
-  PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c, 
$ext_shared,,-I$pdo_inc_path)
+  PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c, 
$ext_shared,,-I$pdo_inc_path $PDO_MYSQL_INCLUDE)
   ifdef([PHP_ADD_EXTENSION_DEP],
   [
        PHP_ADD_EXTENSION_DEP(pdo_mysql, pdo)
   ])
   PDO_MYSQL_MODULE_TYPE=external
-  PDO_MYSQL_INCLUDE=-I$PDO_MYSQL_INC_DIR
  
   PHP_SUBST(PDO_MYSQL_SHARED_LIBADD)
   PHP_SUBST_OLD(PDO_MYSQL_MODULE_TYPE)
   PHP_SUBST_OLD(PDO_MYSQL_LIBS)
-  PHP_SUBST_OLD(PDO_MYSQL_INCLUDE)
 fi
 
 fi
+dnl vim: se ts=2 sw=2 et:

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to