summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2005-01-13 04:55:56 +0000
committerWez Furlong <wez@php.net>2005-01-13 04:55:56 +0000
commitd056f96a2f9e1d882eb720a790f04ac564e3978b (patch)
tree72050a08092d52a60fcbe53acfac8003bc1137cf
parentf17311c9ddd882fd3e3774ac8b2d05ad722c9461 (diff)
downloadphp-git-d056f96a2f9e1d882eb720a790f04ac564e3978b.tar.gz
Add configure support for Oracle InstantClient SDK
-rwxr-xr-xext/pdo_oci/config.m491
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)