sniper          Mon Jun 13 21:42:31 2005 EDT

  Modified files:              
    /php-src/ext/pdo_odbc       config.m4 
  Log:
  - 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
  
  
http://cvs.php.net/diff.php/php-src/ext/pdo_odbc/config.m4?r1=1.18&r2=1.19&ty=u
Index: php-src/ext/pdo_odbc/config.m4
diff -u php-src/ext/pdo_odbc/config.m4:1.18 php-src/ext/pdo_odbc/config.m4:1.19
--- php-src/ext/pdo_odbc/config.m4:1.18 Mon Jun 13 20:00:53 2005
+++ php-src/ext/pdo_odbc/config.m4      Mon Jun 13 21:42:31 2005
@@ -1,4 +1,4 @@
-dnl $Id: config.m4,v 1.18 2005/06/14 00:00:53 sniper Exp $
+dnl $Id: config.m4,v 1.19 2005/06/14 01:42:31 sniper Exp $
 dnl config.m4 for extension pdo_odbc
 dnl vim:et:sw=2:ts=2:
 
@@ -13,7 +13,7 @@
                             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 @@
 [  --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 @@
     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 @@
     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
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to