xref: /PHP-7.0/ext/mysqli/config.m4 (revision 7fa10095)
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