diff options
| -rwxr-xr-x | ext/pdo_oci/config.m4 | 91 |
1 files changed, 57 insertions, 34 deletions
diff --git a/ext/pdo_oci/config.m4 b/ext/pdo_oci/config.m4 index 40f8df4ea1..cb2a832d97 100755 --- a/ext/pdo_oci/config.m4 +++ b/ext/pdo_oci/config.m4 @@ -26,7 +26,14 @@ AC_DEFUN(AC_PDO_OCI_VERSION,[ ]) PHP_ARG_WITH(pdo-oci, Oracle OCI support for PDO, -[ --with-pdo-oci[=DIR] Include Oracle-oci support. Default DIR is ORACLE_HOME.]) +[ + --with-pdo-oci[=DIR] Include 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 +]) if test "$PHP_PDO_OCI" != "no"; then AC_MSG_CHECKING([Oracle Install-Dir]) @@ -37,70 +44,86 @@ if test "$PHP_PDO_OCI" != "no"; then fi AC_MSG_RESULT($PDO_OCI_DIR :$PHP_PDO_OCI:) - 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" - fi - if test -d "$PDO_OCI_DIR/rdbms/demo"; then - PHP_ADD_INCLUDE($PDO_OCI_DIR/rdbms/demo) - PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/rdbms/demo" - fi - if test -d "$PDO_OCI_DIR/network/public"; then - PHP_ADD_INCLUDE($PDO_OCI_DIR/network/public) - PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/network/public" - fi - if test -d "$PDO_OCI_DIR/plsql/public"; then - PHP_ADD_INCLUDE($PDO_OCI_DIR/plsql/public) - PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/plsql/public" + 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. +]) + else + AC_MSG_RESULT([yes]) fi - if test -f "$PDO_OCI_DIR/lib/sysliblist"; then - PHP_EVAL_LIBLINE(`cat $PDO_OCI_DIR/lib/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) + if test "instantclient" = "`echo $PDO_OCI_DIR | cut -d, -f1`" ; then + PDO_OCI_IC_PREFIX="`echo $PDO_OCI_DIR | cut -d, -f2`" + PDO_OCI_IC_VERS="`echo $PDO_OCI_DIR | cut -d, -f3`" + PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client) + PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib" + PDO_OCI_VERSION="`echo $PDO_OCI_IC_VERS | cut -d. -f1-2`" + else + 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" + fi + if test -d "$PDO_OCI_DIR/rdbms/demo"; then + PHP_ADD_INCLUDE($PDO_OCI_DIR/rdbms/demo) + PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/rdbms/demo" + fi + if test -d "$PDO_OCI_DIR/network/public"; then + PHP_ADD_INCLUDE($PDO_OCI_DIR/network/public) + PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/network/public" + fi + if test -d "$PDO_OCI_DIR/plsql/public"; then + PHP_ADD_INCLUDE($PDO_OCI_DIR/plsql/public) + PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/plsql/public" + fi + + if test -f "$PDO_OCI_DIR/lib/sysliblist"; then + PHP_EVAL_LIBLINE(`cat $PDO_OCI_DIR/lib/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 - AC_PDO_OCI_VERSION($PDO_OCI_DIR) case $PDO_OCI_VERSION in 8.0) PHP_ADD_LIBRARY_WITH_PATH(nlsrtl3, "", PDO_OCI_SHARED_LIBADD) PHP_ADD_LIBRARY_WITH_PATH(core4, "", PDO_OCI_SHARED_LIBADD) PHP_ADD_LIBRARY_WITH_PATH(psa, "", PDO_OCI_SHARED_LIBADD) - PHP_ADD_LIBRARY_WITH_PATH(clntsh, $PDO_OCI_DIR/lib, PDO_OCI_SHARED_LIBADD) + PHP_ADD_LIBRARY_WITH_PATH(clntsh, $PDO_OCI_LIB_DIR, PDO_OCI_SHARED_LIBADD) ;; 8.1) PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD) - PHP_ADD_LIBPATH($PDO_OCI_DIR/lib, PDO_OCI_SHARED_LIBADD) ;; 9.0) PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD) - PHP_ADD_LIBPATH($PDO_OCI_DIR/lib, PDO_OCI_SHARED_LIBADD) - ;; 10.1) PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD) - PHP_ADD_LIBPATH($PDO_OCI_DIR/lib, PDO_OCI_SHARED_LIBADD) ;; *) - AC_MSG_ERROR(Unsupported Oracle version!) + AC_MSG_ERROR(Unsupported Oracle version! $PDO_OCI_VERSION) ;; esac + PHP_ADD_LIBPATH($PDO_OCI_LIB_DIR, PDO_OCI_SHARED_LIBADD) + PHP_CHECK_LIBRARY(clntsh, OCIEnvCreate, [ AC_DEFINE(HAVE_OCIENVCREATE,1,[ ]) ], [], [ - -L$PDO_OCI_DIR/lib $PDO_OCI_SHARED_LIBADD + -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD ]) PHP_CHECK_LIBRARY(clntsh, OCIEnvNlsCreate, [ AC_DEFINE(HAVE_OCIENVNLSCREATE,1,[ ]) ], [], [ - -L$PDO_OCI_DIR/lib $PDO_OCI_SHARED_LIBADD + -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD ]) dnl @@ -115,10 +138,10 @@ if test "$PHP_PDO_OCI" != "no"; then PHP_ADD_LIBRARY(ocijdbc8, 1, PDO_OCI_SHARED_LIBADD) AC_DEFINE(HAVE_OCILOBISTEMPORARY,1,[ ]) ], [], [ - -L$PDO_OCI_DIR/lib $PDO_OCI_SHARED_LIBADD + -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD ]) ], [ - -L$PDO_OCI_DIR/lib $PDO_OCI_SHARED_LIBADD + -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD ]) dnl @@ -128,15 +151,15 @@ if test "$PHP_PDO_OCI" != "no"; then [ AC_DEFINE(HAVE_OCICOLLASSIGN,1,[ ]) ], [], [ - -L$PDO_OCI_DIR/lib $PDO_OCI_SHARED_LIBADD + -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD ]) dnl Scrollable cursors? PHP_CHECK_LIBRARY(clntsh, OCIStmtFetch2, [ - AC_DEFINE(HAVE_OCISTMTFETCH2,1,[ ]) + AC_DEFINE(HAVE_OCISTMTFETCH2,1,[ ]) ], [], [ - -L$PDO_OCI_DIR/lib $PDO_OCI_SHARED_LIBADD + -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD ]) PHP_NEW_EXTENSION(pdo_oci, pdo_oci.c oci_driver.c oci_statement.c, $ext_shared,,-I\$prefix/include/php/ext) |
