mirror of
https://github.com/php/php-src.git
synced 2024-10-09 02:36:28 +00:00
f1c40a4a22
-changes in config.m4 to make oci8 to compile with Oracle 10g (thanks to cjbj at hotmail dot com for reporting both problems)
168 lines
4.7 KiB
Plaintext
168 lines
4.7 KiB
Plaintext
dnl
|
|
dnl $Id$
|
|
dnl
|
|
|
|
AC_DEFUN(PHP_OCI_IF_DEFINED,[
|
|
old_CPPFLAGS=$CPPFLAGS
|
|
CPPFLAGS=$3
|
|
AC_EGREP_CPP(yes,[
|
|
#include <oci.h>
|
|
#if defined($1)
|
|
yes
|
|
#endif
|
|
],[
|
|
CPPFLAGS=$old_CPPFLAGS
|
|
$2
|
|
],[
|
|
CPPFLAGS=$old_CPPFLAGS
|
|
])
|
|
])
|
|
|
|
AC_DEFUN(AC_OCI8_VERSION,[
|
|
AC_MSG_CHECKING([Oracle version])
|
|
if test -s "$OCI8_DIR/orainst/unix.rgs"; then
|
|
OCI8_VERSION=`grep '"ocommon"' $OCI8_DIR/orainst/unix.rgs | sed 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4`
|
|
test -z "$OCI8_VERSION" && OCI8_VERSION=7.3
|
|
elif test -f $OCI8_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
|
|
OCI8_VERSION=10.1
|
|
elif test -f $OCI8_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.9.0; then
|
|
OCI8_VERSION=9.0
|
|
elif test -f $OCI8_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.8.0; then
|
|
OCI8_VERSION=8.1
|
|
elif test -f $OCI8_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.1.0; then
|
|
OCI8_VERSION=8.0
|
|
elif test -f $OCI8_DIR/lib/libclntsh.a; then
|
|
if test -f $OCI8_DIR/lib/libcore4.a; then
|
|
OCI8_VERSION=8.0
|
|
else
|
|
OCI8_VERSION=8.1
|
|
fi
|
|
else
|
|
AC_MSG_ERROR(Oracle-OCI8 needed libraries not found)
|
|
fi
|
|
AC_MSG_RESULT($OCI8_VERSION)
|
|
])
|
|
|
|
PHP_ARG_WITH(oci8, for Oracle-OCI8 support,
|
|
[ --with-oci8[=DIR] Include Oracle-oci8 support. Default DIR is ORACLE_HOME.])
|
|
|
|
if test "$PHP_OCI8" != "no"; then
|
|
AC_MSG_CHECKING([Oracle Install-Dir])
|
|
if test "$PHP_OCI8" = "yes"; then
|
|
OCI8_DIR=$ORACLE_HOME
|
|
else
|
|
OCI8_DIR=$PHP_OCI8
|
|
fi
|
|
AC_MSG_RESULT($OCI8_DIR)
|
|
|
|
if test -d "$OCI8_DIR/rdbms/public"; then
|
|
PHP_ADD_INCLUDE($OCI8_DIR/rdbms/public)
|
|
OCI8_INCLUDES="$OCI8_INCLUDES -I$OCI8_DIR/rdbms/public"
|
|
fi
|
|
if test -d "$OCI8_DIR/rdbms/demo"; then
|
|
PHP_ADD_INCLUDE($OCI8_DIR/rdbms/demo)
|
|
OCI8_INCLUDES="$OCI8_INCLUDES -I$OCI8_DIR/rdbms/demo"
|
|
fi
|
|
if test -d "$OCI8_DIR/network/public"; then
|
|
PHP_ADD_INCLUDE($OCI8_DIR/network/public)
|
|
OCI8_INCLUDES="$OCI8_INCLUDES -I$OCI8_DIR/network/public"
|
|
fi
|
|
if test -d "$OCI8_DIR/plsql/public"; then
|
|
PHP_ADD_INCLUDE($OCI8_DIR/plsql/public)
|
|
OCI8_INCLUDES="$OCI8_INCLUDES -I$OCI8_DIR/plsql/public"
|
|
fi
|
|
|
|
if test -f "$OCI8_DIR/lib/sysliblist"; then
|
|
PHP_EVAL_LIBLINE(`cat $OCI8_DIR/lib/sysliblist`, OCI8_SYSLIB)
|
|
elif test -f "$OCI8_DIR/rdbms/lib/sysliblist"; then
|
|
PHP_EVAL_LIBLINE(`cat $OCI8_DIR/rdbms/lib/sysliblist`, OCI8_SYSLIB)
|
|
fi
|
|
|
|
AC_OCI8_VERSION($OCI8_DIR)
|
|
case $OCI8_VERSION in
|
|
8.0)
|
|
PHP_ADD_LIBRARY_WITH_PATH(nlsrtl3, "", OCI8_SHARED_LIBADD)
|
|
PHP_ADD_LIBRARY_WITH_PATH(core4, "", OCI8_SHARED_LIBADD)
|
|
PHP_ADD_LIBRARY_WITH_PATH(psa, "", OCI8_SHARED_LIBADD)
|
|
PHP_ADD_LIBRARY_WITH_PATH(clntsh, $OCI8_DIR/lib, OCI8_SHARED_LIBADD)
|
|
;;
|
|
|
|
8.1)
|
|
PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
|
|
PHP_ADD_LIBPATH($OCI8_DIR/lib, OCI8_SHARED_LIBADD)
|
|
|
|
dnl
|
|
dnl OCI_ATTR_STATEMENT is not available in all 8.1.x versions
|
|
dnl
|
|
PHP_OCI_IF_DEFINED(OCI_ATTR_STATEMENT, [AC_DEFINE(HAVE_OCI8_ATTR_STATEMENT,1,[ ])], $OCI8_INCLUDES)
|
|
;;
|
|
|
|
9.0)
|
|
PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
|
|
PHP_ADD_LIBPATH($OCI8_DIR/lib, OCI8_SHARED_LIBADD)
|
|
AC_DEFINE(HAVE_OCI8_ATTR_STATEMENT,1,[ ])
|
|
|
|
dnl These functions are only available in version >= 9.2
|
|
PHP_CHECK_LIBRARY(clntsh, OCIEnvNlsCreate,
|
|
[
|
|
PHP_CHECK_LIBRARY(clntsh, OCINlsCharSetNameToId,
|
|
[
|
|
AC_DEFINE(HAVE_OCI_9_2,1,[ ])
|
|
OCI8_VERSION=9.2
|
|
], [], [
|
|
-L$OCI8_DIR/lib $OCI8_SHARED_LIBADD
|
|
])
|
|
], [], [
|
|
-L$OCI8_DIR/lib $OCI8_SHARED_LIBADD
|
|
])
|
|
;;
|
|
|
|
10.1)
|
|
PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
|
|
PHP_ADD_LIBPATH($OCI8_DIR/lib, OCI8_SHARED_LIBADD)
|
|
AC_DEFINE(HAVE_OCI8_ATTR_STATEMENT,1,[ ])
|
|
AC_DEFINE(HAVE_OCI_9_2,1,[ ])
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR(Unsupported Oracle version!)
|
|
;;
|
|
esac
|
|
|
|
dnl
|
|
dnl Check if we need to add -locijdbc8
|
|
dnl
|
|
PHP_CHECK_LIBRARY(clntsh, OCILobIsTemporary,
|
|
[
|
|
AC_DEFINE(HAVE_OCI8_TEMP_LOB,1,[ ])
|
|
], [
|
|
PHP_CHECK_LIBRARY(ocijdbc8, OCILobIsTemporary,
|
|
[
|
|
PHP_ADD_LIBRARY(ocijdbc8, 1, OCI8_SHARED_LIBADD)
|
|
AC_DEFINE(HAVE_OCI8_TEMP_LOB,1,[ ])
|
|
], [], [
|
|
-L$OCI8_DIR/lib $OCI8_SHARED_LIBADD
|
|
])
|
|
], [
|
|
-L$OCI8_DIR/lib $OCI8_SHARED_LIBADD
|
|
])
|
|
|
|
dnl
|
|
dnl Check if we have collections
|
|
dnl
|
|
PHP_CHECK_LIBRARY(clntsh, OCICollAssign,
|
|
[
|
|
AC_DEFINE(PHP_OCI8_HAVE_COLLECTIONS,1,[ ])
|
|
], [], [
|
|
-L$OCI8_DIR/lib $OCI8_SHARED_LIBADD
|
|
])
|
|
|
|
|
|
PHP_NEW_EXTENSION(oci8, oci8.c, $ext_shared)
|
|
AC_DEFINE(HAVE_OCI8,1,[ ])
|
|
|
|
PHP_SUBST_OLD(OCI8_SHARED_LIBADD)
|
|
PHP_SUBST_OLD(OCI8_DIR)
|
|
PHP_SUBST_OLD(OCI8_VERSION)
|
|
|
|
fi
|