]> granicus.if.org Git - php/commitdiff
- MFH: support for Oracle 11g (either 8 or 11g can be built but not both
authorPierre Joye <pajoye@php.net>
Fri, 1 Aug 2008 15:07:59 +0000 (15:07 +0000)
committerPierre Joye <pajoye@php.net>
Fri, 1 Aug 2008 15:07:59 +0000 (15:07 +0000)
ext/oci8/config.w32
ext/oci8/php_oci8.h

index c6487d6a1897bf5838f44f77bd08d427d5c72622..fdd7fa5e480681ed527d43f3be21f6e7b12b26aa 100644 (file)
@@ -1,14 +1,38 @@
 // $Id$
 // vim:ft=javascript
 
+if (PHP_OCI8 != "no" && PHP_OCI8_11G != "no") {
+       if (!PHP_OCI8_SHARED && !PHP_OCI8_11G_SHARED) {
+               WARNING("oci8 and oci8-11g provide the same extension and cannot both be built statically");
+               PHP_OCI8 = "no"
+               PHP_OCI8_11G = "no"
+       }
+}
+
 ARG_WITH("oci8", "OCI8 support", "no");
 
 if (PHP_OCI8 != "no") {
 
-       if (CHECK_HEADER_ADD_INCLUDE("oci.h", "CFLAGS_OCI8", PHP_PHP_BUILD + "\\include\\instantclient;" + PHP_OCI8) &&
-                       CHECK_LIB("oci.lib", "oci8", PHP_PHP_BUILD + "\\lib\\instantclient;" + PHP_OCI8)
-                       
-                       ) {
+       oci8_dirs = new Array(
+               PHP_OCI8
+       );
+
+       oci8_lib_paths = "";
+       oci8_inc_paths = "";
+
+       // find the Oracle install
+       for (i = 0; i < oci8_dirs.length; i++) {
+               oci8_lib_paths += oci8_dirs[i] + "\\lib;";
+               oci8_lib_paths += oci8_dirs[i] + "\\lib\\msvc;";
+               oci8_inc_paths += oci8_dirs[i] + "\\include;";
+       }
+
+       oci8_inc_paths += PHP_PHP_BUILD + "\\include\\instantclient;"
+       oci8_lib_paths += PHP_PHP_BUILD + "\\lib\\instantclient;";
+
+       if (CHECK_HEADER_ADD_INCLUDE("oci.h", "CFLAGS_OCI8", oci8_inc_paths) &&
+                       CHECK_LIB("oci.lib", "oci8", oci8_lib_paths))
+       {
                EXTENSION('oci8', 'oci8.c oci8_lob.c oci8_statement.c oci8_collection.c oci8_interface.c');
 
                AC_DEFINE('HAVE_OCI8', 1);
@@ -16,7 +40,43 @@ if (PHP_OCI8 != "no") {
                AC_DEFINE('HAVE_OCI_LOB_READ2', 1);
 
        } else {
-               WARNING("oci8 not enabled; Oracle Database libraries or Oracle 10g Instant Client not found");
+               WARNING("oci8 not enabled: Oracle Database libraries or Oracle 10g Instant Client not found");
+               PHP_OCI8 = "no"
        }
 }
 
+ARG_WITH("oci8-11g", "OCI8 support using Oracle 11g Instant Client", "no");
+
+if (PHP_OCI8_11G != "no") {
+
+       oci8_11g_dirs = new Array(
+               PHP_OCI8_11G
+       );
+
+       oci8_11g_lib_paths = "";
+       oci8_11g_inc_paths = "";
+
+       // find the Oracle install
+       for (i = 0; i < oci8_11g_dirs.length; i++) {
+               oci8_11g_lib_paths += oci8_11g_dirs[i] + "\\lib;";
+               oci8_11g_lib_paths += oci8_11g_dirs[i] + "\\lib\\msvc;";
+               oci8_11g_inc_paths += oci8_11g_dirs[i] + "\\include;";
+       }
+
+       oci8_11g_inc_paths += PHP_PHP_BUILD + "\\include\\instantclient_11;"
+       oci8_11g_lib_paths += PHP_PHP_BUILD + "\\lib\\instantclient_11;";
+
+       if (CHECK_HEADER_ADD_INCLUDE("oci.h", "CFLAGS_OCI8_11G", oci8_11g_inc_paths) &&
+                       CHECK_LIB("oci.lib", "oci8_11g", oci8_11g_lib_paths))
+       {
+               EXTENSION('oci8_11g', 'oci8.c oci8_lob.c oci8_statement.c oci8_collection.c oci8_interface.c', null, null, null, "ext\\oci8_11g")
+
+               AC_DEFINE('HAVE_OCI8', 1);
+               AC_DEFINE('HAVE_OCI_INSTANT_CLIENT', 1);
+               AC_DEFINE('HAVE_OCI_LOB_READ2', 1);
+
+       } else {
+               WARNING("oci8-11g not enabled: Oracle Database libraries or Oracle 11g Instant Client not found");
+               PHP_OCI8_11G = "no"
+       }
+}
index e0f59e1799664ff7cea4cbddb2d82f7d06fb6b38..73ce8352e857ef96ae6140300836cec392c37ae0 100644 (file)
@@ -50,6 +50,7 @@
 
 extern zend_module_entry oci8_module_entry;
 #define phpext_oci8_ptr &oci8_module_entry
+#define phpext_oci8_11g_ptr &oci8_module_entry
 
 
 PHP_MINIT_FUNCTION(oci);