]> granicus.if.org Git - php/commitdiff
revert last change
authorStanislav Malyshev <stas@php.net>
Wed, 3 Sep 2008 19:21:45 +0000 (19:21 +0000)
committerStanislav Malyshev <stas@php.net>
Wed, 3 Sep 2008 19:21:45 +0000 (19:21 +0000)
ext/pdo_oci/config.m4

index ec066daca80adadd0e669c630f1d0f2f3d0a80a4..8c2960f9240aeefef3396fb5cb0df5247c1eb4c2 100755 (executable)
@@ -2,52 +2,82 @@ dnl $Id$
 dnl config.m4 for extension pdo_oci
 dnl vim:et:sw=2:ts=2:
 
-if test "$PHP_PDO" != "no"; then
-SUPPORTED_VERS="1 8 9 10 11"
 AC_DEFUN([AC_PDO_OCI_VERSION],[
   AC_MSG_CHECKING([Oracle version])
   if test -s "$PDO_OCI_DIR/orainst/unix.rgs"; then
-    PDO_OCI_VERSION=`grep '"ocommon"' $PDO_OCI_DIR/orainst/unix.rgs | sed 's/  */:/g' | cut -d: -f 6 | cut -c 2-4`
+    PDO_OCI_VERSION=`grep '"ocommon"' $PDO_OCI_DIR/orainst/unix.rgs | sed 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4`
     test -z "$PDO_OCI_VERSION" && PDO_OCI_VERSION=7.3
-  elif test -f $PDO_OCI_DIR/lib/libclntsh.a; then
-    if test -f $PDO_OCI_DIR/lib/libcore4.a; then
-      PDO_OCI_VERSION=8.x
+  elif test -f $PDO_OCI_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then
+    PDO_OCI_VERSION=11.1    
+  elif test -f $PDO_OCI_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
+    PDO_OCI_VERSION=10.1    
+  elif test -f $PDO_OCI_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.9.0; then
+    PDO_OCI_VERSION=9.0
+  elif test -f $PDO_OCI_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.8.0; then
+    PDO_OCI_VERSION=8.1
+  elif test -f $PDO_OCI_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.1.0; then
+    PDO_OCI_VERSION=8.0
+  elif test -f $PDO_OCI_LIB_DIR/libclntsh.a; then 
+    if test -f $PDO_OCI_LIB_DIR/libcore4.a; then 
+      PDO_OCI_VERSION=8.0
     else
-      PDO_OCI_VERSION=8.x
+      PDO_OCI_VERSION=8.1
     fi
   else
-          for OCI_VER in $SUPPORTED_VERS; do
-                  if test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.$OCI_VER.*; then
-                    PDO_OCI_VERSION="$OCI_VER.x"
-                    echo $PDO_OCI_VERSION
-                  fi
-          done
+    AC_MSG_ERROR(Oracle OCI libraries not found under $PDO_OCI_DIR)
   fi
-  if [ -z "$PDO_OCI_VERSION" ] ;then
-    { { echo "$as_me:$LINENO: error: Oracle-OCI needed libraries not found under $PDO_OCI_DIR" >&5
-        echo "$as_me: error: Oracle-OCI needed libraries not found under $PDO_OCI_DIR" >&2;}
-   { (exit 1); exit 1; }; }
+  AC_MSG_RESULT($PDO_OCI_VERSION)
+])                                                                                                                                                                
+
+AC_DEFUN([AC_PDO_OCI_CHECK_LIB_DIR],[
+  AC_CHECK_SIZEOF(long int, 4)
+  AC_MSG_CHECKING([if we're on a 64-bit platform])
+  if test "$ac_cv_sizeof_long_int" = "4" ; then
+    AC_MSG_RESULT([no])
+    TMP_PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib32"
+  else
+    AC_MSG_RESULT([yes])
+    TMP_PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib"
+  fi
+
+  AC_MSG_CHECKING([OCI8 libraries dir])
+  if test -d "$PDO_OCI_DIR/lib" && test ! -d "$PDO_OCI_DIR/lib32"; then
+    PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib"
+  elif test ! -d "$PDO_OCI_DIR/lib" && test -d "$PDO_OCI_DIR/lib32"; then
+    PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib32"
+  elif test -d "$PDO_OCI_DIR/lib" && test -d "$PDO_OCI_DIR/lib32"; then
+    PDO_OCI_LIB_DIR=$TMP_PDO_OCI_LIB_DIR
+  else
+    AC_MSG_ERROR([Oracle (OCI8) required libraries not found])
   fi
+  AC_MSG_RESULT($PDO_OCI_LIB_DIR)
+])
 
 PHP_ARG_WITH(pdo-oci, Oracle OCI support for PDO,
-[  --with-pdo-oci[=DIR]      PDO: Oracle-OCI support. Default DIR is ORACLE_HOME.
-                            You may also use --with-pdo-oci=instantclient,prefix,version to use
-                            the InstantClient SDK. For Linux with 10.1.0.3 rpms (for example) use:
-                            --with-pdo-oci=instantclient,/usr,10.1.0.3])
+[  --with-pdo-oci[=DIR]      PDO: Oracle OCI support. DIR defaults to \$ORACLE_HOME.
+                            Use --with-pdo-oci=instantclient,prefix,version 
+                            for an Oracle Instant Client SDK. 
+                            For Linux with 10.2.0.3 RPMs (for example) use:
+                            --with-pdo-oci=instantclient,/usr,10.2.0.3])
 
 if test "$PHP_PDO_OCI" != "no"; then
+
+  if test "$PHP_PDO" = "no" && test "$ext_shared" = "no"; then
+    AC_MSG_ERROR([PDO is not enabled! Add --enable-pdo to your configure line.])
+  fi
+
   AC_MSG_CHECKING([Oracle Install-Dir])
-  if test "$PHP_PDO_OCI" = "yes" -o -z "$PHP_PDO_OCI"; then
+  if test "$PHP_PDO_OCI" = "yes" || test -z "$PHP_PDO_OCI"; then
     PDO_OCI_DIR=$ORACLE_HOME
   else
     PDO_OCI_DIR=$PHP_PDO_OCI
   fi
-  AC_MSG_RESULT($PDO_OCI_DIR :$PHP_PDO_OCI:)
+  AC_MSG_RESULT($PHP_PDO_OCI)
 
   AC_MSG_CHECKING([if that is sane])
   if test -z "$PDO_OCI_DIR"; then
     AC_MSG_ERROR([
-You need to tell me where to find your oracle SDK, or set ORACLE_HOME.
+You need to tell me where to find your Oracle Instant Client SDK, or set ORACLE_HOME.
 ])
   else
     AC_MSG_RESULT([yes])
@@ -63,12 +93,28 @@ You need to tell me where to find your oracle SDK, or set ORACLE_HOME.
     elif test -f $PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include/oci.h ; then
       PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include)
       AC_MSG_RESULT($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include)
+    elif test -f $PDO_OCI_IC_PREFIX/sdk/include/oci.h ; then
+      PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/sdk/include)
+      AC_MSG_RESULT($PDO_OCI_IC_PREFIX/sdk/include)
+    elif test -f $PDO_OCI_IC_PREFIX/client/include/oci.h ; then
+      PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/client/include)
+      AC_MSG_RESULT($PDO_OCI_IC_PREFIX/client/include)
     else
-      AC_MSG_ERROR([I'm too dumb to figure out where the include dir is in your instant client install])
+      AC_MSG_ERROR([I'm too dumb to figure out where the include dir is in your Instant Client install])
     fi
+    if test -f "$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib/libclntsh.so" ; then
     PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib"
+    elif test -f "$PDO_OCI_IC_PREFIX/client/lib/libclntsh.so" ; then
+      PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/client/lib"
+    elif test -f "$PDO_OCI_IC_PREFIX/libclntsh.so" ; then
+      PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX"
+    else
+      AC_MSG_ERROR([I'm too dumb to figure out where the libraries are in your Instant Client install])
+    fi
     PDO_OCI_VERSION="`echo $PDO_OCI_IC_VERS | cut -d. -f1-2`"
   else
+    AC_PDO_OCI_CHECK_LIB_DIR($PDO_OCI_DIR)
+
     if test -d "$PDO_OCI_DIR/rdbms/public"; then
       PHP_ADD_INCLUDE($PDO_OCI_DIR/rdbms/public)
       PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/rdbms/public"
@@ -90,14 +136,14 @@ You need to tell me where to find your oracle SDK, or set ORACLE_HOME.
       PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/include"
     fi
 
-    if test -f "$PDO_OCI_DIR/lib/sysliblist"; then
-      PHP_EVAL_LIBLINE(`cat $PDO_OCI_DIR/lib/sysliblist`, PDO_OCI_SYSLIB)
+    if test -f "$PDO_OCI_LIB_DIR/sysliblist"; then
+      PHP_EVAL_LIBLINE(`cat $PDO_OCI_LIB_DIR/sysliblist`, PDO_OCI_SYSLIB)
     elif test -f "$PDO_OCI_DIR/rdbms/lib/sysliblist"; then
       PHP_EVAL_LIBLINE(`cat $PDO_OCI_DIR/rdbms/lib/sysliblist`, PDO_OCI_SYSLIB)
     fi
-    PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib"
     AC_PDO_OCI_VERSION($PDO_OCI_DIR)
   fi
+
   case $PDO_OCI_VERSION in
     8.0)
       PHP_ADD_LIBRARY_WITH_PATH(nlsrtl3, "", PDO_OCI_SHARED_LIBADD)
@@ -106,16 +152,26 @@ You need to tell me where to find your oracle SDK, or set ORACLE_HOME.
       PHP_ADD_LIBRARY_WITH_PATH(clntsh, $PDO_OCI_LIB_DIR, PDO_OCI_SHARED_LIBADD)
       ;;
 
-    9.x|10.x|11.x)
+    8.1)
+      PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
+      ;;
+
+    9.0)
       PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
       ;;
-      
-    #11.1)
-    #  PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
-    #  ;;
-    #10.2)
-    #  PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
-    #  ;;
+
+    10.1)
+      PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
+      ;;
+
+    10.2)
+      PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
+      ;;
+
+    11.1)
+      PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
+      ;;
+
     *)
       AC_MSG_ERROR(Unsupported Oracle version! $PDO_OCI_VERSION)
       ;;
@@ -200,7 +256,6 @@ You need to tell me where to find your oracle SDK, or set ORACLE_HOME.
   [
     PHP_ADD_EXTENSION_DEP(pdo_oci, pdo)
   ])
-  
-fi
 
+  AC_DEFINE_UNQUOTED(PHP_PDO_OCI_CLIENT_VERSION, "$PDO_OCI_VERSION", [ ])
 fi