diff options
author | foobar <sniper@php.net> | 2005-06-14 01:42:31 +0000 |
---|---|---|
committer | foobar <sniper@php.net> | 2005-06-14 01:42:31 +0000 |
commit | 8eeff6d2d47531ba90c632fbee67d53b14051ebb (patch) | |
tree | dda98baf2de435243b734f053ec746a0ea828115 /ext/pdo_odbc | |
parent | 15cf2a60b0239096f470c7ae3782af922c38912e (diff) | |
download | php-git-8eeff6d2d47531ba90c632fbee67d53b14051ebb.tar.gz |
- Fixed some places which might cause problems
- Changed the "general" flavour to have libname parameter (given without the
lib prefix of course)
# bug #33316 should be fixed now too
Diffstat (limited to 'ext/pdo_odbc')
-rwxr-xr-x | ext/pdo_odbc/config.m4 | 104 |
1 files changed, 56 insertions, 48 deletions
diff --git a/ext/pdo_odbc/config.m4 b/ext/pdo_odbc/config.m4 index 94acaf46d0..2ab4eb7322 100755 --- a/ext/pdo_odbc/config.m4 +++ b/ext/pdo_odbc/config.m4 @@ -13,7 +13,7 @@ define([PDO_ODBC_HELP_TEXT],[[ will check for unixODBC under /usr/local. You may attempt to use an otherwise unsupported driver using the \"generic\" flavour. The syntax for generic ODBC support is: - --with-pdo-odbc=generic,dir,ldflags,cflags + --with-pdo-odbc=generic,dir,libname,ldflags,cflags This extension will always be created as a shared extension named pdo_odbc.so]]) @@ -21,13 +21,41 @@ PHP_ARG_WITH(pdo-odbc, for ODBC v3 support for PDO, [ --with-pdo-odbc=flavour,dir PDO: Support for 'flavour' ODBC driver.]PDO_ODBC_HELP_TEXT) -AC_DEFUN([PDO_ODBC_CHECK_HEADER],[ - if test -f $PDO_ODBC_INCDIR/$1 ; then - AC_DEFINE([HAVE_]translit($1,a-z_.-,A-Z___), 1, [ ]) +AC_DEFUN([PDO_ODBC_CHECK_HEADERS],[ + php_pdo_have_header=no + for i in odbc.h \ + odbcsdk.h \ + iodbc.h \ + sqlunix.h \ + sqltypes.h \ + sqlucode.h \ + sql.h \ + isql.h \ + sqlext.h \ + isqlext.h \ + udbcext.h \ + sqlcli1.h \ + LibraryManager.h \ + cli0core.h \ + cli0ext.h \ + cli0cli.h \ + cli0defs.h \ + cli0env.h + do + if test -f "$PDO_ODBC_INCDIR/$i"; then + php_pdo_have_header=yes + PHP_DEF_HAVE([$i]) + fi + done + if test "$php_pdo_have_header" = "no"; then + AC_MSG_ERROR([Cannot find any header file(s)!]) fi ]) if test "$PHP_PDO_ODBC" != "no"; then + + PHP_CHECK_PDO_INCLUDES + AC_MSG_CHECKING([for selected PDO ODBC flavour]) pdo_odbc_flavour="`echo $PHP_PDO_ODBC | cut -d, -f1`" @@ -41,24 +69,25 @@ if test "$PHP_PDO_ODBC" != "no"; then ibm-db2) pdo_odbc_def_libdir=/home/db2inst1/sqllib/lib pdo_odbc_def_incdir=/home/db2inst1/sqllib/include - pdo_odbc_def_lib=-ldb2 + pdo_odbc_def_lib=db2 ;; unixODBC|unixodbc) pdo_odbc_def_libdir=/usr/local/lib pdo_odbc_def_incdir=/usr/local/include - pdo_odbc_def_lib=-lodbc + pdo_odbc_def_lib=odbc ;; ODBCRouter|odbcrouter) pdo_odbc_def_libdir=/usr/lib pdo_odbc_def_incdir=/usr/include - pdo_odbc_def_lib=-lodbcsdk + pdo_odbc_def_lib=odbcsdk ;; generic) pdo_odbc_def_lib="`echo $PHP_PDO_ODBC | cut -d, -f3`" - pdo_odbc_def_cflags="`echo $PHP_PDO_ODBC | cut -d, -f4`" + pdo_odbc_def_ldflags="`echo $PHP_PDO_ODBC | cut -d, -f4`" + pdo_odbc_def_cflags="`echo $PHP_PDO_ODBC | cut -d, -f5`" pdo_odbc_flavour="$pdo_odbc_flavour ($pdo_odbc_def_lib)" ;; @@ -83,53 +112,32 @@ if test "$PHP_PDO_ODBC" != "no"; then AC_MSG_WARN([library dir $PDO_ODBC_LIBDIR does not exist]) fi - dnl yick time - PDO_ODBC_CHECK_HEADER(odbc.h) - PDO_ODBC_CHECK_HEADER(odbcsdk.h) - PDO_ODBC_CHECK_HEADER(iodbc.h) - PDO_ODBC_CHECK_HEADER(sqlunix.h) - PDO_ODBC_CHECK_HEADER(sqltypes.h) - PDO_ODBC_CHECK_HEADER(sqlucode.h) - PDO_ODBC_CHECK_HEADER(sql.h) - PDO_ODBC_CHECK_HEADER(isql.h) - PDO_ODBC_CHECK_HEADER(sqlext.h) - PDO_ODBC_CHECK_HEADER(isqlext.h) - PDO_ODBC_CHECK_HEADER(udbcext.h) - PDO_ODBC_CHECK_HEADER(sqlcli1.h) - PDO_ODBC_CHECK_HEADER(LibraryManager.h) - PDO_ODBC_CHECK_HEADER(cli0core.h) - PDO_ODBC_CHECK_HEADER(cli0ext.h) - PDO_ODBC_CHECK_HEADER(cli0cli.h) - PDO_ODBC_CHECK_HEADER(cli0defs.h) - PDO_ODBC_CHECK_HEADER(cli0env.h) - - PDO_ODBC_INCLUDE="$pdo_odbc_def_cflags -I$PDO_ODBC_INCDIR -DPDO_ODBC_TYPE=\\\"$pdo_odbc_flavour\\\"" - PDO_ODBC_LFLAGS="-L$PDO_ODBC_LIBDIR" - PDO_ODBC_LIBS="$pdo_odbc_def_lib" - - save_old_LDFLAGS="$LDFLAGS" - LDFLAGS="$PDO_ODBC_LFLAGS $PDO_ODBC_LIBS -lm -ldl" - dnl Check for an ODBC 1.0 function to assert that the libraries work - AC_TRY_LINK_FUNC([SQLBindCol],[],[ - AC_MSG_ERROR([[Your ODBC library does not exist]]) - ]) - dnl And now check for an ODBC 3.0 function to assert that they're - dnl *good* libraries. - AC_TRY_LINK_FUNC([SQLAllocHandle],[],[ - AC_MSG_ERROR([[ + PDO_ODBC_CHECK_HEADERS + + PDO_ODBC_INCLUDE="$pdo_odbc_def_cflags -I$PDO_ODBC_INCDIR -DPDO_ODBC_TYPE=\\"$pdo_odbc_flavour\\"" + PDO_ODBC_LDFLAGS="$pdo_odbc_def_ldflags -L$PDO_ODBC_LIBDIR -l$pdo_odbc_def_lib" + + PHP_EVAL_LIBLINE([$PDO_ODBC_LDFLAGS], [PDO_ODBC_SHARED_LIBADD]) + + dnl Check first for an ODBC 1.0 function to assert that the libraries work + PHP_CHECK_LIBRARY($pdo_odbc_def_lib, SQLBindCol, + [ + dnl And now check for an ODBC 3.0 function to assert that they're + dnl *good* libraries. + PHP_CHECK_LIBRARY($pdo_odbc_def_lib, SQLAllocHandle, + [], [ + AC_MSG_ERROR([ Your ODBC library does not appear to be ODBC 3 compatible. You should consider using unixODBC instead, and loading your libraries as a driver in that environment; it will emulate the functions required for PDO support. -]]) +])]) + ],[ + AC_MSG_ERROR([Your ODBC library does not exist or there was an error. Check config.log for more information]) ]) - LDFLAGS=$save_old_LDFLAGS - PHP_EVAL_LIBLINE($PDO_ODBC_LIBS $PDO_ODBC_LFLAGS, [PDO_ODBC_SHARED_LIBADD]) - PHP_SUBST(PDO_ODBC_SHARED_LIBADD) - - PHP_CHECK_PDO_INCLUDES PHP_NEW_EXTENSION(pdo_odbc, pdo_odbc.c odbc_driver.c odbc_stmt.c, $ext_shared,,-I$pdo_inc_path $PDO_ODBC_INCLUDE) + PHP_SUBST(PDO_ODBC_SHARED_LIBADD) PHP_ADD_EXTENSION_DEP(pdo_odbc, pdo) fi |