diff options
-rw-r--r-- | ext/oci8/Makefile.in | 7 | ||||
-rw-r--r-- | ext/oci8/config.m4 | 156 | ||||
-rw-r--r-- | ext/oci8/oci8.c | 6 |
3 files changed, 71 insertions, 98 deletions
diff --git a/ext/oci8/Makefile.in b/ext/oci8/Makefile.in index 7eba37e809..4e34b2fc13 100644 --- a/ext/oci8/Makefile.in +++ b/ext/oci8/Makefile.in @@ -1,7 +1,6 @@ - -LTLIBRARY_NAME = liboci8.la -LTLIBRARY_SOURCES = oci8.c +LTLIBRARY_NAME = liboci8.la +LTLIBRARY_SOURCES = oci8.c LTLIBRARY_SHARED_NAME = oci8.la -LTLIBRARY_SHARED_LIBADD = $(OCI8_LFLAGS) $(OCI8_LIBS) +LTLIBRARY_SHARED_LIBADD = $(OCI8_SHARED_LIBADD) include $(top_srcdir)/build/dynlib.mk diff --git a/ext/oci8/config.m4 b/ext/oci8/config.m4 index cd0ff71fbb..309ffc0695 100644 --- a/ext/oci8/config.m4 +++ b/ext/oci8/config.m4 @@ -2,9 +2,11 @@ dnl $Id$ AC_DEFUN(AC_OCI8_VERSION,[ AC_MSG_CHECKING([Oracle version]) - if test -f "$OCI8_HOME/lib/libclntsh.so.8.0"; then + if test -f "$OCI8_DIR/lib/libclntsh.so.8.0"; then OCI8_VERSION=8.1 - elif test -f "$OCI8_HOME/lib/libclntsh.so.1.0"; then + elif test -f "$OCI8_DIR/lib/libclntsh.so.1.0"; then + OCI8_VERSION=8.0 + elif test -f "$OCI8_DIR/lib/libclntsh.a"; then # AIX - XXX is this check still right for 8.1? OCI8_VERSION=8.0 else AC_MSG_ERROR(Oracle-OCI8 needed libraries not found) @@ -12,102 +14,74 @@ AC_DEFUN(AC_OCI8_VERSION,[ AC_MSG_RESULT($OCI8_VERSION) ]) -AC_MSG_CHECKING(for Oracle-OCI8 support) -AC_ARG_WITH(oci8, -[ --with-oci8[=DIR] Include Oracle-OCI8 database support. DIR is Oracle's - home directory, defaults to \$ORACLE_HOME.], -[ - case $withval in - shared) - shared=yes - withval=yes - OCI8_HOME=$ORACLE_HOME - AC_MSG_RESULT(yes) - PHP_EXTENSION(oci8,yes) - ;; - shared,*) - shared=yes - withval=`echo $withval | sed -e 's/^shared,//'` - AC_EXPAND_PATH($withval, OCI8_HOME) - AC_MSG_RESULT(yes) - PHP_EXTENSION(oci8,yes) - ;; - *) - shared=no - OCI8_HOME=$ORACLE_HOME - AC_MSG_RESULT(yes) - PHP_EXTENSION(oci8,no) - ;; - esac +PHP_ARG_WITH(oci8, for Oracle-OCI8 support, +[ --with-oci8[=DIR] Include oci8 support. DIR is the ORACLE_HOME.]) - if test "$OCI8_HOME" != ""; then - if test -d "$OCI8_HOME/rdbms/public"; then - OCI8_INCLUDE="$OCI8_INCLUDE -I$OCI8_HOME/rdbms/public" - fi - if test -d "$OCI8_HOME/rdbms/demo"; then - OCI8_INCLUDE="$OCI8_INCLUDE -I$OCI8_HOME/rdbms/demo" - fi - if test -d "$OCI8_HOME/network/public"; then - OCI8_INCLUDE="$OCI8_INCLUDE -I$OCI8_HOME/network/public" - fi - if test -d "$OCI8_HOME/plsql/public"; then - OCI8_INCLUDE="$OCI8_INCLUDE -I$OCI8_HOME/plsql/public" - fi +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) - # Need to know the version, otherwhise we will mixup nlsrtl - AC_OCI8_VERSION($OCI8_HOME) + if test -d "$OCI8_DIR/rdbms/public"; then + AC_ADD_INCLUDE($OCI8_DIR/rdbms/public) + fi + if test -d "$OCI8_DIR/rdbms/demo"; then + AC_ADD_INCLUDE($OCI8_DIR/rdbms/demo) + fi + if test -d "$OCI8_DIR/network/public"; then + AC_ADD_INCLUDE($OCI8_DIR/network/public) + fi + if test -d "$OCI8_DIR/plsql/public"; then + AC_ADD_INCLUDE($OCI8_DIR/plsql/public) + fi - OCI8_LIBDIR=lib - OCI8_LFLAGS="-L$OCI8_HOME/$OCI8_LIBDIR ${ld_runpath_switch}$OCI8INST_TOP/$OCI8_LIBDIR" - if test -f "$OCI8_HOME/rdbms/lib/sysliblist"; then - ORA_SYSLIB="`cat $OCI8_HOME/rdbms/lib/sysliblist`" - else - ORA_SYSLIB="-lm" - fi + if test -f "$OCI8_DIR/lib/sysliblist"; then + OCI8_SYSLIB="`cat $OCI8_DIR/lib/sysliblist | sed -e 's/-l//g'`" + elif test -f "$OCI8_DIR/rdbms/lib/sysliblist"; then + OCI8_SYSLIB="`cat $OCI8_DIR/rdbms/lib/sysliblist | sed -e 's/-l//g'`" + fi - # Oracle shared libs - case $OCI8_VERSION in - 8.0) - if test -f $OCI8_HOME/$OCI8_LIBDIR/libclntsh.s? -o \ - -f $OCI8_HOME/$OCI8_LIBDIR/libclntsh.a # AIX - then - if test "$CC" = "gcc" -a "`uname -sv`" = "AIX 4"; then - # for Oracle 8 on AIX 4 - ORA_SYSLIB="$ORA_SYSLIB -nostdlib /lib/crt0_r.o /usr/lib/libpthreads.a /usr/lib/libc_r.a -lgcc" - fi + if test -n "$OCI8_SYSLIB"; then + for oci8_slib in `echo $OCI8_SYSLIB`; do + AC_ADD_LIBRARY_WITH_PATH($oci8_slib, "", OCI8_SHARED_LIBADD) + done + fi - OCI8_SHLIBS="-lclntsh -lpsa -lcore4 -lnlsrtl3 -lclntsh $ORA_SYSLIB" - else - OCI8_SHLIBS="$OCI8_STLIBS" - fi - AC_DEFINE(HAVE_OCI8,1,[ ]) - ;; + AC_OCI8_VERSION($OCI8_DIR) + case $OCI8_VERSION in + 8.0) + AC_ADD_LIBRARY_WITH_PATH(nlsrtl3, "", OCI8_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(core4, "", OCI8_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(psa, "", OCI8_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(clntsh, $OCI8_DIR/lib, OCI8_SHARED_LIBADD) + ;; - 8.1) - OCI8_SHLIBS="-lclntsh $ORA_SYSLIB" - AC_DEFINE(HAVE_OCI8,1,[ ]) - ;; - *) - OCI8_SHLIBS= - ;; - esac - - # only using shared libs right now - OCI8_LIBS=$OCI8_SHLIBS - fi -],[AC_MSG_RESULT(no)]) + 8.1) + AC_ADD_LIBRARY_WITH_PATH(clntsh, $OCI8_DIR/lib, OCI8_SHARED_LIBADD) + ;; + *) + AC_MSG_ERROR(Unsupported Oracle version!) + ;; + esac -if test "$shared" = yes; then - OCI8_LIBS="$OCI8_LFLAGS $OCI8_LIBS" -else - EXTRA_LIBS="$EXTRA_LIBS $OCI8_LFLAGS $OCI8_LIBS" - INCLUDES="$INCLUDES $OCI8_INCLUDE" -fi + PHP_EXTENSION(oci8, $ext_shared) + AC_DEFINE(HAVE_OCI8,1,[ ]) -INCLUDES="$INCLUDES $OCI8_INCLUDE" + PHP_SUBST(OCI8_SHARED_LIBADD) + PHP_SUBST(OCI8_DIR) + PHP_SUBST(OCI8_VERSION) -PHP_SUBST(OCI8_HOME) -PHP_SUBST(OCI8_INCLUDE) -PHP_SUBST(OCI8_LFLAGS) -PHP_SUBST(OCI8_LIBS) + # i have no idea if the following will work! thies@digicol.de 20000508 + if test "$CC" = "gcc" -a "`uname -sv`" = "AIX 4"; then + if test "$ext_shared" = "yes"; then + OCI8_SHARED_LIBADD="$OCI8_SHARED_LIBADD -nostdlib /lib/crt0_r.o /usr/lib/libpthreads.a /usr/lib/libc_r.a -lgcc" + else + LIBS="$LIBS -nostdlib /lib/crt0_r.o /usr/lib/libpthreads.a /usr/lib/libc_r.a -lgcc" + fi + fi +fi diff --git a/ext/oci8/oci8.c b/ext/oci8/oci8.c index 0b6f4895d7..698d703b0f 100644 --- a/ext/oci8/oci8.c +++ b/ext/oci8/oci8.c @@ -491,9 +491,9 @@ PHP_MINFO_FUNCTION(oci) php_info_print_table_start(); php_info_print_table_row(2, "OCI8 Support", "enabled"); #ifndef PHP_WIN32 - php_info_print_table_row(2, "Oracle Version", PHP_ORACLE_VERSION ); - php_info_print_table_row(2, "Compile-time ORACLE_HOME", PHP_ORACLE_HOME ); - php_info_print_table_row(2, "Libraries Used", PHP_ORACLE_LIBS ); + php_info_print_table_row(2, "Oracle Version", PHP_OCI8_VERSION ); + php_info_print_table_row(2, "Compile-time ORACLE_HOME", PHP_OCI8_DIR ); + php_info_print_table_row(2, "Libraries Used", PHP_OCI8_SHARED_LIBADD ); #endif php_info_print_table_end(); |