config.m4 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. dnl config.m4 for extension pdo_mysql
  2. dnl vim: se ts=2 sw=2 et:
  3. PHP_ARG_WITH(pdo-mysql, for MySQL support for PDO,
  4. [ --with-pdo-mysql[=DIR] PDO: MySQL support. DIR is the MySQL base directory
  5. If no value or mysqlnd is passed as DIR, the
  6. MySQL native driver will be used])
  7. if test -z "$PHP_ZLIB_DIR"; then
  8. PHP_ARG_WITH(zlib-dir, for the location of libz,
  9. [ --with-zlib-dir[=DIR] PDO_MySQL: Set the path to libz install prefix], no, no)
  10. fi
  11. if test "$PHP_PDO_MYSQL" != "no"; then
  12. dnl This depends on ext/mysqli/config.m4 providing the
  13. dnl PHP_MYSQL_SOCKET_SEARCH macro and --with-mysql-sock configure option.
  14. AC_MSG_CHECKING([for MySQL UNIX socket location])
  15. if test "$PHP_MYSQL_SOCK" != "no" && test "$PHP_MYSQL_SOCK" != "yes"; then
  16. MYSQL_SOCK=$PHP_MYSQL_SOCK
  17. AC_DEFINE_UNQUOTED(PHP_MYSQL_UNIX_SOCK_ADDR, "$MYSQL_SOCK", [ ])
  18. AC_MSG_RESULT([$MYSQL_SOCK])
  19. elif test "$PHP_MYSQL_SOCK" = "yes"; then
  20. PHP_MYSQL_SOCKET_SEARCH
  21. else
  22. AC_MSG_RESULT([no])
  23. fi
  24. if test "$PHP_PDO" = "no" && test "$ext_shared" = "no"; then
  25. AC_MSG_ERROR([PDO is not enabled! Add --enable-pdo to your configure line.])
  26. fi
  27. AC_DEFUN([PDO_MYSQL_LIB_CHK], [
  28. str="$PDO_MYSQL_DIR/$1/libmysqlclient*"
  29. for j in `echo $str`; do
  30. if test -r $j; then
  31. PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$1
  32. break 2
  33. fi
  34. done
  35. ])
  36. if test "$PHP_PDO_MYSQL" != "yes" && test "$PHP_PDO_MYSQL" != "mysqlnd"; then
  37. if test -f $PHP_PDO_MYSQL && test -x $PHP_PDO_MYSQL ; then
  38. PDO_MYSQL_CONFIG=$PHP_PDO_MYSQL
  39. else
  40. if test -d "$PHP_PDO_MYSQL" ; then
  41. if test -x "$PHP_PDO_MYSQL/bin/mysql_config" ; then
  42. PDO_MYSQL_CONFIG="$PHP_PDO_MYSQL/bin/mysql_config"
  43. else
  44. PDO_MYSQL_DIR="$PHP_PDO_MYSQL"
  45. fi
  46. fi
  47. fi
  48. fi
  49. if test "$PHP_PDO_MYSQL" = "yes" || test "$PHP_PDO_MYSQL" = "mysqlnd"; then
  50. dnl enables build of mysqnd library
  51. PHP_MYSQLND_ENABLED=yes
  52. AC_DEFINE([PDO_USE_MYSQLND], 1, [Whether pdo_mysql uses mysqlnd])
  53. else
  54. AC_DEFINE(HAVE_MYSQL, 1, [Whether you have MySQL])
  55. AC_MSG_CHECKING([for mysql_config])
  56. if test -n "$PDO_MYSQL_CONFIG"; then
  57. AC_MSG_RESULT($PDO_MYSQL_CONFIG)
  58. if test "x$SED" = "x"; then
  59. AC_PATH_PROG(SED, sed)
  60. fi
  61. PDO_MYSQL_LIBNAME=mysqlclient
  62. PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs | $SED -e "s/'//g"`
  63. PDO_MYSQL_INCLUDE=`$PDO_MYSQL_CONFIG --cflags | $SED -e "s/'//g"`
  64. elif test -n "$PDO_MYSQL_DIR"; then
  65. AC_MSG_RESULT([not found])
  66. AC_MSG_CHECKING([for mysql install under $PDO_MYSQL_DIR])
  67. if test -r $PDO_MYSQL_DIR/include/mysql; then
  68. PDO_MYSQL_INC_DIR=$PDO_MYSQL_DIR/include/mysql
  69. else
  70. PDO_MYSQL_INC_DIR=$PDO_MYSQL_DIR/include
  71. fi
  72. if test -r $PDO_MYSQL_DIR/$PHP_LIBDIR/mysql; then
  73. PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$PHP_LIBDIR/mysql
  74. else
  75. PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$PHP_LIBDIR
  76. fi
  77. if test -r "$PDO_MYSQL_LIB_DIR"; then
  78. AC_MSG_RESULT([libs under $PDO_MYSQL_LIB_DIR; seems promising])
  79. else
  80. AC_MSG_RESULT([can not find it])
  81. AC_MSG_ERROR([Unable to find your mysql installation])
  82. fi
  83. PHP_ADD_INCLUDE($PDO_MYSQL_INC_DIR)
  84. PDO_MYSQL_INCLUDE=-I$PDO_MYSQL_INC_DIR
  85. else
  86. AC_MSG_RESULT([not found])
  87. AC_MSG_ERROR([Unable to find your mysql installation])
  88. fi
  89. PHP_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_commit,
  90. [
  91. PHP_EVAL_INCLINE($PDO_MYSQL_INCLUDE)
  92. PHP_EVAL_LIBLINE($PDO_MYSQL_LIBS, PDO_MYSQL_SHARED_LIBADD)
  93. ],[
  94. if test "$PHP_ZLIB_DIR" != "no"; then
  95. PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR, PDO_MYSQL_SHARED_LIBADD)
  96. PHP_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_commit, [], [
  97. AC_MSG_ERROR([PDO_MYSQL configure failed, MySQL 4.1 needed. Please check config.log for more information.])
  98. ], [
  99. -L$PHP_ZLIB_DIR/$PHP_LIBDIR -L$PDO_MYSQL_LIB_DIR
  100. ])
  101. PDO_MYSQL_LIBS="$PDO_MYSQL_LIBS -L$PHP_ZLIB_DIR/$PHP_LIBDIR -lz"
  102. else
  103. PHP_ADD_LIBRARY(z,, PDO_MYSQL_SHARED_LIBADD)
  104. PHP_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_query, [], [
  105. AC_MSG_ERROR([Try adding --with-zlib-dir=<DIR>. Please check config.log for more information.])
  106. ], [
  107. -L$PDO_MYSQL_LIB_DIR
  108. ])
  109. PDO_MYSQL_LIBS="$PDO_MYSQL_LIBS -lz"
  110. fi
  111. PHP_EVAL_INCLINE($PDO_MYSQL_INCLUDE)
  112. PHP_EVAL_LIBLINE($PDO_MYSQL_LIBS, PDO_MYSQL_SHARED_LIBADD)
  113. ],[
  114. $PDO_MYSQL_LIBS
  115. ])
  116. fi
  117. ifdef([PHP_CHECK_PDO_INCLUDES],
  118. [
  119. PHP_CHECK_PDO_INCLUDES
  120. ],[
  121. AC_MSG_CHECKING([for PDO includes])
  122. if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
  123. pdo_cv_inc_path=$abs_srcdir/ext
  124. elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
  125. pdo_cv_inc_path=$abs_srcdir/ext
  126. elif test -f $phpincludedir/ext/pdo/php_pdo_driver.h; then
  127. pdo_cv_inc_path=$phpincludedir/ext
  128. else
  129. AC_MSG_ERROR([Cannot find php_pdo_driver.h.])
  130. fi
  131. AC_MSG_RESULT($pdo_cv_inc_path)
  132. ])
  133. if test -n "$PDO_MYSQL_CONFIG"; then
  134. PDO_MYSQL_SOCKET=`$PDO_MYSQL_CONFIG --socket`
  135. AC_DEFINE_UNQUOTED(PDO_MYSQL_UNIX_ADDR, "$PDO_MYSQL_SOCKET", [ ])
  136. fi
  137. dnl fix after renaming to pdo_mysql
  138. PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c, $ext_shared,,-I$pdo_cv_inc_path -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
  139. ifdef([PHP_ADD_EXTENSION_DEP],
  140. [
  141. PHP_ADD_EXTENSION_DEP(pdo_mysql, pdo)
  142. if test "$PHP_MYSQL" = "mysqlnd"; then
  143. PHP_ADD_EXTENSION_DEP(pdo_mysql, mysqlnd)
  144. fi
  145. ])
  146. PDO_MYSQL_MODULE_TYPE=external
  147. PHP_SUBST(PDO_MYSQL_SHARED_LIBADD)
  148. PHP_SUBST_OLD(PDO_MYSQL_MODULE_TYPE)
  149. fi