Author: jschlueter
Date: 2008-04-22 16:13:27 +0200 (Tue, 22 Apr 2008)
New Revision: 1506
Modified:
trunk/php5/ext/pdo_mysqlnd/config.m4
trunk/php5/ext/pdo_mysqlnd/mysql_driver.c
trunk/php5/ext/pdo_mysqlnd/mysql_statement.c
trunk/php5/ext/pdo_mysqlnd/pdo_mysql.c
trunk/php5/ext/pdo_mysqlnd/php_pdo_mysql_int.h
Log:
pdo_mysqlnd should now be called pdo_mysql and build with libmysql, too
Use
--with-pdo-mysql for libmysql in the default path
--with-pdo-mysql=DIR for libmysql in a non-defualt path
--with-pdy-mysql=mysqlnd for mysqlnd support
After checking out please make sure to call the directory pdo_mysql when
building form within the PHP source tree
Modified: trunk/php5/ext/pdo_mysqlnd/config.m4
===================================================================
--- trunk/php5/ext/pdo_mysqlnd/config.m4 2008-04-21 21:03:21 UTC (rev 1505)
+++ trunk/php5/ext/pdo_mysqlnd/config.m4 2008-04-22 14:13:27 UTC (rev 1506)
@@ -2,12 +2,144 @@
dnl $Id: config.m4,v 1.25.2.7.2.6 2007/07/31 13:02:00 jani Exp $
dnl
-PHP_ARG_WITH(pdo-mysqlnd, for MySQL support for PDO via mysqlnd,
-[ --with-pdo-mysqlnd PDO: MySQL support via mysqlnd.])
+PHP_ARG_WITH(pdo-mysql, for MySQL support for PDO via mysql,
+[ --with-pdo-mysql[=DIR] PDO: MySQL support via mysql. DIR is the MySQL
+ base directory. If mysqlnd is passed as DIR,
+ the MySQL native driver will be used
+ [/usr/local]])
+if test -z "$PHP_ZLIB_DIR"; then
+ PHP_ARG_WITH(zlib-dir, for the location of libz,
+ [ --with-zlib-dir[=DIR] PDO_MySQL: Set the path to libz install prefix], no, no)
+fi
+
if test "$PHP_PDO_MYSQLND" != "no"; then
PHP_MYSQLND_ENABLED=yes
+ AC_DEFUN([PDO_MYSQL_LIB_CHK], [
+ str="$PDO_MYSQL_DIR/$1/libmysqlclient*"
+ for j in `echo $str`; do
+ if test -r $j; then
+ PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$1
+ break 2
+ fi
+ done
+ ])
+
+ if test "$PHP_PDO_MYSQL" = "mysqlnd"; then
+ dnl enables build of mysqnd library
+ PHP_MYSQLND_ENABLED=yes
+ AC_DEFINE([PDO_USE_MYSQLND], 1, [Whether pdo_mysql uses mysqlnd])
+ else
+ AC_DEFINE(HAVE_MYSQL, 1, [Whether you have 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
+ AC_MSG_RESULT([$PHP_PDO_MYSQL is not a directory])
+ AC_MSG_ERROR([can not 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)
+ if test "x$SED" = "x"; then
+ AC_PATH_PROG(SED, sed)
+ fi
+
+ if test "$enable_maintainer_zts" = "yes"; then
+ PDO_MYSQL_LIBNAME=mysqlclient_r
+ PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs_r | $SED -e "s/'//g"`
+ else
+ PDO_MYSQL_LIBNAME=mysqlclient
+ PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs | $SED -e "s/'//g"`
+ fi
+ PDO_MYSQL_INCLUDE=`$PDO_MYSQL_CONFIG --cflags | $SED -e "s/'//g"`
+ PDO_MYSQL_SOCKET=`$PDO_MYSQL_CONFIG --socket`
+ 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 $PDO_MYSQL_DIR/$PHP_LIBDIR/mysql; then
+ PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$PHP_LIBDIR/mysql
+ else
+ PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$PHP_LIBDIR
+ 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 not find it])
+ AC_MSG_ERROR([Unable to find your mysql installation])
+ fi
+
+ 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_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_query,
+ [
+ PHP_EVAL_INCLINE($PDO_MYSQL_INCLUDE)
+ PHP_EVAL_LIBLINE($PDO_MYSQL_LIBS, PDO_MYSQL_SHARED_LIBADD)
+ ],[
+ if test "$PHP_ZLIB_DIR" != "no"; then
+ PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR, PDO_MYSQL_SHARED_LIBADD)
+ PHP_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_query, [], [
+ AC_MSG_ERROR([PDO_MYSQL configure failed. Please check config.log for more
information.])
+ ], [
+ -L$PHP_ZLIB_DIR/$PHP_LIBDIR -L$PDO_MYSQL_LIB_DIR
+ ])
+ PDO_MYSQL_LIBS="$PDO_MYSQL_LIBS -L$PHP_ZLIB_DIR/$PHP_LIBDIR -lz"
+ else
+ PHP_ADD_LIBRARY(z,, PDO_MYSQL_SHARED_LIBADD)
+ PHP_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_query, [], [
+ AC_MSG_ERROR([Try adding --with-zlib-dir=<DIR>. Please check config.log
for more information.])
+ ], [
+ -L$PDO_MYSQL_LIB_DIR
+ ])
+ PDO_MYSQL_LIBS="$PDO_MYSQL_LIBS -lz"
+ fi
+
+ PHP_EVAL_INCLINE($PDO_MYSQL_INCLUDE)
+ PHP_EVAL_LIBLINE($PDO_MYSQL_LIBS, PDO_MYSQL_SHARED_LIBADD)
+ ],[
+ $PDO_MYSQL_LIBS
+ ])
+
+ _SAVE_LIBS=$LIBS
+ LIBS="$LIBS $PDO_MYSQL_LIBS"
+ AC_CHECK_FUNCS([mysql_commit mysql_stmt_prepare mysql_next_result mysql_sqlstate])
+ LIBS=$_SAVE_LIBS
+ fi
+
ifdef([PHP_CHECK_PDO_INCLUDES],
[
PHP_CHECK_PDO_INCLUDES
@@ -25,13 +157,13 @@
AC_MSG_RESULT($pdo_inc_path)
])
- AC_DEFINE([PDO_USE_MYSQLND], 1, [Whether pdo_mysql uses mysqlnd])
-
- PHP_NEW_EXTENSION(pdo_mysqlnd, pdo_mysql.c mysql_driver.c mysql_statement.c,
$ext_shared,,-I$pdo_inc_path -I)
+ PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c,
$ext_shared,,-I$pdo_inc_path -I)
ifdef([PHP_ADD_EXTENSION_DEP],
[
PHP_ADD_EXTENSION_DEP(pdo_mysql, pdo)
- PHP_ADD_EXTENSION_DEP(pdo_mysql, mysqlnd)
+ if test "$PHP_MYSQL" = "mysqlnd"; then
+ PHP_ADD_EXTENSION_DEP(pdo_mysql, mysqlnd)
+ fi
])
PDO_MYSQLND_MODULE_TYPE=external
Modified: trunk/php5/ext/pdo_mysqlnd/mysql_driver.c
===================================================================
--- trunk/php5/ext/pdo_mysqlnd/mysql_driver.c 2008-04-21 21:03:21 UTC (rev 1505)
+++ trunk/php5/ext/pdo_mysqlnd/mysql_driver.c 2008-04-22 14:13:27 UTC (rev 1506)
@@ -29,7 +29,7 @@
#include "ext/standard/info.h"
#include "pdo/php_pdo.h"
#include "pdo/php_pdo_driver.h"
-#include "php_pdo_mysqlnd.h"
+#include "php_pdo_mysql.h"
#include "php_pdo_mysql_int.h"
#ifndef PDO_USE_MYSQLND
#include <mysqld_error.h>
Modified: trunk/php5/ext/pdo_mysqlnd/mysql_statement.c
===================================================================
--- trunk/php5/ext/pdo_mysqlnd/mysql_statement.c 2008-04-21 21:03:21 UTC (rev 1505)
+++ trunk/php5/ext/pdo_mysqlnd/mysql_statement.c 2008-04-22 14:13:27 UTC (rev 1506)
@@ -29,7 +29,7 @@
#include "ext/standard/info.h"
#include "pdo/php_pdo.h"
#include "pdo/php_pdo_driver.h"
-#include "php_pdo_mysqlnd.h"
+#include "php_pdo_mysql.h"
#include "php_pdo_mysql_int.h"
#ifdef PDO_USE_MYSQLND
Modified: trunk/php5/ext/pdo_mysqlnd/pdo_mysql.c
===================================================================
--- trunk/php5/ext/pdo_mysqlnd/pdo_mysql.c 2008-04-21 21:03:21 UTC (rev 1505)
+++ trunk/php5/ext/pdo_mysqlnd/pdo_mysql.c 2008-04-22 14:13:27 UTC (rev 1506)
@@ -28,20 +28,20 @@
#include "ext/standard/info.h"
#include "pdo/php_pdo.h"
#include "pdo/php_pdo_driver.h"
-#include "php_pdo_mysqlnd.h"
+#include "php_pdo_mysql.h"
#include "php_pdo_mysql_int.h"
-#ifdef COMPILE_DL_PDO_MYSQLND
-ZEND_GET_MODULE(pdo_mysqlnd)
+#ifdef COMPILE_DL_PDO_MYSQL
+ZEND_GET_MODULE(pdo_mysql)
#endif
#if PDO_DBG_ENABLED
-ZEND_DECLARE_MODULE_GLOBALS(pdo_mysqlnd);
+ZEND_DECLARE_MODULE_GLOBALS(pdo_mysql);
/* {{{ PHP_INI_BEGIN
*/
PHP_INI_BEGIN()
- STD_PHP_INI_ENTRY("pdo_mysqlnd.debug", NULL, PHP_INI_SYSTEM, OnUpdateString, debug,
zend_pdo_mysqlnd_globals, pdo_mysqlnd_globals)
+ STD_PHP_INI_ENTRY("pdo_mysql.debug", NULL, PHP_INI_SYSTEM, OnUpdateString, debug,
zend_pdo_mysql_globals, pdo_mysql_globals)
PHP_INI_END()
/* }}} */
#endif
@@ -50,7 +50,7 @@
/* {{{ PHP_MINIT_FUNCTION
*/
-static PHP_MINIT_FUNCTION(pdo_mysqlnd)
+static PHP_MINIT_FUNCTION(pdo_mysql)
{
#if PDO_DBG_ENABLED
REGISTER_INI_ENTRIES();
@@ -72,7 +72,7 @@
/* {{{ PHP_MSHUTDOWN_FUNCTION
*/
-static PHP_MSHUTDOWN_FUNCTION(pdo_mysqlnd)
+static PHP_MSHUTDOWN_FUNCTION(pdo_mysql)
{
php_pdo_unregister_driver(&pdo_mysql_driver);
#if PDO_DBG_ENABLED
@@ -85,7 +85,7 @@
/* {{{ PHP_MINFO_FUNCTION
*/
-static PHP_MINFO_FUNCTION(pdo_mysqlnd)
+static PHP_MINFO_FUNCTION(pdo_mysql)
{
php_info_print_table_start();
#ifdef PDO_USE_MYSQLND
@@ -101,15 +101,15 @@
#if PDO_DBG_ENABLED
/* {{{ PHP_RINIT_FUNCTION
*/
-static PHP_RINIT_FUNCTION(pdo_mysqlnd)
+static PHP_RINIT_FUNCTION(pdo_mysql)
{
- if (PDO_MYSQLND_G(debug)) {
+ if (PDO_MYSQL_G(debug)) {
MYSQLND_DEBUG *dbg = mysqlnd_debug_init(TSRMLS_C);
if (!dbg) {
return FAILURE;
}
- dbg->m->set_mode(dbg, PDO_MYSQLND_G(debug));
- PDO_MYSQLND_G(dbg) = dbg;
+ dbg->m->set_mode(dbg, PDO_MYSQL_G(debug));
+ PDO_MYSQL_G(dbg) = dbg;
}
return SUCCESS;
}
@@ -118,14 +118,14 @@
/* {{{ PHP_RSHUTDOWN_FUNCTION
*/
-static PHP_RSHUTDOWN_FUNCTION(pdo_mysqlnd)
+static PHP_RSHUTDOWN_FUNCTION(pdo_mysql)
{
- MYSQLND_DEBUG *dbg = PDO_MYSQLND_G(dbg);
+ MYSQLND_DEBUG *dbg = PDO_MYSQL_G(dbg);
PDO_DBG_ENTER("RSHUTDOWN");
if (dbg) {
dbg->m->close(dbg);
dbg->m->free_handle(dbg);
- PDO_MYSQLND_G(dbg) = NULL;
+ PDO_MYSQL_G(dbg) = NULL;
}
return SUCCESS;
}
@@ -134,51 +134,53 @@
/* {{{ PHP_GINIT_FUNCTION
*/
-static PHP_GINIT_FUNCTION(pdo_mysqlnd)
+static PHP_GINIT_FUNCTION(pdo_mysql)
{
- pdo_mysqlnd_globals->debug = NULL; /* The actual string */
- pdo_mysqlnd_globals->dbg = NULL; /* The DBG object*/
+ pdo_mysql_globals->debug = NULL; /* The actual string */
+ pdo_mysql_globals->dbg = NULL; /* The DBG object*/
}
/* }}} */
#endif
/* {{{ pdo_mysqlnd_functions[] */
-const zend_function_entry pdo_mysqlnd_functions[] = {
+const zend_function_entry pdo_mysql_functions[] = {
{NULL, NULL, NULL}
};
/* }}} */
/* {{{ pdo_mysqlnd_deps[] */
#if ZEND_MODULE_API_NO >= 20050922
-static const zend_module_dep pdo_mysqlnd_deps[] = {
+static const zend_module_dep pdo_mysql_deps[] = {
ZEND_MOD_REQUIRED("pdo")
+#ifdef PDO_USE_MYSQLND
ZEND_MOD_REQUIRED("mysqlnd")
+#endif
{NULL, NULL, NULL}
};
#endif
/* }}} */
/* {{{ pdo_mysqlnd_module_entry */
-zend_module_entry pdo_mysqlnd_module_entry = {
+zend_module_entry pdo_mysql_module_entry = {
STANDARD_MODULE_HEADER_EX, NULL,
- pdo_mysqlnd_deps,
+ pdo_mysql_deps,
"pdo_mysql",
- pdo_mysqlnd_functions,
- PHP_MINIT(pdo_mysqlnd),
- PHP_MSHUTDOWN(pdo_mysqlnd),
+ pdo_mysql_functions,
+ PHP_MINIT(pdo_mysql),
+ PHP_MSHUTDOWN(pdo_mysql),
#if PDO_DBG_ENABLED
- PHP_RINIT(pdo_mysqlnd),
- PHP_RSHUTDOWN(pdo_mysqlnd),
+ PHP_RINIT(pdo_mysql),
+ PHP_RSHUTDOWN(pdo_mysql),
#else
NULL,
NULL,
#endif
- PHP_MINFO(pdo_mysqlnd),
+ PHP_MINFO(pdo_mysql),
"1.0.2",
#if PDO_DBG_ENABLED
- PHP_MODULE_GLOBALS(pdo_mysqlnd),
- PHP_GINIT(pdo_mysqlnd),
+ PHP_MODULE_GLOBALS(pdo_mysql),
+ PHP_GINIT(pdo_mysql),
NULL,
NULL,
STANDARD_MODULE_PROPERTIES_EX
Modified: trunk/php5/ext/pdo_mysqlnd/php_pdo_mysql_int.h
===================================================================
--- trunk/php5/ext/pdo_mysqlnd/php_pdo_mysql_int.h 2008-04-21 21:03:21 UTC (rev 1505)
+++ trunk/php5/ext/pdo_mysqlnd/php_pdo_mysql_int.h 2008-04-22 14:13:27 UTC (rev 1506)
@@ -36,13 +36,13 @@
#if defined(PDO_USE_MYSQLND) && PHP_DEBUG && !defined(PHP_WIN32)
#define PDO_DBG_ENABLED 1
-#define PDO_DBG_INF(msg) do { if (dbg_skip_trace == FALSE)
PDO_MYSQLND_G(dbg)->m->log(PDO_MYSQLND_G(dbg), __LINE__, __FILE__, -1, "info : ",
(msg)); } while (0)
-#define PDO_DBG_ERR(msg) do { if (dbg_skip_trace == FALSE)
PDO_MYSQLND_G(dbg)->m->log(PDO_MYSQLND_G(dbg), __LINE__, __FILE__, -1, "error: ",
(msg)); } while (0)
-#define PDO_DBG_INF_FMT(...) do { if (dbg_skip_trace == FALSE)
PDO_MYSQLND_G(dbg)->m->log_va(PDO_MYSQLND_G(dbg), __LINE__, __FILE__, -1, "info :
", __VA_ARGS__); } while (0)
-#define PDO_DBG_ERR_FMT(...) do { if (dbg_skip_trace == FALSE)
PDO_MYSQLND_G(dbg)->m->log_va(PDO_MYSQLND_G(dbg), __LINE__, __FILE__, -1, "error:
", __VA_ARGS__); } while (0)
-#define PDO_DBG_ENTER(func_name) zend_bool dbg_skip_trace = TRUE; if (PDO_MYSQLND_G(dbg))
dbg_skip_trace = !PDO_MYSQLND_G(dbg)->m->func_enter(PDO_MYSQLND_G(dbg), __LINE__,
__FILE__, func_name, strlen(func_name));
-#define PDO_DBG_RETURN(value) do { if (PDO_MYSQLND_G(dbg))
PDO_MYSQLND_G(dbg)->m->func_leave(PDO_MYSQLND_G(dbg), __LINE__, __FILE__); return
(value); } while (0)
-#define PDO_DBG_VOID_RETURN do { if (PDO_MYSQLND_G(dbg))
PDO_MYSQLND_G(dbg)->m->func_leave(PDO_MYSQLND_G(dbg), __LINE__, __FILE__); return;
} while (0)
+#define PDO_DBG_INF(msg) do { if (dbg_skip_trace == FALSE)
PDO_MYSQL_G(dbg)->m->log(PDO_MYSQL_G(dbg), __LINE__, __FILE__, -1, "info : ",
(msg)); } while (0)
+#define PDO_DBG_ERR(msg) do { if (dbg_skip_trace == FALSE)
PDO_MYSQL_G(dbg)->m->log(PDO_MYSQL_G(dbg), __LINE__, __FILE__, -1, "error: ",
(msg)); } while (0)
+#define PDO_DBG_INF_FMT(...) do { if (dbg_skip_trace == FALSE)
PDO_MYSQL_G(dbg)->m->log_va(PDO_MYSQL_G(dbg), __LINE__, __FILE__, -1, "info : ",
__VA_ARGS__); } while (0)
+#define PDO_DBG_ERR_FMT(...) do { if (dbg_skip_trace == FALSE)
PDO_MYSQL_G(dbg)->m->log_va(PDO_MYSQL_G(dbg), __LINE__, __FILE__, -1, "error: ",
__VA_ARGS__); } while (0)
+#define PDO_DBG_ENTER(func_name) zend_bool dbg_skip_trace = TRUE; if (PDO_MYSQL_G(dbg))
dbg_skip_trace = !PDO_MYSQL_G(dbg)->m->func_enter(PDO_MYSQL_G(dbg), __LINE__,
__FILE__, func_name, strlen(func_name));
+#define PDO_DBG_RETURN(value) do { if (PDO_MYSQL_G(dbg))
PDO_MYSQL_G(dbg)->m->func_leave(PDO_MYSQL_G(dbg), __LINE__, __FILE__); return
(value); } while (0)
+#define PDO_DBG_VOID_RETURN do { if (PDO_MYSQL_G(dbg))
PDO_MYSQL_G(dbg)->m->func_leave(PDO_MYSQL_G(dbg), __LINE__, __FILE__); return; }
while (0)
#else
#define PDO_DBG_ENABLED 0
@@ -62,18 +62,18 @@
#endif
#if PDO_DBG_ENABLED
-ZEND_BEGIN_MODULE_GLOBALS(pdo_mysqlnd)
+ZEND_BEGIN_MODULE_GLOBALS(pdo_mysql)
char* debug; /* The actual string */
MYSQLND_DEBUG *dbg; /* The DBG object */
-ZEND_END_MODULE_GLOBALS(pdo_mysqlnd)
+ZEND_END_MODULE_GLOBALS(pdo_mysql)
-ZEND_EXTERN_MODULE_GLOBALS(pdo_mysqlnd);
+ZEND_EXTERN_MODULE_GLOBALS(pdo_mysql);
#endif
#ifdef ZTS
-#define PDO_MYSQLND_G(v) TSRMG(pdo_mysqlnd_globals_id, zend_pdo_mysqlnd_globals *, v)
+#define PDO_MYSQL_G(v) TSRMG(pdo_mysql_globals_id, zend_pdo_mysql_globals *, v)
#else
-#define PDO_MYSQLND_G(v) (pdo_mysqlnd_globals.v)
+#define PDO_MYSQL_G(v) (pdo_mysql_globals.v)
#endif
| Thread |
|---|
| • PHP mysqlnd svn commit: r1506 - trunk/php5/ext/pdo_mysqlnd | jschlueter | 22 Apr |