mirror of
https://github.com/php/php-src.git
synced 2025-08-16 14:08:47 +02:00

When using --with-pdo-mysql=DIR and for some reason DIR wouldn't have the executable DIR/bin/mysql_config available the 3rd option was so far to guess the mysql client library locations and pass the include directory further. The library directory and library name to link was missing. This fixes this case for consistency reasons. And in the future also the pkg-config could be a reliable alternative to mysql_config in that case. The PDO_MYSQL_INC_DIR is already processed PHP_EVAL_INCLINE so redundant PHP_ADD_INCLUDE is removed.
94 lines
3.3 KiB
Text
94 lines
3.3 KiB
Text
PHP_ARG_WITH([pdo-mysql],
|
|
[for MySQL support for PDO],
|
|
[AS_HELP_STRING([[--with-pdo-mysql[=DIR]]],
|
|
[PDO: MySQL support. DIR is the MySQL base directory. If no value or mysqlnd
|
|
is passed as DIR, the MySQL native driver will be used])])
|
|
|
|
if test "$PHP_PDO_MYSQL" != "no"; then
|
|
dnl This depends on ext/mysqli/config.m4 providing the PHP_MYSQL_SOCKET_SEARCH
|
|
dnl macro and --with-mysql-sock configure option.
|
|
AC_MSG_CHECKING([for MySQL Unix socket location])
|
|
AS_CASE([$PHP_MYSQL_SOCK],
|
|
[yes], [PHP_MYSQL_SOCKET_SEARCH],
|
|
[no], [AC_MSG_RESULT([no])],
|
|
[
|
|
AC_DEFINE_UNQUOTED([PHP_MYSQL_UNIX_SOCK_ADDR], ["$PHP_MYSQL_SOCK"],
|
|
[The MySQL Unix socket location.])
|
|
AC_MSG_RESULT([$PHP_MYSQL_SOCK])
|
|
])
|
|
|
|
dnl Whether to build with the mysqlnd extension or with the MySQL library.
|
|
AS_CASE([$PHP_PDO_MYSQL], [yes|mysqlnd], [
|
|
PHP_MYSQLND_ENABLED=yes
|
|
AC_DEFINE([PDO_USE_MYSQLND], [1],
|
|
[Define to 1 if the pdo_mysql extension uses mysqlnd.])
|
|
], [
|
|
AC_MSG_CHECKING([for mysql_config])
|
|
if test -f $PHP_PDO_MYSQL && test -x $PHP_PDO_MYSQL ; then
|
|
PDO_MYSQL_CONFIG=$PHP_PDO_MYSQL
|
|
else
|
|
if test -d "$PHP_PDO_MYSQL" ; then
|
|
if test -x "$PHP_PDO_MYSQL/bin/mysql_config" ; then
|
|
PDO_MYSQL_CONFIG="$PHP_PDO_MYSQL/bin/mysql_config"
|
|
else
|
|
PDO_MYSQL_DIR="$PHP_PDO_MYSQL"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test -n "$PDO_MYSQL_CONFIG"; then
|
|
AC_MSG_RESULT([$PDO_MYSQL_CONFIG])
|
|
PDO_MYSQL_LIBS=$($PDO_MYSQL_CONFIG --libs | $SED -e "s/'//g")
|
|
PDO_MYSQL_INCLUDE=$($PDO_MYSQL_CONFIG --cflags | $SED -e "s/'//g")
|
|
PDO_MYSQL_SOCKET=$($PDO_MYSQL_CONFIG --socket)
|
|
AC_DEFINE_UNQUOTED([PDO_MYSQL_UNIX_ADDR], ["$PDO_MYSQL_SOCKET"],
|
|
[The MySQL Unix socket location as defined by 'mysql_config' for use
|
|
with the pdo_mysql extension.])
|
|
elif test -n "$PDO_MYSQL_DIR"; then
|
|
AC_MSG_RESULT([not found])
|
|
AC_MSG_CHECKING([for mysql install under $PDO_MYSQL_DIR])
|
|
if test -r $PDO_MYSQL_DIR/include/mysql; then
|
|
PDO_MYSQL_INC_DIR=$PDO_MYSQL_DIR/include/mysql
|
|
else
|
|
PDO_MYSQL_INC_DIR=$PDO_MYSQL_DIR/include
|
|
fi
|
|
if test -r $PDO_MYSQL_DIR/$PHP_LIBDIR/mysql; then
|
|
PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$PHP_LIBDIR/mysql
|
|
else
|
|
PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$PHP_LIBDIR
|
|
fi
|
|
|
|
if test -r "$PDO_MYSQL_LIB_DIR"; then
|
|
AC_MSG_RESULT([libs under $PDO_MYSQL_LIB_DIR; seems promising])
|
|
else
|
|
AC_MSG_RESULT([can not find it])
|
|
AC_MSG_ERROR([Unable to find your mysql installation])
|
|
fi
|
|
|
|
PDO_MYSQL_INCLUDE=-I$PDO_MYSQL_INC_DIR
|
|
PDO_MYSQL_LIBS="-L$PDO_MYSQL_LIB_DIR -lmysqlclient"
|
|
else
|
|
AC_MSG_RESULT([not found])
|
|
AC_MSG_ERROR([Unable to find your mysql installation])
|
|
fi
|
|
|
|
PHP_EVAL_INCLINE([$PDO_MYSQL_INCLUDE])
|
|
PHP_EVAL_LIBLINE([$PDO_MYSQL_LIBS], [PDO_MYSQL_SHARED_LIBADD])
|
|
])
|
|
|
|
PHP_CHECK_PDO_INCLUDES
|
|
|
|
PHP_NEW_EXTENSION([pdo_mysql],
|
|
[pdo_mysql.c mysql_driver.c mysql_statement.c mysql_sql_parser.c],
|
|
[$ext_shared],,
|
|
[-DZEND_ENABLE_STATIC_TSRMLS_CACHE=1])
|
|
|
|
PHP_ADD_EXTENSION_DEP(pdo_mysql, pdo)
|
|
PHP_ADD_MAKEFILE_FRAGMENT
|
|
|
|
AS_CASE([$PHP_PDO_MYSQL], [yes|mysqlnd], [
|
|
PHP_ADD_EXTENSION_DEP(pdo_mysql, mysqlnd)
|
|
])
|
|
|
|
PHP_SUBST([PDO_MYSQL_SHARED_LIBADD])
|
|
fi
|