xref: /PHP-7.4/ext/mysqli/config.m4 (revision 1aab7db6)
1dnl ext/pdo_mysql/config.m4 also depends on this macro.
2AC_DEFUN([PHP_MYSQL_SOCKET_SEARCH], [
3  for i in  \
4    /var/run/mysqld/mysqld.sock \
5    /var/tmp/mysql.sock \
6    /var/run/mysql/mysql.sock \
7    /var/lib/mysql/mysql.sock \
8    /var/mysql/mysql.sock \
9    /usr/local/mysql/var/mysql.sock \
10    /Private/tmp/mysql.sock \
11    /private/tmp/mysql.sock \
12    /tmp/mysql.sock \
13  ; do
14    if test -r $i; then
15      MYSQL_SOCK=$i
16      break 2
17    fi
18  done
19
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
28PHP_ARG_WITH([mysqli],
29  [for MySQLi support],
30  [AS_HELP_STRING([[--with-mysqli[=FILE]]],
31    [Include MySQLi support. FILE is the path to mysql_config. If no value or
32    mysqlnd is passed as FILE, the MySQL native driver will be used])])
33
34dnl ext/pdo_mysql/config.m4 also depends on this configure option.
35PHP_ARG_WITH([mysql-sock],
36  [for specified location of the MySQL UNIX socket],
37  [AS_HELP_STRING([[--with-mysql-sock[=SOCKPATH]]],
38    [MySQLi/PDO_MYSQL: Location of the MySQL unix socket pointer. If unspecified,
39    the default locations are searched])],
40  [no],
41  [no])
42
43if test "$PHP_MYSQLI" = "yes" || test "$PHP_MYSQLI" = "mysqlnd"; then
44  dnl This needs to be set in any extension which wishes to use mysqlnd
45  PHP_MYSQLND_ENABLED=yes
46
47elif test "$PHP_MYSQLI" != "no"; then
48
49  MYSQL_CONFIG=$PHP_MYSQLI
50  MYSQL_LIB_NAME='mysqlclient'
51  MYSQL_LIB_CFG='--libs'
52
53  if test -x "$MYSQL_CONFIG" && $MYSQL_CONFIG $MYSQL_LIB_CFG > /dev/null 2>&1; then
54    MYSQLI_INCLINE=`$MYSQL_CONFIG --cflags | $SED -e "s/'//g"`
55    MYSQLI_LIBLINE=`$MYSQL_CONFIG $MYSQL_LIB_CFG | $SED -e "s/'//g"`
56  else
57    AC_MSG_RESULT([mysql_config not found])
58    AC_MSG_ERROR([Please reinstall the mysql distribution])
59  fi
60
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  ])
88fi
89
90dnl Build extension
91if test "$PHP_MYSQLI" != "no"; then
92  AC_MSG_CHECKING([for MySQL UNIX socket location])
93  if test "$PHP_MYSQL_SOCK" != "no" && test "$PHP_MYSQL_SOCK" != "yes"; then
94    MYSQL_SOCK=$PHP_MYSQL_SOCK
95    AC_DEFINE_UNQUOTED(PHP_MYSQL_UNIX_SOCK_ADDR, "$MYSQL_SOCK", [ ])
96    AC_MSG_RESULT([$MYSQL_SOCK])
97  elif test "$PHP_MYSQL_SOCK" = "yes"; then
98    PHP_MYSQL_SOCKET_SEARCH
99  else
100    AC_MSG_RESULT([no])
101  fi
102
103  mysqli_sources="mysqli.c mysqli_api.c mysqli_prop.c mysqli_nonapi.c \
104                  mysqli_fe.c mysqli_report.c mysqli_driver.c mysqli_warning.c \
105                  mysqli_exception.c mysqli_result_iterator.c"
106  PHP_NEW_EXTENSION(mysqli, $mysqli_sources, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
107  PHP_SUBST(MYSQLI_SHARED_LIBADD)
108  PHP_INSTALL_HEADERS([ext/mysqli/php_mysqli_structs.h])
109
110  if test "$PHP_MYSQLI" = "yes" || test "$PHP_MYSQLI" = "mysqlnd"; then
111    PHP_ADD_EXTENSION_DEP(mysqli, mysqlnd)
112    AC_DEFINE([MYSQLI_USE_MYSQLND], 1, [Whether mysqlnd is enabled])
113    PHP_INSTALL_HEADERS([ext/mysqli/mysqli_mysqlnd.h])
114  else
115    PHP_INSTALL_HEADERS([ext/mysqli/mysqli_libmysql.h])
116  fi
117fi
118