|
1 | 1 | dnl $Id$
|
2 | 2 | dnl config.m4 for extension pdo_odbc
|
3 | 3 |
|
4 |
| -PHP_ARG_WITH(pdo_odbc, for pdo_odbc support, |
5 |
| -[ --with-pdo_odbc Include pdo_odbc support]) |
| 4 | +PHP_ARG_WITH(pdo-odbc, PDBC driver for PDO, |
| 5 | +[[ --with-pdo-odbc=flavour,dir Add support for "flavour" ODBC drivers, |
| 6 | + looking for include and lib dirs under "dir" |
| 7 | + |
| 8 | + flavour can be one of: |
| 9 | + ibm-db2, unixODBC |
6 | 10 |
|
7 |
| -if test "$PHP_PDO_ODBC" != "no"; then |
8 |
| - PHP_NEW_EXTENSION(pdo_odbc, pdo_odbc.c odbc_driver.c odbc_stmt.c, $ext_shared) |
| 11 | + The extension will always be created as a shared extension |
| 12 | + named pdo_odbc.so |
| 13 | +]]) |
| 14 | + |
| 15 | +AC_DEFUN([PDO_ODBC_CHECK_HEADER],[ |
| 16 | + if test -f $PDO_ODBC_INCDIR/$1 ; then |
| 17 | + AC_DEFINE([HAVE_]translit($1,a-z_.-,A-Z___), 1, [ ]) |
| 18 | + fi |
| 19 | +]) |
| 20 | + |
| 21 | +if test "$PHP_PDO_ODBC" != "no" && test "$PHP_PDO_ODBC" != "yes" ; then |
| 22 | + pdo_odbc_flavour=`echo $withval | cut -d, -f1` |
| 23 | + pdo_odbc_dir=`echo $withval | cut -d, -f2` |
| 24 | + |
| 25 | + if test "$pdo_odbc_dir" = "$withval" ; then |
| 26 | + pdo_odbc_dir="" |
| 27 | + fi |
| 28 | + |
| 29 | + |
| 30 | + AC_MSG_CHECKING(which ODBC flavour you want) |
| 31 | + |
| 32 | + case $pdo_odbc_flavour in |
| 33 | + ibm-db2) |
| 34 | + pdo_odbc_def_libdir=/home/db2inst/sqllib/lib |
| 35 | + pdo_odbc_def_incdir=/home/db2inst1/sqllib/include |
| 36 | + pdo_odbc_def_lib=-ldb2 |
| 37 | + ;; |
| 38 | + |
| 39 | + unixODBC) |
| 40 | + pdo_odbc_def_libdir=/usr/local/lib |
| 41 | + pdo_odbc_def_incdir=/usr/local/include |
| 42 | + pdo_odbc_def_lib=-lodbc |
| 43 | + ;; |
| 44 | + |
| 45 | + *) |
| 46 | + AC_MSG_ERROR(Unknown ODBC flavour $pdo_odbc_flavour) |
| 47 | + ;; |
| 48 | + esac |
| 49 | + |
| 50 | + if test "$pdo_odbc_dir" != "" ; then |
| 51 | + PDO_ODBC_INCDIR="$pdo_odbc_dir/include" |
| 52 | + PDO_ODBC_LIBDIR="$pdo_odbc_dir/lib" |
| 53 | + else |
| 54 | + PDO_ODBC_INCDIR="$pdo_odbc_def_incdir" |
| 55 | + PDO_ODBC_LIBDIR="$pdo_odbc_def_libdir" |
| 56 | + fi |
| 57 | + |
| 58 | + AC_MSG_RESULT([$pdo_odbc_flavour |
| 59 | + libs $PDO_ODBC_LIBDIR, |
| 60 | + headers $PDO_ODBC_INCDIR]) |
| 61 | + |
| 62 | + if ! test -d "$PDO_ODBC_LIBDIR" ; then |
| 63 | + AC_MSG_WARN([library dir $PDO_ODBC_LIBDIR does not exist]) |
| 64 | + fi |
| 65 | + |
| 66 | + dnl yick time |
| 67 | + PDO_ODBC_CHECK_HEADER(odbc.h) |
| 68 | + PDO_ODBC_CHECK_HEADER(iodbc.h) |
| 69 | + PDO_ODBC_CHECK_HEADER(sqlunix.h) |
| 70 | + PDO_ODBC_CHECK_HEADER(sqltypes.h) |
| 71 | + PDO_ODBC_CHECK_HEADER(sqlucode.h) |
| 72 | + PDO_ODBC_CHECK_HEADER(sql.h) |
| 73 | + PDO_ODBC_CHECK_HEADER(isql.h) |
| 74 | + PDO_ODBC_CHECK_HEADER(sqlext.h) |
| 75 | + PDO_ODBC_CHECK_HEADER(isqlext.h) |
| 76 | + PDO_ODBC_CHECK_HEADER(udbcext.h) |
| 77 | + PDO_ODBC_CHECK_HEADER(sqlcli1.h) |
| 78 | + PDO_ODBC_CHECK_HEADER(LibraryManager.h) |
| 79 | + PDO_ODBC_CHECK_HEADER(cli0core.h) |
| 80 | + PDO_ODBC_CHECK_HEADER(cli0ext.h) |
| 81 | + PDO_ODBC_CHECK_HEADER(cli0cli.h) |
| 82 | + PDO_ODBC_CHECK_HEADER(cli0defs.h) |
| 83 | + PDO_ODBC_CHECK_HEADER(cli0env.h) |
| 84 | + |
| 85 | + PDO_ODBC_INCLUDE="-I$PDO_ODBC_INCDIR -DPDO_ODBC_TYPE=\\\"$pdo_odbc_flavour\\\"" |
| 86 | + PDO_ODBC_LFLAGS="-L$PDO_ODBC_LIBDIR" |
| 87 | + PDO_ODBC_LIBS="$pdo_odbc_def_lib" |
| 88 | + |
| 89 | + LDFLAGS="$PDO_ODBC_LFLAGS $PDO_ODBC_LIBS -lm -ldl" |
| 90 | + AC_TRY_LINK_FUNC([SQLAllocHandle],[],[ |
| 91 | + AC_MSG_ERROR([[Your ODBC libraries either do not exist, or do not appear to be ODBC3 compatible]]) |
| 92 | + ]) |
| 93 | + LDFLAGS=$save_old_LDFLAGS |
| 94 | + PHP_EVAL_LIBLINE($PDO_ODBC_LIBS $PDO_ODBC_LFLAGS, [PDO_ODBC_SHARED_LIBADD]) |
| 95 | + PHP_SUBST(PDO_ODBC_SHARED_LIBADD) |
| 96 | + |
| 97 | + PHP_NEW_EXTENSION(pdo_odbc, pdo_odbc.c odbc_driver.c odbc_stmt.c, yes,,-I\$prefix/include/php/ext $PDO_ODBC_INCLUDE) |
9 | 98 | fi
|
| 99 | + |
0 commit comments