2
2
dnl $Id$
3
3
dnl
4
4
5
- if test "$PHP_PDO" != "no"; then
6
-
7
- AC_DEFUN ( [ PDO_MYSQL_LIB_CHK] , [
8
- str="$PDO_MYSQL_DIR/$1 /libmysqlclient.*"
9
- for j in `echo $str`; do
10
- if test -r $j; then
11
- PDO_MYSQL_LIB_DIR=$MYSQL_DIR/$1
12
- break 2
13
- fi
14
- done
15
- ] )
16
-
5
+ dnl TODO Rename when moving to pdo_mysql
17
6
PHP_ARG_WITH(pdo-mysql, for MySQL support for PDO,
18
- [ --with-pdo-mysql[ =DIR] PDO: MySQL support. DIR is the MySQL base directory] )
7
+ [ --with-pdo-mysql[ =DIR] PDO: MySQL support. DIR is the MySQL base directoy
8
+ If mysqlnd is passed as DIR, the MySQL native
9
+ native driver will be used [ /usr/local] ] )
10
+
11
+ if test -z "$PHP_ZLIB_DIR"; then
12
+ PHP_ARG_WITH(zlib-dir, for the location of libz,
13
+ [ --with-zlib-dir[ =DIR] PDO_MySQL: Set the path to libz install prefix] , no, no)
14
+ fi
19
15
20
16
if test "$PHP_PDO_MYSQL" != "no"; then
21
- AC_DEFINE ( HAVE_MYSQL , 1 , [ Whether you have MySQL ] )
17
+ PHP_MYSQLND_ENABLED=yes
22
18
23
- for i in $PHP_PDO_MYSQL /usr/local /usr ; do
24
- PDO_MYSQL_DIR=$i
25
- PDO_MYSQL_CONFIG=$PDO_MYSQL_DIR/bin/mysql_config
26
- if test -r $i/include/mysql; then
27
- PDO_MYSQL_INC_DIR=$i/include/mysql
28
- else
29
- PDO_MYSQL_INC_DIR=$i/include
30
- fi
31
- if test -r $i/lib/mysql; then
32
- PDO_MYSQL_LIB_DIR=$i/lib/mysql
19
+ AC_DEFUN ( [ PDO_MYSQL_LIB_CHK] , [
20
+ str="$PDO_MYSQL_DIR/$1 /libmysqlclient*"
21
+ for j in `echo $str`; do
22
+ if test -r $j; then
23
+ PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$1
24
+ break 2
25
+ fi
26
+ done
27
+ ] )
28
+
29
+ if test "$PHP_PDO_MYSQL" = "mysqlnd"; then
30
+ dnl enables build of mysqnd library
31
+ PHP_MYSQL_ENABLED=yes
32
+ AC_DEFINE ( [ PDO_USE_MYSQLND] , 1 , [ Whether pdo_mysql uses mysqlnd] )
33
+ else
34
+ AC_DEFINE ( HAVE_MYSQL , 1 , [ Whether you have MySQL] )
35
+ AC_MSG_CHECKING ( [ for mysql_config] )
36
+
37
+ if test -f $PHP_PDO_MYSQL && test -x $PHP_PDO_MYSQL ; then
38
+ PDO_MYSQL_CONFIG=$PHP_PDO_MYSQL
39
+ elif test "$PHP_PDO_MYSQL" != "yes"; then
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
+ else
47
+ AC_MSG_RESULT ( [ $PHP_PDO_MYSQL is not a directory] )
48
+ AC_MSG_ERROR ( [ can not find mysql under the "$PHP_PDO_MYSQL" that you specified] )
49
+ fi
33
50
else
34
- PDO_MYSQL_LIB_DIR=$i/lib
35
- fi
36
- if test -x $PDO_MYSQL_CONFIG; then
37
- break
51
+ for i in /usr/local /usr ; do
52
+ if test -x "$i/bin/mysql_config" ; then
53
+ PDO_MYSQL_CONFIG="$i/bin/mysql_config"
54
+ break;
55
+ fi
56
+ if test -r $i/include/mysql/mysql.h || test -r $i/include/mysql.h ; then
57
+ PDO_MYSQL_DIR="$i"
58
+ break;
59
+ fi
60
+ done
38
61
fi
39
- done
40
62
41
- if test -z "$PDO_MYSQL_DIR"; then
42
- AC_MSG_ERROR ( [ Cannot find MySQL header files under $PHP_MYSQL.
43
- Note that the MySQL client library is not bundled anymore!] )
44
- fi
63
+ if test -n "$PDO_MYSQL_CONFIG" && test -x "$PDO_MYSQL_CONFIG" ; then
64
+ AC_MSG_RESULT ( $PDO_MYSQL_CONFIG )
65
+ if test "x$SED" = "x"; then
66
+ AC_PATH_PROG ( SED , sed )
67
+ fi
45
68
46
- if test -x $PDO_MYSQL_CONFIG; then
47
- PDO_MYSQL_SOCKET=`$PDO_MYSQL_CONFIG --socket`
48
- fi
69
+ if test "$enable_maintainer_zts" = "yes"; then
70
+ PDO_MYSQL_LIBNAME=mysqlclient_r
71
+ PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs_r | $SED -e "s/'//g"`
72
+ else
73
+ PDO_MYSQL_LIBNAME=mysqlclient
74
+ PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs | $SED -e "s/'//g"`
75
+ fi
76
+ PDO_MYSQL_INCLUDE=`$PDO_MYSQL_CONFIG --cflags | $SED -e "s/'//g"`
77
+ PDO_MYSQL_SOCKET=`$PDO_MYSQL_CONFIG --socket`
78
+ elif test -z "$PDO_MYSQL_DIR"; then
79
+ AC_MSG_RESULT ( [ not found] )
80
+ AC_MSG_ERROR ( [ Cannot find MySQL header files under $PDO_MYSQL_DIR] )
81
+ else
82
+ AC_MSG_RESULT ( [ not found] )
83
+ AC_MSG_CHECKING ( [ for mysql install under $PDO_MYSQL_DIR] )
84
+ if test -r $PDO_MYSQL_DIR/include/mysql; then
85
+ PDO_MYSQL_INC_DIR=$PDO_MYSQL_DIR/include/mysql
86
+ else
87
+ PDO_MYSQL_INC_DIR=$PDO_MYSQL_DIR/include
88
+ fi
89
+ if test -r $PDO_MYSQL_DIR/$PHP_LIBDIR/mysql; then
90
+ PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$PHP_LIBDIR/mysql
91
+ else
92
+ PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/$PHP_LIBDIR
93
+ fi
94
+
95
+ if test -r "$PDO_MYSQL_LIB_DIR"; then
96
+ AC_MSG_RESULT ( [ libs under $PDO_MYSQL_LIB_DIR; seems promising] )
97
+ else
98
+ AC_MSG_RESULT ( [ can not find it] )
99
+ AC_MSG_ERROR ( [ Unable to find your mysql installation] )
100
+ fi
101
+
102
+ PHP_ADD_INCLUDE($PDO_MYSQL_INC_DIR)
103
+ PDO_MYSQL_INCLUDE=-I$PDO_MYSQL_INC_DIR
104
+ fi
49
105
50
- if test "$PHP_MYSQL_SOCK" != "no" && test "$PHP_MYSQL_SOCK" != "yes"; then
51
- AC_DEFINE_UNQUOTED ( PDO_MYSQL_UNIX_ADDR , "$PHP_MYSQL_SOCK" , [ ] )
52
- else
53
106
AC_DEFINE_UNQUOTED ( PDO_MYSQL_UNIX_ADDR , "$PDO_MYSQL_SOCKET" , [ ] )
54
- fi
55
107
56
- PHP_ADD_LIBRARY_WITH_PATH(mysqlclient, $PDO_MYSQL_LIB_DIR, PDO_MYSQL_SHARED_LIBADD)
57
- PHP_ADD_INCLUDE($PDO_MYSQL_INC_DIR)
58
- if test -x $PDO_MYSQL_CONFIG; then
59
- PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs`
60
- PHP_SUBST_OLD(PDO_MYSQL_LIBS)
61
- fi
108
+ PHP_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_query,
109
+ [
110
+ PHP_EVAL_INCLINE($PDO_MYSQL_INCLUDE)
111
+ PHP_EVAL_LIBLINE($PDO_MYSQL_LIBS, PDO_MYSQL_SHARED_LIBADD)
112
+ ] ,[
113
+ if test "$PHP_ZLIB_DIR" != "no"; then
114
+ PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR, PDO_MYSQL_SHARED_LIBADD)
115
+ PHP_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_query, [ ] , [
116
+ AC_MSG_ERROR ( [ PDO_MYSQL configure failed. Please check config.log for more information.] )
117
+ ] , [
118
+ -L$PHP_ZLIB_DIR/$PHP_LIBDIR -L$PDO_MYSQL_LIB_DIR
119
+ ] )
120
+ PDO_MYSQL_LIBS="$PDO_MYSQL_LIBS -L$PHP_ZLIB_DIR/$PHP_LIBDIR -lz"
121
+ else
122
+ PHP_ADD_LIBRARY(z,, PDO_MYSQL_SHARED_LIBADD)
123
+ PHP_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_query, [ ] , [
124
+ AC_MSG_ERROR ( [ Try adding --with-zlib-dir=<DIR>. Please check config.log for more information.] )
125
+ ] , [
126
+ -L$PDO_MYSQL_LIB_DIR
127
+ ] )
128
+ PDO_MYSQL_LIBS="$PDO_MYSQL_LIBS -lz"
129
+ fi
62
130
63
- _SAVE_LDFLAGS=$LDFLAGS
64
- LDFLAGS="$LDFLAGS $PDO_MYSQL_LIBS"
65
- AC_CHECK_FUNCS ( [ mysql_commit mysql_stmt_prepare mysql_next_result mysql_sqlstate] )
66
- LDFLAGS=$_SAVE_LDFLAGS
131
+ PHP_EVAL_INCLINE($PDO_MYSQL_INCLUDE)
132
+ PHP_EVAL_LIBLINE($PDO_MYSQL_LIBS, PDO_MYSQL_SHARED_LIBADD)
133
+ ] ,[
134
+ $PDO_MYSQL_LIBS
135
+ ] )
136
+
137
+ _SAVE_LIBS=$LIBS
138
+ LIBS="$LIBS $PDO_MYSQL_LIBS"
139
+ AC_CHECK_FUNCS ( [ mysql_commit mysql_stmt_prepare mysql_next_result mysql_sqlstate] )
140
+ LIBS=$_SAVE_LIBS
141
+ fi
67
142
68
143
ifdef ( [ PHP_CHECK_PDO_INCLUDES] ,
69
144
[
@@ -82,18 +157,19 @@ Note that the MySQL client library is not bundled anymore!])
82
157
AC_MSG_RESULT ( $pdo_inc_path )
83
158
] )
84
159
85
- PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c, $ext_shared,,-I$pdo_inc_path)
160
+
161
+ dnl fix after renaming to pdo_mysql
162
+ PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c, $ext_shared,,-I$pdo_inc_path -I)
86
163
ifdef ( [ PHP_ADD_EXTENSION_DEP] ,
87
164
[
88
- PHP_ADD_EXTENSION_DEP(pdo_mysql, pdo)
165
+ PHP_ADD_EXTENSION_DEP(pdo_mysql, pdo)
166
+ if test "$PHP_MYSQL" = "mysqlnd"; then
167
+ PHP_ADD_EXTENSION_DEP(pdo_mysql, mysqlnd)
168
+ fi
89
169
] )
90
170
PDO_MYSQL_MODULE_TYPE=external
91
- PDO_MYSQL_INCLUDE=-I$PDO_MYSQL_INC_DIR
92
-
93
- PHP_SUBST(PDO_MYSQL_SHARED_LIBADD)
171
+
94
172
PHP_SUBST_OLD(PDO_MYSQL_MODULE_TYPE)
95
- PHP_SUBST_OLD(PDO_MYSQL_LIBS)
96
- PHP_SUBST_OLD(PDO_MYSQL_INCLUDE)
97
173
fi
98
174
99
- fi
175
+ dnl vim: se ts=2 sw=2 et:
0 commit comments