Opened 19 years ago
Closed 18 years ago
#1470 closed enhancement (fixed)
Request support for Oracle Instant Client
Reported by: | Owned by: | dmorissette | |
---|---|---|---|
Priority: | high | Milestone: | |
Component: | Build Problems | Version: | unspecified |
Severity: | minor | Keywords: | |
Cc: | fsimon@… |
Description
Another enhancement request: I'd like to have proper build support for Oracle Instant Client. By default, Instant Client libraries are installed in: /usr/lib/oracle/<version>/client and header files are located in: /usr/lib/oracle/<version>/client/sdk/include. I run configure with the following parameter: ./configure --with-oraclespatial=/usr/lib/oracle/10g/client The makefile then contains: ORACLESPATIAL_LIB=-L/usr/lib/oracle/10g/client/sdk/include/lib -lclntsh ORACLESPATIAL_INC=-I/usr/lib/oracle/10g/client/sdk/include/rdbms/demo -I/usr/lib/oracle/10g/client/sdk/include/rdbms/public Which should be: ORACLESPATIAL_LIB=-L/usr/lib/oracle/10g/client -lclntsh ORACLESPATIAL_INC=-I/usr/lib/oracle/10g/client/sdk/include Similar changes are needed for mapscript/php3/Makefile If I manually change the makefile(s), everything works, but obviously I'd prefer not to do that. Berend
Change History (6)
comment:2 by , 19 years ago
Instant Client can freely be downloaded here (35MB): http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html One thing: libclntsh.so is *not* included, it is a symlink to libclntsh.so.10.1 which I created myself, since most application look for libclntsh.so anyway. Here's a complete file listing for Instant Client 10g: The directory /usr/lib/oracle/<version>/client contains the files: classes12.jar libclntsh.so.10.1 libnnz10.so libocci.so.10.1 libociei.so libocijdbc10.so ojdbc14.jar Or under Windows: oraociei10.dll oci.dll ocijdbc10.dll ociw32.dll ojdbc14.jar orannzsbb10.dll oraocci10.dll classes12.jar /usr/lib/oracle/<version>/client/sdk/include contains the files: nzerror.h nzt.h occiAQ.h occiCommon.h occiControl.h occiData.h occi.h occiObjects.h oci1.h oci8dp.h ociap.h ociapr.h ocidef.h ocidem.h ocidfn.h ociextp.h oci.h ocikpr.h ocixmldb.h odci.h oratypes.h orid.h ori.h orl.h oro.h ort.h xa.h
comment:3 by , 18 years ago
Cc: | added |
---|---|
Status: | new → assigned |
ORACLESPATIAL_INC used to contain "-I$ORA_HOME/rdbms/demo" which is a directory in the "full sdk" distribution, but I do not know which file we need from that directory, and checking with Howard he doesn't see any required file in his copy of the 10i distribution. Does anyone know why we need the rdbms/demo directory in the include path? Which file do we need and should the configure script look for in that directory? Anyway, for now to avoid breaking things I left the "-I$ORA_HOME/rdbms/demo" in the include path in all cases, it won't hurt even if the directory does not exist or is unused, but it would be nice to get rid of this dir in the include path if it's not needed. I have applied the patch in CVS HEAD and tested against instantclient-basic-linux32-10.2.0.1 and the build passes. Howard, can you please test the latest configure script against the regular set of libs that you have, and if everything still passes then I will backport to 4.8.2
comment:4 by , 18 years ago
Howard reported that his RPM-based install has oci.h in /usr/include/oracle/10g/client and libclntsh in /usr/include/oracle/10g/client. Added the following ugly hack to support that case. Note that this may break if multiple versions of Oracle Instant Client are installed in this manner on the same machine: @@ -1352,6 +1352,7 @@ dnl Try to locate lib directory test -f $ORA_HOME/lib/libclntsh.so && ORA_LIBDIR="$ORA_HOME/lib" test -f $ORA_HOME/libclntsh.so && ORA_LIBDIR="$ORA_HOME" + test -f $ORA_HOME/lib/oracle/10*/client/lib/libclntsh.so && ORA_LIBDIR=`dirname $ORA_HOME/lib/oracle/10*/client/lib/libclntsh.so` if test -z "$ORA_LIBDIR" ; then AC_MSG_ERROR([Oracle Spatial: libclntsh.so not found.]) @@ -1360,6 +1361,7 @@ dnl Try to locate include directory test -f $ORA_HOME/sdk/include/oci.h && ORA_INCDIR="$ORA_HOME/sdk/include" test -f $ORA_HOME/rdbms/public/oci.h && ORA_INCDIR="$ORA_HOME/rdbms/public" + test -f $ORA_HOME/include/oracle/10*/client/oci.h && ORA_INCDIR=`dirname $ORA_HOME/include/oracle/10*/client/oci.h` if test -z "$ORA_INCDIR" ; then AC_MSG_ERROR([Oracle Spatial: oci.h not found.])
comment:6 by , 18 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed. Committed to both 4.9 and 4.8.2 in CVS.
Note:
See TracTickets
for help on using tickets.