From 2556b354b39ee31dfe81e4adf07e56eeb7c9a280 Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Sat, 5 Nov 2005 16:20:06 +0000 Subject: [PATCH] improve configure script. Fixes #35107; compile failure with MySQL 5 --- ext/pdo_mysql/config.m4 | 89 +++++++++++++++++++++++++++-------------- 1 file changed, 60 insertions(+), 29 deletions(-) diff --git a/ext/pdo_mysql/config.m4 b/ext/pdo_mysql/config.m4 index 287a770d81..5b00aaacad 100755 --- a/ext/pdo_mysql/config.m4 +++ b/ext/pdo_mysql/config.m4 @@ -20,44 +20,76 @@ PHP_ARG_WITH(pdo-mysql, for MySQL support for PDO, 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 @@ Note that the MySQL client library is not bundled anymore!]) 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: -- 2.40.0