cvs: php4 /ext/oracle/
| From: | Thies C. Arntzen | 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();
}