config.m4 3.1 KB

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