Annotation of embedaddon/php/ext/pdo_oci/config.m4, revision 1.1.1.3
1.1.1.2 misho 1: dnl $Id$
1.1 misho 2: dnl config.m4 for extension pdo_oci
3: dnl vim:et:sw=2:ts=2:
4:
1.1.1.3 ! misho 5: SUPPORTED_LIB_VERS="9.0 10.1 11.1 12.1" # The lib vers are not bumped when the DB version is bumped
1.1 misho 6: AC_DEFUN([AC_PDO_OCI_VERSION],[
7: AC_MSG_CHECKING([Oracle version])
8: for OCI_VER in $SUPPORTED_LIB_VERS; do
9: if test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.$OCI_VER; then
10: PDO_OCI_VERSION="$OCI_VER"
11: fi
12: done
13: if test -z "$PDO_OCI_VERSION"; then
14: AC_MSG_ERROR([Oracle required OCI8 libraries not found under $PDO_OCI_DIR])
15: fi
16: AC_MSG_RESULT($PDO_OCI_VERSION)
17: ])
18:
19: AC_DEFUN([AC_PDO_OCI_CHECK_LIB_DIR],[
20: AC_CHECK_SIZEOF(long int, 4)
21: AC_MSG_CHECKING([if we're on a 64-bit platform])
22: if test "$ac_cv_sizeof_long_int" = "4" ; then
23: AC_MSG_RESULT([no])
24: TMP_PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib32"
25: else
26: AC_MSG_RESULT([yes])
27: TMP_PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib"
28: fi
29:
30: AC_MSG_CHECKING([OCI8 libraries dir])
31: if test -d "$PDO_OCI_DIR/lib" && test ! -d "$PDO_OCI_DIR/lib32"; then
32: PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib"
33: elif test ! -d "$PDO_OCI_DIR/lib" && test -d "$PDO_OCI_DIR/lib32"; then
34: PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib32"
35: elif test -d "$PDO_OCI_DIR/lib" && test -d "$PDO_OCI_DIR/lib32"; then
36: PDO_OCI_LIB_DIR=$TMP_PDO_OCI_LIB_DIR
37: else
38: AC_MSG_ERROR([Oracle required OCI8 libraries not found])
39: fi
40: AC_MSG_RESULT($PDO_OCI_LIB_DIR)
41: ])
42:
43: PHP_ARG_WITH(pdo-oci, Oracle OCI support for PDO,
44: [ --with-pdo-oci[=DIR] PDO: Oracle OCI support. DIR defaults to \$ORACLE_HOME.
45: Use --with-pdo-oci=instantclient,prefix,version
46: for an Oracle Instant Client SDK.
47: For example on Linux with 11.2 RPMs use:
48: --with-pdo-oci=instantclient,/usr,11.2
49: With 10.2 RPMs use:
50: --with-pdo-oci=instantclient,/usr,10.2.0.4])
51:
52: if test "$PHP_PDO_OCI" != "no"; then
53:
54: if test "$PHP_PDO" = "no" && test "$ext_shared" = "no"; then
55: AC_MSG_ERROR([PDO is not enabled! Add --enable-pdo to your configure line.])
56: fi
57:
58: AC_MSG_CHECKING([Oracle Install-Dir])
59: if test "$PHP_PDO_OCI" = "yes" || test -z "$PHP_PDO_OCI"; then
60: PDO_OCI_DIR=$ORACLE_HOME
61: else
62: PDO_OCI_DIR=$PHP_PDO_OCI
63: fi
64: AC_MSG_RESULT($PHP_PDO_OCI)
65:
66: AC_MSG_CHECKING([if that is sane])
67: if test -z "$PDO_OCI_DIR"; then
68: AC_MSG_ERROR([
69: You need to tell me where to find your Oracle Instant Client SDK, or set ORACLE_HOME.
70: ])
71: else
72: AC_MSG_RESULT([yes])
73: fi
74:
75: if test "instantclient" = "`echo $PDO_OCI_DIR | cut -d, -f1`" ; then
76: AC_CHECK_SIZEOF(long int, 4)
77: if test "$ac_cv_sizeof_long_int" = "4" ; then
78: PDO_OCI_CLIENT_DIR="client"
79: else
80: PDO_OCI_CLIENT_DIR="client64"
81: fi
82: PDO_OCI_IC_PREFIX="`echo $PDO_OCI_DIR | cut -d, -f2`"
83: PDO_OCI_IC_VERS="`echo $PDO_OCI_DIR | cut -d, -f3`"
84: if test -n "$PDO_OCI_IC_VERS"; then
85: PDO_OCI_IC_MAJ_VER="`echo $PDO_OCI_IC_VERS | cut -d. -f1`"
86: if test "$PDO_OCI_IC_MAJ_VER" -ge 11; then
87: # From 11.1.0.7 the RPM path only has an X.Y component
88: PDO_OCI_IC_VERS="`echo $PDO_OCI_IC_VERS | cut -d. -f1-2`"
89: fi
90: fi
91: AC_MSG_CHECKING([for oci.h])
92: if test -f $PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/oci.h ; then
93: PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR)
94: AC_MSG_RESULT($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR)
95: elif test -f $PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/include/oci.h ; then
96: PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/include)
97: AC_MSG_RESULT($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/include)
98: elif test -f $PDO_OCI_IC_PREFIX/sdk/include/oci.h ; then
99: PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/sdk/include)
100: AC_MSG_RESULT($PDO_OCI_IC_PREFIX/sdk/include)
101: elif test -f $PDO_OCI_IC_PREFIX/$PDO_OCI_CLIENT_DIR/include/oci.h ; then
102: PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/$PDO_OCI_CLIENT_DIR/include)
103: AC_MSG_RESULT($PDO_OCI_IC_PREFIX/$PDO_OCI_CLIENT_DIR/include)
104: else
105: AC_MSG_ERROR([I'm too dumb to figure out where the include dir is in your Instant Client install])
106: fi
107: if test -f "$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME" ; then
108: PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/lib"
109: elif test -f "$PDO_OCI_IC_PREFIX/$PDO_OCI_CLIENT_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME" ; then
110: PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/$PDO_OCI_CLIENT_DIR/lib"
111: elif test -f "$PDO_OCI_IC_PREFIX/libclntsh.$SHLIB_SUFFIX_NAME" ; then
112: PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX"
113: else
114: AC_MSG_ERROR([I'm too dumb to figure out where the libraries are in your Instant Client install])
115: fi
116: PDO_OCI_VERSION="`echo $PDO_OCI_IC_VERS | cut -d. -f1-2`"
117: else
118: AC_PDO_OCI_CHECK_LIB_DIR($PDO_OCI_DIR)
119:
120: if test -d "$PDO_OCI_DIR/rdbms/public"; then
121: PHP_ADD_INCLUDE($PDO_OCI_DIR/rdbms/public)
122: PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/rdbms/public"
123: fi
124: if test -d "$PDO_OCI_DIR/rdbms/demo"; then
125: PHP_ADD_INCLUDE($PDO_OCI_DIR/rdbms/demo)
126: PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/rdbms/demo"
127: fi
128: if test -d "$PDO_OCI_DIR/network/public"; then
129: PHP_ADD_INCLUDE($PDO_OCI_DIR/network/public)
130: PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/network/public"
131: fi
132: if test -d "$PDO_OCI_DIR/plsql/public"; then
133: PHP_ADD_INCLUDE($PDO_OCI_DIR/plsql/public)
134: PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/plsql/public"
135: fi
136: if test -d "$PDO_OCI_DIR/include"; then
137: PHP_ADD_INCLUDE($PDO_OCI_DIR/include)
138: PDO_OCI_INCLUDES="$PDO_OCI_INCLUDES -I$PDO_OCI_DIR/include"
139: fi
140:
141: if test -f "$PDO_OCI_LIB_DIR/sysliblist"; then
142: PHP_EVAL_LIBLINE(`cat $PDO_OCI_LIB_DIR/sysliblist`, PDO_OCI_SYSLIB)
143: elif test -f "$PDO_OCI_DIR/rdbms/lib/sysliblist"; then
144: PHP_EVAL_LIBLINE(`cat $PDO_OCI_DIR/rdbms/lib/sysliblist`, PDO_OCI_SYSLIB)
145: fi
146: AC_PDO_OCI_VERSION($PDO_OCI_DIR)
147: fi
148:
149: case $PDO_OCI_VERSION in
1.1.1.3 ! misho 150: 9.0|10.1|10.2|11.1|11.2|12.1)
1.1 misho 151: PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
152: ;;
153:
154: *)
155: AC_MSG_ERROR(Unsupported Oracle version $PDO_OCI_VERSION)
156: ;;
157: esac
158:
159: PHP_ADD_LIBPATH($PDO_OCI_LIB_DIR, PDO_OCI_SHARED_LIBADD)
160:
161: PHP_CHECK_LIBRARY(clntsh, OCIEnvCreate,
162: [
163: AC_DEFINE(HAVE_OCIENVCREATE,1,[ ])
164: ], [], [
165: -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD
166: ])
167:
168: PHP_CHECK_LIBRARY(clntsh, OCIEnvNlsCreate,
169: [
170: AC_DEFINE(HAVE_OCIENVNLSCREATE,1,[ ])
171: ], [], [
172: -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD
173: ])
174:
175: dnl
176: dnl Check if we need to add -locijdbc8
177: dnl
178: PHP_CHECK_LIBRARY(clntsh, OCILobIsTemporary,
179: [
180: AC_DEFINE(HAVE_OCILOBISTEMPORARY,1,[ ])
181: ], [
182: PHP_CHECK_LIBRARY(ocijdbc8, OCILobIsTemporary,
183: [
184: PHP_ADD_LIBRARY(ocijdbc8, 1, PDO_OCI_SHARED_LIBADD)
185: AC_DEFINE(HAVE_OCILOBISTEMPORARY,1,[ ])
186: ], [], [
187: -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD
188: ])
189: ], [
190: -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD
191: ])
192:
193: dnl
194: dnl Check if we have collections
195: dnl
196: PHP_CHECK_LIBRARY(clntsh, OCICollAssign,
197: [
198: AC_DEFINE(HAVE_OCICOLLASSIGN,1,[ ])
199: ], [], [
200: -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD
201: ])
202:
203: dnl Scrollable cursors?
204: PHP_CHECK_LIBRARY(clntsh, OCIStmtFetch2,
205: [
206: AC_DEFINE(HAVE_OCISTMTFETCH2,1,[ ])
207: ], [], [
208: -L$PDO_OCI_LIB_DIR $PDO_OCI_SHARED_LIBADD
209: ])
210:
211: ifdef([PHP_CHECK_PDO_INCLUDES],
212: [
213: PHP_CHECK_PDO_INCLUDES
214: ],[
215: AC_MSG_CHECKING([for PDO includes])
216: if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
1.1.1.2 misho 217: pdo_cv_inc_path=$abs_srcdir/ext
1.1 misho 218: elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
1.1.1.2 misho 219: pdo_cv_inc_path=$abs_srcdir/ext
1.1 misho 220: elif test -f $prefix/include/php/ext/pdo/php_pdo_driver.h; then
1.1.1.2 misho 221: pdo_cv_inc_path=$prefix/include/php/ext
1.1 misho 222: else
223: AC_MSG_ERROR([Cannot find php_pdo_driver.h.])
224: fi
1.1.1.2 misho 225: AC_MSG_RESULT($pdo_cv_inc_path)
1.1 misho 226: ])
227:
1.1.1.2 misho 228: PHP_NEW_EXTENSION(pdo_oci, pdo_oci.c oci_driver.c oci_statement.c, $ext_shared,,-I$pdo_cv_inc_path)
1.1 misho 229:
230: PHP_SUBST_OLD(PDO_OCI_SHARED_LIBADD)
231: PHP_SUBST_OLD(PDO_OCI_DIR)
232: PHP_SUBST_OLD(PDO_OCI_VERSION)
233:
234: ifdef([PHP_ADD_EXTENSION_DEP],
235: [
236: PHP_ADD_EXTENSION_DEP(pdo_oci, pdo)
237: ])
238:
239: AC_DEFINE_UNQUOTED(PHP_PDO_OCI_CLIENT_VERSION, "$PDO_OCI_VERSION", [ ])
240: fi
241:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>