cvs: php4 /ext/oracle/

From: Date: Mon, 08 May 2000 10:09:58 +0000
Subject: cvs: php4 /ext/oracle/
Groups: php.version4 
Request: Send a blank email to php-version4+get-14668@lists.php.net to get a copy of this message
thies Mon May 8 03:09:58 2000 EDT Modified files: /php4/ext/oracle Makefile.in config.m4 oracle.c Log: config.m4 redone - now supports building oracle extension as shared module # i really hope i didn't break linking agains ancient oracle-versions! Index: php4/ext/oracle/Makefile.in diff -u php4/ext/oracle/Makefile.in:1.6 php4/ext/oracle/Makefile.in:1.7 --- php4/ext/oracle/Makefile.in:1.6 Mon May 1 15:38:30 2000 +++ php4/ext/oracle/Makefile.in Mon May 8 03:09:58 2000 @@ -1,5 +1,6 @@ - -LTLIBRARY_NAME = liboracle.la -LTLIBRARY_SOURCES = oracle.c +LTLIBRARY_NAME = liboracle.la +LTLIBRARY_SOURCES = oracle.c +LTLIBRARY_SHARED_NAME = oracle.la +LTLIBRARY_SHARED_LIBADD = $(ORACLE_SHARED_LIBADD) include $(top_srcdir)/build/dynlib.mk Index: php4/ext/oracle/config.m4 diff -u php4/ext/oracle/config.m4:1.8 php4/ext/oracle/config.m4:1.9 --- php4/ext/oracle/config.m4:1.8 Thu Dec 30 04:27:09 1999 +++ php4/ext/oracle/config.m4 Mon May 8 03:09:58 2000 @@ -1,170 +1,166 @@ -dnl $Id: config.m4,v 1.8 1999/12/30 12:27:09 thies Exp $ +dnl $Id: config.m4,v 1.9 2000/05/08 10:09:58 thies Exp $ AC_DEFUN(AC_ORACLE_VERSION,[ AC_MSG_CHECKING([Oracle version]) - if test -f "$ORACLEINST_TOP/orainst/unix.rgs" - then - ORACLE_VERSION=grep '"ocommon"' $ORACLEINST_TOP/orainst/unix.rgs | sed 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4 - test -z "$ORACLE_VERSION" && ORACLE_VERSION=7.3 + if test -f "$ORACLE_DIR/orainst/unix.rgs"; then + ORACLE_VERSION=grep '"ocommon"' $ORACLE_DIR/orainst/unix.rgs | sed 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4 + test -z "$ORACLE_VERSION" && ORACLE_VERSION=7.3 + elif test -f "$ORACLE_DIR/lib/libclntsh.so.8.0"; then + ORACLE_VERSION=8.1 + elif test -f "$ORACLE_DIR/lib/libclntsh.so.1.0"; then + ORACLE_VERSION=8.0 + elif test -f "$ORACLE_DIR/lib/libclntsh.a"; then # AIX - XXX is this check still right for 8.1? + ORACLE_VERSION=8.0 else - if test -f "$ORACLEINST_TOP/lib/libclntsh.so.8.0" - then - ORACLE_VERSION=8.1 - else - ORACLE_VERSION=8.0 - fi + AC_MSG_ERROR(Oracle needed libraries not found) fi AC_MSG_RESULT($ORACLE_VERSION) ]) -AC_MSG_CHECKING(for Oracle support) -AC_ARG_WITH(oracle, -[ --with-oracle[=DIR] Include Oracle database support. DIR is Oracle's - home directory, defaults to \$ORACLE_HOME.], -[ - case "$withval" in - yes) - ORACLEINST_TOP=$ORACLE_HOME - AC_MSG_RESULT(yes) - PHP_EXTENSION(oracle) - ;; - no) - ORACLEINST_TOP= - AC_MSG_RESULT(no) - ;; - *) - ORACLEINST_TOP=$withval - AC_MSG_RESULT(yes) - PHP_EXTENSION(oracle) - ;; - esac +PHP_ARG_WITH(oracle, for Oracle-ORACLE support, +[ --with-oracle[=DIR] Include oracle support. DIR is the ORACLE_HOME.]) - if test "$ORACLEINST_TOP" != "" - then +if test "$PHP_ORACLE" != "no"; then + AC_MSG_CHECKING([Oracle Install-Dir]) + if test "$PHP_ORACLE" = "yes"; then + ORACLE_DIR="$ORACLE_HOME" + else + ORACLE_DIR="$PHP_ORACLE" + fi + AC_MSG_RESULT($ORACLE_DIR) - # Oracle include files + if test -d "$ORACLE_DIR/rdbms/public"; then + AC_ADD_INCLUDE($ORACLE_DIR/rdbms/public) + fi + if test -d "$ORACLE_DIR/rdbms/demo"; then + AC_ADD_INCLUDE($ORACLE_DIR/rdbms/demo) + fi + if test -d "$ORACLE_DIR/network/public"; then + AC_ADD_INCLUDE($ORACLE_DIR/network/public) + fi + if test -d "$ORACLE_DIR/plsql/public"; then + AC_ADD_INCLUDE($ORACLE_DIR/plsql/public) + fi - if test -f "$ORACLEINST_TOP/rdbms/public/ocidfn.h" - then - # V8.0.5 - ORACLE_INCLUDE="$ORACLE_INCLUDE -I$ORACLEINST_TOP/rdbms/public" - elif test -f "$ORACLEINST_TOP/rdbms/demo/ocidfn.h" - then - # V7.[0123] - ORACLE_INCLUDE=-I$ORACLEINST_TOP/rdbms/demo - fi + if test -f "$ORACLE_DIR/lib/sysliblist"; then + ORACLE_SYSLIB="cat $ORACLE_DIR/lib/sysliblist | sed -e 's/-l//g'" + elif test -f "$ORACLE_DIR/rdbms/lib/sysliblist"; then + ORACLE_SYSLIB="cat $ORACLE_DIR/rdbms/lib/sysliblist | sed -e 's/-l//g'" + fi - if test -d "$ORACLEINST_TOP/network/public" - then - # V8 - ORACLE_INCLUDE="$ORACLE_INCLUDE -I$ORACLEINST_TOP/network/public" - fi + if test -n "$ORACLE_SYSLIB"; then + for oracle_slib in echo $ORACLE_SYSLIB; do + AC_ADD_LIBRARY_WITH_PATH($oracle_slib, "", ORACLE_SHARED_LIBADD) + done + fi - if test -d "$ORACLEINST_TOP/plsql/public" - then - # V8 - ORACLE_INCLUDE="$ORACLE_INCLUDE -I$ORACLEINST_TOP/plsql/public" - fi + AC_ORACLE_VERSION($ORACLE_DIR) + case $ORACLE_VERSION in + 7.0|7.1) + if test -f $ORACLE_DIR/lib/liboracle.s?; then + AC_ADD_LIBRARY_WITH_PATH(oracle, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + else + AC_ADD_LIBRARY_WITH_PATH(core, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(cv6, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(nlsrtl, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(core, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(cv6, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(nlsrtl, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(sqlnet, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(ora, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(sqlnet, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + if test "$ext_shared" = "yes"; then + ORACLE_SHARED_LIBADD="$ORACLE_DIR/lib/osntab.o $ORACLE_SHARED_LIBADD"; + else + LIBS="$ORACLE_DIR/lib/osntab.o $LIBS"; + fi + AC_ADD_LIBRARY_WITH_PATH(ocic, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + if test "uname -s 2>/dev/null" = "AIX"; then + if test "$ext_shared" = "yes"; then + ORACLE_SHARED_LIBADD="$ORACLE_SHARED_LIBADD -bI:$ORACLE_DIR/lib/mili.exp" + else + LIBS="$LIBS -bI:$ORACLE_DIR/lib/mili.exp" + fi + fi + fi + ;; - # Need to know the version, otherwhise we will mixup nlsrtl - AC_ORACLE_VERSION($ORACLEINST_TOP) + 7.2) + if test -f $ORACLE_DIR/lib/libclntsh.s?; then + AC_ADD_LIBRARY_WITH_PATH(clntsh, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + else + AC_ADD_LIBRARY_WITH_PATH(core3, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(nlsrtl3, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(c3v6, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(nlsrtl3, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(ora, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(sqlnet, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(ora, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(sqlnet, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + if test "$ext_shared" = "yes"; then + ORACLE_SHARED_LIBADD="$ORACLE_DIR/lib/osntab.o $ORACLE_SHARED_LIBADD"; + else + LIBS="$ORACLE_DIR/lib/osntab.o $LIBS"; + fi + AC_ADD_LIBRARY_WITH_PATH(ocic, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + fi + ;; - # Oracle libs - nightmare :-) + 7.3) + if test -f $ORACLE_DIR/lib/libclntsh.s?; then + AC_ADD_LIBRARY_WITH_PATH(clntsh, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + else + AC_ADD_LIBRARY_WITH_PATH(core3, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(nlsrtl3, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(core3, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(c3v6, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(nlsrtl3, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(epc, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(generic, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(common, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(client, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(sqlnet, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(ncr, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(sqlnet, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(generic, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(common, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(client, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(sqlnet, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(ncr, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(sqlnet, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(client, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + fi + ;; + + 8.0) + AC_ADD_LIBRARY_WITH_PATH(nlsrtl3, "", ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(core4, "", ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(psa, "", ORACLE_SHARED_LIBADD) + AC_ADD_LIBRARY_WITH_PATH(clntsh, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + ;; + + 8.1) + AC_ADD_LIBRARY_WITH_PATH(clntsh, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + ;; + *) + AC_MSG_ERROR(Unsupported Oracle version!) + ;; + esac - ORACLE_LIBDIR=lib - ORACLE_LFLAGS="-L$ORACLEINST_TOP/$ORACLE_LIBDIR ${ld_runpath_switch}$ORACLEINST_TOP/$ORACLE_LIBDIR" - if test -f "$ORACLEINST_TOP/rdbms/lib/sysliblist" - then - ORA_SYSLIB="cat $ORACLEINST_TOP/rdbms/lib/sysliblist" - else - ORA_SYSLIB="-lm" - fi + PHP_EXTENSION(oracle, $ext_shared) + AC_DEFINE(HAVE_ORACLE,1,[ ]) - # Oracle Static libs - case $ORACLE_VERSION in - 7.0|7.1) - ORACLE_STLIBS="-locic $ORACLEINST_TOP/$ORACLE_LIBDIR/osntab.o \ - -lsqlnet -lora -lsqlnet -lnlsrtl -lcv6 -lcore -lnlsrtl -lcv6 \ - -lcore $ORA_SYSLIB -lcore $ORA_SYSLIB" - if test "uname -s 2>/dev/null" = "AIX"; then - ORACLE_STLIBS="$ORACLE_STLIBS -bI:$ORACLE_HOME/lib/mili.exp" + PHP_SUBST(ORACLE_SHARED_LIBADD) + PHP_SUBST(ORACLE_DIR) + PHP_SUBST(ORACLE_VERSION) + + # 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 + ORACLE_SHARED_LIBADD="$ORACLE_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 - ;; - 7.2) - ORACLE_STLIBS="-locic $ORACLEINST_TOP/$ORACLE_LIBDIR/osntab.o \ - -lsqlnet -lora -lsqlnet -lora -lnlsrtl3 -lc3v6 -lcore3 -lnlsrtl3 \ - -lcore3 $ORA_SYSLIB -lcore3 $ORA_SYSLIB" - ;; - 7.3) - ORACLE_STLIBS="-lclient -lsqlnet -lncr -lsqlnet -lclient -lcommon \ - -lgeneric -lsqlnet -lncr -lsqlnet -lclient -lcommon -lgeneric \ - -lepc -lnlsrtl3 -lc3v6 -lcore3 -lnlsrtl3 -lcore3 -lnlsrtl3 \ - $ORA_SYSLIB -lcore3 $ORA_SYSLIB" - ;; - 8.0) - ORACLE_STLIBS="-lclient -lsqlnet -lncr -lsqlnet -lclient -lcommon \ - -lgeneric -lsqlnet -lncr -lsqlnet -lclient -lcommon -lgeneric \ - -lepc -lnlsrtl3 -lc3v6 -lcore4 -lnlsrtl3 -lcore4 -lnlsrtl3 \ - $ORA_SYSLIB -lcore3 $ORA_SYSLIB" - ;; - *) - ORACLE_STLIBS= - ;; - esac - - # Oracle shared libs - case $ORACLE_VERSION in - 7.0) - # shared libs not supported - ORACLE_SHLIBS="$ORACLE_STLIBS" - ;; - 7.1) - if test -f $ORACLEINST_TOP/$ORACLE_LIBDIR/liboracle.s? - then - ORACLE_SHLIBS="-loracle $ORA_SYSLIB" - else - ORACLE_SHLIBS="$ORACLE_STLIBS" - fi - ;; - 7.2|7.3) - if test -f $ORACLEINST_TOP/$ORACLE_LIBDIR/libclntsh.s? - then - ORACLE_SHLIBS="-lclntsh $ORA_SYSLIB" - else - ORACLE_SHLIBS="$ORACLE_STLIBS" - fi - ;; - 8.0) - if test -f $ORACLEINST_TOP/$ORACLE_LIBDIR/libclntsh.s? -o \ - -f $ORACLEINST_TOP/$ORACLE_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 - ORACLE_SHLIBS="-lclntsh -lpsa -lcore4 -lnlsrtl3 -lclntsh $ORA_SYSLIB" - else - ORACLE_SHLIBS="$ORACLE_STLIBS" - fi - ;; - 8.1) - ORACLE_SHLIBS="-lclntsh $ORA_SYSLIB" - ;; - *) - ORACLE_SHLIBS= - ;; - esac - - # only using shared libs right now - ORACLE_LIBS=$ORACLE_SHLIBS - - AC_DEFINE(HAVE_ORACLE,1,[ ]) - fi -],[AC_MSG_RESULT(no)]) -#EXTRA_LIBS="$EXTRA_LIBS $ORACLE_SHLIBS $ORACLE_STLIBS $ORACLE_LIBS $ORACLE_LFLAGS" -EXTRA_LIBS="$EXTRA_LIBS $ORACLE_LFLAGS $ORACLE_LIBS" -INCLUDES="$INCLUDES $ORACLE_INCLUDE" -PHP_SUBST(ORACLE_HOME) -PHP_SUBST(ORACLE_VERSION) +fi Index: php4/ext/oracle/oracle.c diff -u php4/ext/oracle/oracle.c:1.45 php4/ext/oracle/oracle.c:1.46 --- php4/ext/oracle/oracle.c:1.45 Mon May 1 17:44:25 2000 +++ php4/ext/oracle/oracle.c Mon May 8 03:09:58 2000 @@ -1512,11 +1512,10 @@ php_info_print_table_start(); php_info_print_table_row(2, "Oracle 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_ORACLE_VERSION ); + php_info_print_table_row(2, "Compile-time ORACLE_HOME", PHP_ORACLE_DIR ); + php_info_print_table_row(2, "Libraries Used", PHP_ORACLE_SHARED_LIBADD ); #endif php_info_print_table_end(); }

« previous php.version4 (#14668) next »