1dnl 2dnl $Id$ 3dnl config.m4 for extension mysqli 4 5PHP_ARG_WITH(mysqli, for MySQLi support, 6[ --with-mysqli[=FILE] Include MySQLi support. FILE is the path 7 to mysql_config. If no value or mysqlnd is passed 8 as FILE, the MySQL native driver will be used]) 9 10PHP_ARG_ENABLE(embedded_mysqli, whether to enable embedded MySQLi support, 11[ --enable-embedded-mysqli 12 MYSQLi: Enable embedded support 13 Note: Does not work with MySQL native driver!], no, no) 14 15if test "$PHP_MYSQLI" = "yes" || test "$PHP_MYSQLI" = "mysqlnd"; then 16 dnl This needs to be set in any extension which wishes to use mysqlnd 17 PHP_MYSQLND_ENABLED=yes 18 19elif test "$PHP_MYSQLI" != "no"; then 20 21 MYSQL_CONFIG=$PHP_MYSQLI 22 23 MYSQL_LIB_NAME='mysqlclient' 24 if test "$PHP_EMBEDDED_MYSQLI" = "yes"; then 25 AC_DEFINE(HAVE_EMBEDDED_MYSQLI, 1, [embedded MySQL support enabled]) 26 MYSQL_LIB_CFG='--libmysqld-libs' 27 dnl mysqlnd doesn't support embedded, so we have to add some extra stuff 28 mysqli_extra_sources="mysqli_embedded.c" 29 elif test "$enable_maintainer_zts" = "yes"; then 30 MYSQL_LIB_CFG='--libs_r' 31 MYSQL_LIB_NAME='mysqlclient_r' 32 else 33 MYSQL_LIB_CFG='--libs' 34 fi 35 36 if test -x "$MYSQL_CONFIG" && $MYSQL_CONFIG $MYSQL_LIB_CFG > /dev/null 2>&1; then 37 MYSQLI_INCLINE=`$MYSQL_CONFIG --cflags | $SED -e "s/'//g"` 38 MYSQLI_LIBLINE=`$MYSQL_CONFIG $MYSQL_LIB_CFG | $SED -e "s/'//g"` 39 else 40 AC_MSG_RESULT([mysql_config not found]) 41 AC_MSG_ERROR([Please reinstall the mysql distribution]) 42 fi 43 44 dnl 45 dnl Check the library 46 dnl 47 PHP_CHECK_LIBRARY($MYSQL_LIB_NAME, mysql_set_server_option, 48 [ 49 PHP_EVAL_INCLINE($MYSQLI_INCLINE) 50 PHP_EVAL_LIBLINE($MYSQLI_LIBLINE, MYSQLI_SHARED_LIBADD) 51 AC_DEFINE(HAVE_MYSQLILIB, 1, [ ]) 52 PHP_CHECK_LIBRARY($MYSQL_LIB_NAME, mysql_set_character_set, 53 [ ],[ 54 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.]) 55 ],[$MYSQLI_LIBLINE]) 56 ],[ 57 AC_MSG_ERROR([wrong mysql library version or lib not found. Check config.log for more information.]) 58 ],[ 59 $MYSQLI_LIBLINE 60 ]) 61 dnl 62 dnl Check the library for mysql_stmt_next_result 63 dnl 64 PHP_CHECK_LIBRARY($MYSQL_LIB_NAME, mysql_stmt_next_result, 65 [ 66 AC_DEFINE(HAVE_STMT_NEXT_RESULT, 1, [ ]) 67 ],[ 68 ],[ 69 $MYSQLI_LIBLINE 70 ]) 71fi 72 73dnl Build extension 74if test "$PHP_MYSQLI" != "no"; then 75 mysqli_sources="mysqli.c mysqli_api.c mysqli_prop.c mysqli_nonapi.c \ 76 mysqli_fe.c mysqli_report.c mysqli_driver.c mysqli_warning.c \ 77 mysqli_exception.c mysqli_result_iterator.c $mysqli_extra_sources" 78 PHP_NEW_EXTENSION(mysqli, $mysqli_sources, $ext_shared) 79 PHP_SUBST(MYSQLI_SHARED_LIBADD) 80 PHP_INSTALL_HEADERS([ext/mysqli/php_mysqli_structs.h]) 81 82 if test "$PHP_MYSQLI" = "yes" || test "$PHP_MYSQLI" = "mysqlnd"; then 83 PHP_ADD_EXTENSION_DEP(mysqli, mysqlnd) 84 AC_DEFINE([MYSQLI_USE_MYSQLND], 1, [Whether mysqlnd is enabled]) 85 PHP_INSTALL_HEADERS([ext/mysqli/mysqli_mysqlnd.h]) 86 else 87 PHP_INSTALL_HEADERS([ext/mysqli/mysqli_libmysql.h]) 88 fi 89fi 90