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