]> granicus.if.org Git - php/commitdiff
Enable unix build for dblib/sybase/freetds.
authorWez Furlong <wez@php.net>
Tue, 12 Jul 2005 12:16:02 +0000 (12:16 +0000)
committerWez Furlong <wez@php.net>
Tue, 12 Jul 2005 12:16:02 +0000 (12:16 +0000)
The extension is named pdo_dblib and the driver dblib on unix.

ext/pdo_dblib/config.m4 [new file with mode: 0644]
ext/pdo_dblib/dblib_driver.c
ext/pdo_dblib/pdo_dblib.c
ext/pdo_dblib/php_pdo_dblib_int.h

diff --git a/ext/pdo_dblib/config.m4 b/ext/pdo_dblib/config.m4
new file mode 100644 (file)
index 0000000..ee6f537
--- /dev/null
@@ -0,0 +1,57 @@
+dnl
+dnl $Id$
+dnl
+
+if test "$PHP_PDO" != "no"; then
+PHP_ARG_WITH(pdo-dblib, for PDO_DBLIB support via FreeTDS,
+[  --with-pdo-dblib[=DIR]      Include PDO_DBLIB-DB support.  DIR is the FreeTDS home
+                          directory])
+
+
+if test "$PHP_PDO_DBLIB" != "no"; then
+
+  PDO_FREETDS_INSTALLATION_DIR=""
+  if test "$PHP_PDO_DBLIB" = "yes"; then
+
+    for i in /usr/local /usr; do
+      if test -f $i/include/tds.h; then
+        PDO_FREETDS_INSTALLATION_DIR=$i
+        break
+      fi
+    done
+
+    if test -z "$PDO_FREETDS_INSTALLATION_DIR"; then
+      AC_MSG_ERROR(Cannot find FreeTDS in known installation directories)
+    fi
+
+  elif test "$PHP_PDO_DBLIB" != "no"; then
+
+    if test -f $PHP_PDO_DBLIB/include/tds.h; then
+      PDO_FREETDS_INSTALLATION_DIR=$PHP_PDO_DBLIB
+    else
+      AC_MSG_ERROR(Directory $PHP_PDO_DBLIB is not a FreeTDS installation directory)
+    fi
+  fi  
+
+  if test ! -r "$PDO_FREETDS_INSTALLATION_DIR/$PHP_LIBDIR/libtds.a" && test ! -r "$PDO_FREETDS_INSTALLATION_DIR/$PHP_LIBDIR/libtds.so"; then
+     AC_MSG_ERROR(Could not find $PDO_FREETDS_INSTALLATION_DIR/$PHP_LIBDIR/libtds.[a|so])
+  fi
+
+  PDO_DBLIB_INCDIR=$PDO_FREETDS_INSTALLATION_DIR/include
+  PDO_DBLIB_LIBDIR=$PDO_FREETDS_INSTALLATION_DIR/$PHP_LIBDIR
+
+  PHP_ADD_INCLUDE($PDO_DBLIB_INCDIR)
+  PHP_ADD_LIBRARY_WITH_PATH(sybdb, $PDO_DBLIB_LIBDIR, PDO_DBLIB_SHARED_LIBADD)
+  PHP_CHECK_PDO_INCLUDES
+  PDO_DBLIB_DEFS="-DPDO_DBLIB_FLAVOUR=\\\"freetds\\\""
+  PHP_NEW_EXTENSION(pdo_dblib, pdo_dblib.c dblib_driver.c dblib_stmt.c, $ext_shared,,-I$pdo_inc_path $PDO_DBLIB_DEFS)
+  AC_CHECK_LIB(dnet_stub, dnet_addr,
+     [ PHP_ADD_LIBRARY_WITH_PATH(dnet_stub,,PDO_DBLIB_SHARED_LIBADD)
+        AC_DEFINE(HAVE_LIBDNET_STUB,1,[ ])
+     ])
+  AC_DEFINE(HAVE_PDO_DBLIB,1,[ ])
+  AC_DEFINE(HAVE_FREETDS,1,[ ])
+  PHP_SUBST(PDO_DBLIB_SHARED_LIBADD)
+fi
+
+fi
index 7b7c26d7f8569e2045bb5bc03f12fd03b382ee9d..0b469d666dd709f640785d60cdd3679567ddc4bf 100644 (file)
@@ -257,8 +257,10 @@ cleanup:
 pdo_driver_t pdo_dblib_driver = {
 #if PDO_DBLIB_IS_MSSQL
        PDO_DRIVER_HEADER(mssql),
-#else
+#elif defined(PHP_WIN32)
        PDO_DRIVER_HEADER(sybase),
+#else
+       PDO_DRIVER_HEADER(dblib),
 #endif
        pdo_dblib_handle_factory
 };
index 31de2c8ecd4e309bd99e01f798847c724e003edb..6e55136de65d3dc6bb4789e62a2ad37c420f007b 100644 (file)
@@ -42,8 +42,10 @@ zend_module_entry pdo_dblib_module_entry = {
        STANDARD_MODULE_HEADER,
 #if PDO_DBLIB_IS_MSSQL
        "pdo_mssql",
-#else
+#elif define (PHP_WIN32)
        "pdo_sybase",
+#else
+       "pdo_dblib"
 #endif
        pdo_dblib_functions,
        PHP_MINIT(pdo_dblib),
@@ -197,7 +199,7 @@ PHP_MINFO_FUNCTION(pdo_dblib)
 #elif defined(PHP_WIN32)
                "FreeTDS/Sybase/MSSQL"
 #else
-               "Sybase"
+               "FreeTDS/Sybase"
 #endif
                " DB-lib", "enabled");
        php_info_print_table_row(2, "Flavour", PDO_DBLIB_FLAVOUR);
index f9b729962c7fee870839d0a0e1d674563ac11adb..ec34c521f724bcbf81b1ea7b7f21d39a7191b8db 100644 (file)
 #ifndef PHP_PDO_DBLIB_INT_H
 #define PHP_PDO_DBLIB_INT_H
 
+#ifndef PDO_DBLIB_FLAVOUR
+# define PDO_DBLIB_FLAVOUR "Generic DB-lib"
+#endif
+
 #if PHP_DBLIB_IS_MSSQL
 # include <sqlfront.h>
 # include <sqldb.h>