diff options
author | Thies C. Arntzen <thies@php.net> | 2000-05-08 10:10:00 +0000 |
---|---|---|
committer | Thies C. Arntzen <thies@php.net> | 2000-05-08 10:10:00 +0000 |
commit | cd721534551adb45f2c9e7eb2db3014dc3937686 (patch) | |
tree | 5ec2b1f2d4978de449bbc005a1e617cd28cd7061 /ext/oracle/config.m4 | |
parent | 36c1a9a39d429c333861f1752d16e9a0066e3cbe (diff) | |
download | php-git-cd721534551adb45f2c9e7eb2db3014dc3937686.tar.gz |
config.m4 redone - now supports building oracle extension as shared module
# i really hope i didn't break linking agains ancient oracle-versions!
Diffstat (limited to 'ext/oracle/config.m4')
-rw-r--r-- | ext/oracle/config.m4 | 292 |
1 files changed, 144 insertions, 148 deletions
diff --git a/ext/oracle/config.m4 b/ext/oracle/config.m4 index 404e0c7720..866db62d71 100644 --- a/ext/oracle/config.m4 +++ b/ext/oracle/config.m4 @@ -2,169 +2,165 @@ dnl $Id$ 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) + ;; - 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 + 8.1) + AC_ADD_LIBRARY_WITH_PATH(clntsh, $ORACLE_DIR/lib, ORACLE_SHARED_LIBADD) + ;; + *) + AC_MSG_ERROR(Unsupported Oracle version!) + ;; + esac - # 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" - 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 + PHP_EXTENSION(oracle, $ext_shared) + AC_DEFINE(HAVE_ORACLE,1,[ ]) - AC_DEFINE(HAVE_ORACLE,1,[ ]) + 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 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 |