diff options
| author | Wez Furlong <wez@php.net> | 2005-01-13 04:55:56 +0000 | 
|---|---|---|
| committer | Wez Furlong <wez@php.net> | 2005-01-13 04:55:56 +0000 | 
| commit | d056f96a2f9e1d882eb720a790f04ac564e3978b (patch) | |
| tree | 72050a08092d52a60fcbe53acfac8003bc1137cf | |
| parent | f17311c9ddd882fd3e3774ac8b2d05ad722c9461 (diff) | |
| download | php-git-d056f96a2f9e1d882eb720a790f04ac564e3978b.tar.gz | |
Add configure support for Oracle InstantClient SDK
| -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)  | 
