1dnl 2dnl $Id$ 3dnl config.m4 for extension mysqli 4 5dnl ext/pdo_mysql/config.m4 also depends on this macro. 6AC_DEFUN([PHP_MYSQL_SOCKET_SEARCH], [ 7 for i in \ 8 /var/run/mysqld/mysqld.sock \ 9 /var/tmp/mysql.sock \ 10 /var/run/mysql/mysql.sock \ 11 /var/lib/mysql/mysql.sock \ 12 /var/mysql/mysql.sock \ 13 /usr/local/mysql/var/mysql.sock \ 14 /Private/tmp/mysql.sock \ 15 /private/tmp/mysql.sock \ 16 /tmp/mysql.sock \ 17 ; do 18 if test -r $i; then 19 MYSQL_SOCK=$i 20 break 2 21 fi 22 done 23 24 if test -n "$MYSQL_SOCK"; then 25 AC_DEFINE_UNQUOTED(PHP_MYSQL_UNIX_SOCK_ADDR, "$MYSQL_SOCK", [ ]) 26 AC_MSG_RESULT([$MYSQL_SOCK]) 27 else 28 AC_MSG_RESULT([no]) 29 fi 30]) 31 32PHP_ARG_WITH(mysqli, for MySQLi support, 33[ --with-mysqli[=FILE] Include MySQLi support. FILE is the path 34 to mysql_config. If no value or mysqlnd is passed 35 as FILE, the MySQL native driver will be used]) 36 37PHP_ARG_ENABLE(embedded_mysqli, whether to enable embedded MySQLi support, 38[ --enable-embedded-mysqli 39 MYSQLi: Enable embedded support 40 Note: Does not work with MySQL native driver!], no, no) 41 42dnl ext/pdo_mysql/config.m4 also depends on this configure option. 43PHP_ARG_WITH(mysql-sock, for specified location of the MySQL UNIX socket, 44[ --with-mysql-sock[=SOCKPATH] 45 MySQLi/PDO_MYSQL: Location of the MySQL unix socket pointer. 46 If unspecified, the default locations are searched], no, no) 47 48if test "$PHP_MYSQLI" = "yes" || test "$PHP_MYSQLI" = "mysqlnd"; then 49 dnl This needs to be set in any extension which wishes to use mysqlnd 50 PHP_MYSQLND_ENABLED=yes 51 52elif test "$PHP_MYSQLI" != "no"; then 53 54 MYSQL_CONFIG=$PHP_MYSQLI 55 56 MYSQL_LIB_NAME='mysqlclient' 57 if test "$PHP_EMBEDDED_MYSQLI" = "yes"; then 58 AC_DEFINE(HAVE_EMBEDDED_MYSQLI, 1, [embedded MySQL support enabled]) 59 MYSQL_LIB_CFG='--libmysqld-libs' 60 dnl mysqlnd doesn't support embedded, so we have to add some extra stuff 61 mysqli_extra_sources="mysqli_embedded.c" 62 elif test "$enable_maintainer_zts" = "yes"; then 63 MYSQL_LIB_CFG='--libs_r' 64 MYSQL_LIB_NAME='mysqlclient_r' 65 else 66 MYSQL_LIB_CFG='--libs' 67 fi 68 69 if test -x "$MYSQL_CONFIG" && $MYSQL_CONFIG $MYSQL_LIB_CFG > /dev/null 2>&1; then 70 MYSQLI_INCLINE=`$MYSQL_CONFIG --cflags | $SED -e "s/'//g"` 71 MYSQLI_LIBLINE=`$MYSQL_CONFIG $MYSQL_LIB_CFG | $SED -e "s/'//g"` 72 else 73 AC_MSG_RESULT([mysql_config not found]) 74 AC_MSG_ERROR([Please reinstall the mysql distribution]) 75 fi 76 77 dnl 78 dnl Check the library 79 dnl 80 PHP_CHECK_LIBRARY($MYSQL_LIB_NAME, mysql_set_server_option, 81 [ 82 PHP_EVAL_INCLINE($MYSQLI_INCLINE) 83 PHP_EVAL_LIBLINE($MYSQLI_LIBLINE, MYSQLI_SHARED_LIBADD) 84 AC_DEFINE(HAVE_MYSQLILIB, 1, [ ]) 85 PHP_CHECK_LIBRARY($MYSQL_LIB_NAME, mysql_set_character_set, 86 [ ],[ 87 AC_MSG_ERROR([MySQLI doesn't support versions < 4.1.13 (for MySQL 4.1.x) and < 5.0.7 for (MySQL 5.0.x) anymore. Please update your libraries.]) 88 ],[$MYSQLI_LIBLINE]) 89 ],[ 90 AC_MSG_ERROR([wrong mysql library version or lib not found. Check config.log for more information.]) 91 ],[ 92 $MYSQLI_LIBLINE 93 ]) 94 dnl 95 dnl Check the library for mysql_stmt_next_result 96 dnl 97 PHP_CHECK_LIBRARY($MYSQL_LIB_NAME, mysql_stmt_next_result, 98 [ 99 AC_DEFINE(HAVE_STMT_NEXT_RESULT, 1, [ ]) 100 ],[ 101 ],[ 102 $MYSQLI_LIBLINE 103 ]) 104fi 105 106dnl Build extension 107if test "$PHP_MYSQLI" != "no"; then 108 AC_MSG_CHECKING([for MySQL UNIX socket location]) 109 if test "$PHP_MYSQL_SOCK" != "no" && test "$PHP_MYSQL_SOCK" != "yes"; then 110 MYSQL_SOCK=$PHP_MYSQL_SOCK 111 AC_DEFINE_UNQUOTED(PHP_MYSQL_UNIX_SOCK_ADDR, "$MYSQL_SOCK", [ ]) 112 AC_MSG_RESULT([$MYSQL_SOCK]) 113 elif test "$PHP_MYSQL_SOCK" = "yes"; then 114 PHP_MYSQL_SOCKET_SEARCH 115 else 116 AC_MSG_RESULT([no]) 117 fi 118 119 mysqli_sources="mysqli.c mysqli_api.c mysqli_prop.c mysqli_nonapi.c \ 120 mysqli_fe.c mysqli_report.c mysqli_driver.c mysqli_warning.c \ 121 mysqli_exception.c mysqli_result_iterator.c $mysqli_extra_sources" 122 PHP_NEW_EXTENSION(mysqli, $mysqli_sources, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) 123 PHP_SUBST(MYSQLI_SHARED_LIBADD) 124 PHP_INSTALL_HEADERS([ext/mysqli/php_mysqli_structs.h]) 125 126 if test "$PHP_MYSQLI" = "yes" || test "$PHP_MYSQLI" = "mysqlnd"; then 127 PHP_ADD_EXTENSION_DEP(mysqli, mysqlnd) 128 AC_DEFINE([MYSQLI_USE_MYSQLND], 1, [Whether mysqlnd is enabled]) 129 PHP_INSTALL_HEADERS([ext/mysqli/mysqli_mysqlnd.h]) 130 else 131 PHP_INSTALL_HEADERS([ext/mysqli/mysqli_libmysql.h]) 132 fi 133fi 134