summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql/config.m4
blob: 5a3bbdf317a3f78c9baee38fc9eda121199f258b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
dnl
dnl $Id$
dnl

if test "$PHP_PDO" != "no"; then

AC_DEFUN([PDO_MYSQL_LIB_CHK], [
  str="$PDO_MYSQL_DIR/$1/libmysqlclient.*"
  for j in `echo $str`; do
    if test -r $j; then
      PDO_MYSQL_LIB_DIR=$MYSQL_DIR/$1
      break 2
    fi
  done
])

PHP_ARG_WITH(pdo-mysql, for MySQL support for PDO,
[  --with-pdo-mysql[=DIR]    PDO: MySQL support. DIR is the MySQL base directory])

if test "$PHP_PDO_MYSQL" != "no"; then
  AC_DEFINE(HAVE_MYSQL, 1, [Whether you have MySQL])

  AC_MSG_CHECKING([for mysql_config])

  if test -f $PHP_PDO_MYSQL && test -x $PHP_PDO_MYSQL ; then
    PDO_MYSQL_CONFIG=$PHP_PDO_MYSQL
  elif test "$PHP_PDO_MYSQL" != "yes"; then
    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
    else
      AC_MSG_RESULT([$PHP_PDO_MYSQL is not a directory])
      AC_MSG_ERROR([can't find mysql under the "$PHP_PDO_MYSQL" that you specified])
    fi
  else
    for i in /usr/local /usr ; do
      if test -x "$i/bin/mysql_config" ; then
        PDO_MYSQL_CONFIG="$i/bin/mysql_config"
        break;
      fi
      if test -r $i/include/mysql/mysql.h || test -r $i/include/mysql.h ; then
        PDO_MYSQL_DIR="$i"
        break;
      fi
    done
  fi

  if test -n "$PDO_MYSQL_CONFIG" && test -x "$PDO_MYSQL_CONFIG" ; then
    AC_MSG_RESULT($PDO_MYSQL_CONFIG)
    PDO_MYSQL_INCLUDE=`$PDO_MYSQL_CONFIG --cflags`
    PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs`
	  PDO_MYSQL_SOCKET=`$PDO_MYSQL_CONFIG --socket` 
    PHP_SUBST_OLD(PDO_MYSQL_LIBS)
  elif test -z "$PDO_MYSQL_DIR"; then
    AC_MSG_RESULT([not found])
    AC_MSG_ERROR([Cannot find MySQL header files under $PDO_MYSQL_DIR])
  else
    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/lib/mysql; then
      PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/lib/mysql
    else
      PDO_MYSQL_LIB_DIR=$PDO_MYSQL_DIR/lib
    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't find it])
      AC_MSG_ERROR([Unable to find your mysql installation])
    fi

    PHP_ADD_LIBRARY_WITH_PATH(mysqlclient, $PDO_MYSQL_LIB_DIR, PDO_MYSQL_SHARED_LIBADD)
    PHP_ADD_INCLUDE($PDO_MYSQL_INC_DIR)
    PDO_MYSQL_INCLUDE=-I$PDO_MYSQL_INC_DIR
  fi

  AC_DEFINE_UNQUOTED(PDO_MYSQL_UNIX_ADDR, "$PDO_MYSQL_SOCKET", [ ])

  _SAVE_LDFLAGS=$LDFLAGS
  LDFLAGS="$LDFLAGS $PDO_MYSQL_LIBS"
  AC_CHECK_FUNC(mysql_query,[],[
    AC_MSG_ERROR([mysql_query missing!?])
  ])
  AC_CHECK_FUNCS([mysql_commit mysql_stmt_prepare mysql_next_result mysql_sqlstate]) 
  LDFLAGS=$_SAVE_LDFLAGS

  ifdef([PHP_CHECK_PDO_INCLUDES],
  [
    PHP_CHECK_PDO_INCLUDES
  ],[
    AC_MSG_CHECKING([for PDO includes])
    if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
      pdo_inc_path=$abs_srcdir/ext
    elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
      pdo_inc_path=$abs_srcdir/ext
    elif test -f $prefix/include/php/ext/pdo/php_pdo_driver.h; then
      pdo_inc_path=$prefix/include/php/ext
    else
      AC_MSG_ERROR([Cannot find php_pdo_driver.h.])
    fi
    AC_MSG_RESULT($pdo_inc_path)
  ])

  PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c, $ext_shared,,-I$pdo_inc_path $PDO_MYSQL_INCLUDE)
  ifdef([PHP_ADD_EXTENSION_DEP],
  [
  	PHP_ADD_EXTENSION_DEP(pdo_mysql, pdo)
  ])
  PDO_MYSQL_MODULE_TYPE=external
 
  PDO_MYSQL_SHARED_LIBADD=$PDO_MYSQL_LIBS
  PHP_SUBST(PDO_MYSQL_SHARED_LIBADD)
  PHP_SUBST_OLD(PDO_MYSQL_MODULE_TYPE)
fi

fi
dnl vim: se ts=2 sw=2 et: