sixd                                     Tue, 29 Mar 2011 21:37:45 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=309823

Log:
Refactor OCI8 config.m4: improve messages and merge similar conditionals

Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/oci8/config.m4
    U   php/php-src/trunk/ext/oci8/config.m4

Modified: php/php-src/branches/PHP_5_3/ext/oci8/config.m4
===================================================================
--- php/php-src/branches/PHP_5_3/ext/oci8/config.m4	2011-03-29 20:59:26 UTC (rev 309822)
+++ php/php-src/branches/PHP_5_3/ext/oci8/config.m4	2011-03-29 21:37:45 UTC (rev 309823)
@@ -47,48 +47,37 @@
 ])

 AC_DEFUN([AC_OCI8IC_VERSION],[
-  AC_MSG_CHECKING([Oracle Instant Client version])
-  if test -f $PHP_OCI8_INSTANT_CLIENT/libnnz11.$SHLIB_SUFFIX_NAME; then
-    if test -f $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then
-      if test ! -f $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME; then
-        AC_MSG_ERROR([Link from $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME to libclntsh.$SHLIB_SUFFIX_NAME.11.1 not found])
-      fi
-      OCI8_ORACLE_VERSION=11.1
-    else
-      AC_MSG_ERROR([Oracle Instant Client library version not supported])
+  AC_MSG_CHECKING([Oracle Instant Client library version compatibility])
+  OCI8_LCS_BASE=$PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME
+  OCI8_LCS=`ls $OCI8_LCS_BASE.*.1 2> /dev/null | tail -1`  # Oracle 10g, 11g etc
+  OCI8_NNZ=`ls $PHP_OCI8_INSTANT_CLIENT/libnnz*.$SHLIB_SUFFIX_NAME 2> /dev/null | tail -1`
+  if test -f "$OCI8_NNZ" && test -f "$OCI8_LCS"; then
+    if test ! -f "$OCI8_LCS_BASE"; then
+      AC_MSG_ERROR([Link from $OCI8_LCS_BASE to $OCI8_LCS_BASE.*.1 not found])
     fi
-  elif test -f $PHP_OCI8_INSTANT_CLIENT/libnnz10.$SHLIB_SUFFIX_NAME; then
-    if test -f $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
-      if test ! -f $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME; then
-        AC_MSG_ERROR([Link from $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME to libclntsh.$SHLIB_SUFFIX_NAME.10.1 not found])
-      fi
-      OCI8_ORACLE_VERSION=10.1
-    else
-      AC_MSG_ERROR([Oracle Instant Client library version not supported])
-    fi
+    OCI8_ORACLE_VERSION=`echo $OCI8_LCS | $PHP_OCI8_SED -e 's/.*\.\(.*\)\.1$/\1.1/'`
   else
-    AC_MSG_ERROR([Oracle Instant Client libraries not found])
+    AC_MSG_ERROR([Oracle Instant Client libraries libnnz.$SHLIB_SUFFIX_NAME and libclntsh.$SHLIB_SUFFIX_NAME not found])
   fi
   AC_MSG_RESULT([$OCI8_ORACLE_VERSION])
 ])

-
 AC_DEFUN([AC_OCI8_ORACLE_VERSION],[
-  AC_MSG_CHECKING([Oracle version])
+  AC_MSG_CHECKING([Oracle library version compatibility])
+  OCI8_LCS_BASE=$OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME
+  OCI8_LCS=`ls $OCI8_LCS_BASE.*.1 2> /dev/null | tail -1`  # Oracle 10g, 11g etc
   if test -s "$OCI8_DIR/orainst/unix.rgs"; then
     OCI8_ORACLE_VERSION=`grep '"ocommon"' $OCI8_DIR/orainst/unix.rgs | $PHP_OCI8_SED 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4`
     test -z "$OCI8_ORACLE_VERSION" && OCI8_ORACLE_VERSION=7.3
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then
-    OCI8_ORACLE_VERSION=11.1
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
-    dnl There is no case for Oracle 10.2. Oracle 10.2 libraries have a 10.1 suffix for drop-in compatibility with Oracle 10.1
-    OCI8_ORACLE_VERSION=10.1
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.9.0; then
+  elif test -f "$OCI8_LCS"; then
+    dnl Oracle 10g, 11g etc.  The x.2 version libraries are named x.1 for drop in compatibility
+    OCI8_ORACLE_VERSION=`echo $OCI8_LCS | $PHP_OCI8_SED -e 's/.*\.\(.*\)\.1$/\1.1/'`
+  elif test -f $OCI8_LCS_BASE.9.0; then
     dnl There is no case for Oracle 9.2. Oracle 9.2 libraries have a 9.0 suffix for drop-in compatibility with Oracle 9.0
     OCI8_ORACLE_VERSION=9.0
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.8.0; then
+  elif test -f $OCI8_LCS_BASE.8.0; then
     OCI8_ORACLE_VERSION=8.1
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.1.0; then
+  elif test -f $OCI8_LCS_BASE.1.0; then
     OCI8_ORACLE_VERSION=8.0
   elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.a; then
     if test -f $OCI8_DIR/$OCI8_LIB_DIR/libcore4.a; then
@@ -97,7 +86,7 @@
       OCI8_ORACLE_VERSION=8.1
     fi
   else
-    AC_MSG_ERROR(Oracle client libraries not found)
+    AC_MSG_ERROR(Oracle libclntsh.$SHLIB_SUFFIX_NAME client library not found)
   fi
   AC_MSG_RESULT($OCI8_ORACLE_VERSION)
 ])
@@ -106,8 +95,8 @@
 dnl --with-oci8=shared,instantclient,/path/to/client/dir/lib
 dnl or
 dnl --with-oci8=shared,/path/to/oracle/home
-PHP_ARG_WITH(oci8, for Oracle (OCI8) support,
-[  --with-oci8[=DIR]       Include Oracle (OCI8) support. DIR defaults to \$ORACLE_HOME.
+PHP_ARG_WITH(oci8, for Oracle Database OCI8 support,
+[  --with-oci8[=DIR]       Include Oracle Database OCI8 support. DIR defaults to \$ORACLE_HOME.
                           Use --with-oci8=instantclient,/path/to/instant/client/lib
                           to use an Oracle Instant Client installation])

@@ -258,13 +247,9 @@
 	])
 	;;

-      10.1|11.1)
+      *)
 	AC_DEFINE(HAVE_OCI_LOB_READ2,1,[ ])
 	;;
-
-      *)
-	AC_MSG_ERROR([Oracle version $OCI8_ORACLE_VERSION is not supported])
-	;;
     esac

     PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
@@ -335,17 +320,9 @@
     fi

     AC_OCI8IC_VERSION($PHP_OCI8_INSTANT_CLIENT)
-    case $OCI8_ORACLE_VERSION in
-      10.1|11.1)
-	PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
-	PHP_ADD_LIBPATH($PHP_OCI8_INSTANT_CLIENT, OCI8_SHARED_LIBADD)
-	;;
+    PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
+    PHP_ADD_LIBPATH($PHP_OCI8_INSTANT_CLIENT, OCI8_SHARED_LIBADD)

-      *)
-	AC_MSG_ERROR([Oracle Instant Client version $PHP_OCI8_INSTANT_CLIENT is not supported])
-	;;
-    esac
-
     AC_DEFINE(HAVE_OCI_INSTANT_CLIENT,1,[ ])
     AC_DEFINE(HAVE_OCI_LOB_READ2,1,[ ])


Modified: php/php-src/trunk/ext/oci8/config.m4
===================================================================
--- php/php-src/trunk/ext/oci8/config.m4	2011-03-29 20:59:26 UTC (rev 309822)
+++ php/php-src/trunk/ext/oci8/config.m4	2011-03-29 21:37:45 UTC (rev 309823)
@@ -47,48 +47,37 @@
 ])

 AC_DEFUN([AC_OCI8IC_VERSION],[
-  AC_MSG_CHECKING([Oracle Instant Client version])
-  if test -f $PHP_OCI8_INSTANT_CLIENT/libnnz11.$SHLIB_SUFFIX_NAME; then
-    if test -f $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then
-      if test ! -f $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME; then
-        AC_MSG_ERROR([Link from $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME to libclntsh.$SHLIB_SUFFIX_NAME.11.1 not found])
-      fi
-      OCI8_ORACLE_VERSION=11.1
-    else
-      AC_MSG_ERROR([Oracle Instant Client library version not supported])
+  AC_MSG_CHECKING([Oracle Instant Client library version compatibility])
+  OCI8_LCS_BASE=$PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME
+  OCI8_LCS=`ls $OCI8_LCS_BASE.*.1 2> /dev/null | tail -1`  # Oracle 10g, 11g etc
+  OCI8_NNZ=`ls $PHP_OCI8_INSTANT_CLIENT/libnnz*.$SHLIB_SUFFIX_NAME 2> /dev/null | tail -1`
+  if test -f "$OCI8_NNZ" && test -f "$OCI8_LCS"; then
+    if test ! -f "$OCI8_LCS_BASE"; then
+      AC_MSG_ERROR([Link from $OCI8_LCS_BASE to $OCI8_LCS_BASE.*.1 not found])
     fi
-  elif test -f $PHP_OCI8_INSTANT_CLIENT/libnnz10.$SHLIB_SUFFIX_NAME; then
-    if test -f $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
-      if test ! -f $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME; then
-        AC_MSG_ERROR([Link from $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME to libclntsh.$SHLIB_SUFFIX_NAME.10.1 not found])
-      fi
-      OCI8_ORACLE_VERSION=10.1
-    else
-      AC_MSG_ERROR([Oracle Instant Client library version not supported])
-    fi
+    OCI8_ORACLE_VERSION=`echo $OCI8_LCS | $PHP_OCI8_SED -e 's/.*\.\(.*\)\.1$/\1.1/'`
   else
-    AC_MSG_ERROR([Oracle Instant Client libraries not found])
+    AC_MSG_ERROR([Oracle Instant Client libraries libnnz.$SHLIB_SUFFIX_NAME and libclntsh.$SHLIB_SUFFIX_NAME not found])
   fi
   AC_MSG_RESULT([$OCI8_ORACLE_VERSION])
 ])

-
 AC_DEFUN([AC_OCI8_ORACLE_VERSION],[
-  AC_MSG_CHECKING([Oracle version])
+  AC_MSG_CHECKING([Oracle library version compatibility])
+  OCI8_LCS_BASE=$OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME
+  OCI8_LCS=`ls $OCI8_LCS_BASE.*.1 2> /dev/null | tail -1`  # Oracle 10g, 11g etc
   if test -s "$OCI8_DIR/orainst/unix.rgs"; then
     OCI8_ORACLE_VERSION=`grep '"ocommon"' $OCI8_DIR/orainst/unix.rgs | $PHP_OCI8_SED 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4`
     test -z "$OCI8_ORACLE_VERSION" && OCI8_ORACLE_VERSION=7.3
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then
-    OCI8_ORACLE_VERSION=11.1
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
-    dnl There is no case for Oracle 10.2. Oracle 10.2 libraries have a 10.1 suffix for drop-in compatibility with Oracle 10.1
-    OCI8_ORACLE_VERSION=10.1
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.9.0; then
+  elif test -f "$OCI8_LCS"; then
+    dnl Oracle 10g, 11g etc.  The x.2 version libraries are named x.1 for drop in compatibility
+    OCI8_ORACLE_VERSION=`echo $OCI8_LCS | $PHP_OCI8_SED -e 's/.*\.\(.*\)\.1$/\1.1/'`
+  elif test -f $OCI8_LCS_BASE.9.0; then
     dnl There is no case for Oracle 9.2. Oracle 9.2 libraries have a 9.0 suffix for drop-in compatibility with Oracle 9.0
     OCI8_ORACLE_VERSION=9.0
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.8.0; then
+  elif test -f $OCI8_LCS_BASE.8.0; then
     OCI8_ORACLE_VERSION=8.1
-  elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.1.0; then
+  elif test -f $OCI8_LCS_BASE.1.0; then
     OCI8_ORACLE_VERSION=8.0
   elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.a; then
     if test -f $OCI8_DIR/$OCI8_LIB_DIR/libcore4.a; then
@@ -97,7 +86,7 @@
       OCI8_ORACLE_VERSION=8.1
     fi
   else
-    AC_MSG_ERROR(Oracle client libraries not found)
+    AC_MSG_ERROR(Oracle libclntsh.$SHLIB_SUFFIX_NAME client library not found)
   fi
   AC_MSG_RESULT($OCI8_ORACLE_VERSION)
 ])
@@ -106,8 +95,8 @@
 dnl --with-oci8=shared,instantclient,/path/to/client/dir/lib
 dnl or
 dnl --with-oci8=shared,/path/to/oracle/home
-PHP_ARG_WITH(oci8, for Oracle (OCI8) support,
-[  --with-oci8[=DIR]       Include Oracle (OCI8) support. DIR defaults to \$ORACLE_HOME.
+PHP_ARG_WITH(oci8, for Oracle Database OCI8 support,
+[  --with-oci8[=DIR]       Include Oracle Database OCI8 support. DIR defaults to \$ORACLE_HOME.
                           Use --with-oci8=instantclient,/path/to/instant/client/lib
                           to use an Oracle Instant Client installation])

@@ -258,13 +247,9 @@
 	])
 	;;

-      10.1|11.1)
+      *)
 	AC_DEFINE(HAVE_OCI_LOB_READ2,1,[ ])
 	;;
-
-      *)
-	AC_MSG_ERROR([Oracle version $OCI8_ORACLE_VERSION is not supported])
-	;;
     esac

     PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
@@ -335,17 +320,9 @@
     fi

     AC_OCI8IC_VERSION($PHP_OCI8_INSTANT_CLIENT)
-    case $OCI8_ORACLE_VERSION in
-      10.1|11.1)
-	PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
-	PHP_ADD_LIBPATH($PHP_OCI8_INSTANT_CLIENT, OCI8_SHARED_LIBADD)
-	;;
+    PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
+    PHP_ADD_LIBPATH($PHP_OCI8_INSTANT_CLIENT, OCI8_SHARED_LIBADD)

-      *)
-	AC_MSG_ERROR([Oracle Instant Client version $PHP_OCI8_INSTANT_CLIENT is not supported])
-	;;
-    esac
-
     AC_DEFINE(HAVE_OCI_INSTANT_CLIENT,1,[ ])
     AC_DEFINE(HAVE_OCI_LOB_READ2,1,[ ])

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

Reply via email to