summaryrefslogtreecommitdiff
path: root/ext/pdo_odbc
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2005-06-14 01:42:31 +0000
committerfoobar <sniper@php.net>2005-06-14 01:42:31 +0000
commit8eeff6d2d47531ba90c632fbee67d53b14051ebb (patch)
treedda98baf2de435243b734f053ec746a0ea828115 /ext/pdo_odbc
parent15cf2a60b0239096f470c7ae3782af922c38912e (diff)
downloadphp-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-xext/pdo_odbc/config.m4104
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