config.m4 4.4 KB

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