config.m4 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. dnl
  2. dnl $Id$
  3. dnl
  4. if test -z "$SED"; then
  5. PHP_OCI8_SED="sed";
  6. else
  7. PHP_OCI8_SED="$SED";
  8. fi
  9. PHP_OCI8_TAIL1=`echo a | tail -n1 2>/dev/null`
  10. if test "$PHP_OCI8_TAIL1" = "a"; then
  11. PHP_OCI8_TAIL1="tail -n1"
  12. else
  13. PHP_OCI8_TAIL1="tail -1"
  14. fi
  15. AC_DEFUN([AC_OCI8_CHECK_LIB_DIR],[
  16. AC_MSG_CHECKING([ORACLE_HOME library validity])
  17. if test ! -d "$OCI8_DIR"; then
  18. AC_MSG_ERROR([${OCI8_DIR} is not a directory])
  19. fi
  20. if test -d "$OCI8_DIR/lib" && test ! -d "$OCI8_DIR/lib32"; then
  21. OCI8_LIB_DIR=lib
  22. elif test ! -d "$OCI8_DIR/lib" && test -d "$OCI8_DIR/lib32"; then
  23. OCI8_LIB_DIR=lib32
  24. elif test -d "$OCI8_DIR/lib" && test -d "$OCI8_DIR/lib32"; then
  25. OCI8_LIB_DIR=$PHP_OCI8_OH_LIBDIR
  26. else
  27. dnl This isn't an ORACLE_HOME. Try heuristic examination of the dir to help the user
  28. if test -f "$OCI8_DIR/libociei.$SHLIB_SUFFIX_NAME"; then
  29. AC_MSG_ERROR([Expected an ORACLE_HOME top level directory but ${OCI8_DIR} appears to be an Instant Client directory. Try --with-oci8=instantclient,${OCI8_DIR}])
  30. else
  31. AC_MSG_ERROR([Oracle library directory not found in ${OCI8_DIR}])
  32. fi
  33. fi
  34. AC_MSG_RESULT($OCI8_LIB_DIR)
  35. ])
  36. AC_DEFUN([AC_OCI8IC_VERSION],[
  37. AC_MSG_CHECKING([Oracle Instant Client library version compatibility])
  38. OCI8_LCS_BASE=$PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME
  39. OCI8_LCS=`ls $OCI8_LCS_BASE.*.1 2> /dev/null | $PHP_OCI8_TAIL1` # Oracle 10g, 11g etc
  40. OCI8_NNZ=`ls $PHP_OCI8_INSTANT_CLIENT/libnnz*.$SHLIB_SUFFIX_NAME 2> /dev/null | $PHP_OCI8_TAIL1`
  41. if test -f "$OCI8_NNZ" && test -f "$OCI8_LCS"; then
  42. if test ! -f "$OCI8_LCS_BASE"; then
  43. AC_MSG_ERROR([Link from $OCI8_LCS_BASE to $OCI8_LCS_BASE.*.1 not found])
  44. fi
  45. OCI8_ORACLE_VERSION=`echo $OCI8_LCS | $PHP_OCI8_SED -e 's/.*\.\(.*\)\.1$/\1.1/'`
  46. else
  47. AC_MSG_ERROR([Oracle Instant Client libraries libnnz.$SHLIB_SUFFIX_NAME and libclntsh.$SHLIB_SUFFIX_NAME not found])
  48. fi
  49. AC_MSG_RESULT([$OCI8_ORACLE_VERSION])
  50. ])
  51. AC_DEFUN([AC_OCI8_ORACLE_VERSION],[
  52. AC_MSG_CHECKING([Oracle library version compatibility])
  53. OCI8_LCS_BASE=$OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME
  54. OCI8_LCS=`ls $OCI8_LCS_BASE.*.1 2> /dev/null | $PHP_OCI8_TAIL1` # Oracle 10g, 11g etc
  55. if test -s "$OCI8_DIR/orainst/unix.rgs"; then
  56. OCI8_ORACLE_VERSION=`grep '"ocommon"' $OCI8_DIR/orainst/unix.rgs | $PHP_OCI8_SED 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4`
  57. test -z "$OCI8_ORACLE_VERSION" && OCI8_ORACLE_VERSION=7.3
  58. elif test -f "$OCI8_LCS"; then
  59. dnl Oracle 10g, 11g etc. The x.2 version libraries are named x.1 for drop in compatibility
  60. OCI8_ORACLE_VERSION=`echo $OCI8_LCS | $PHP_OCI8_SED -e 's/.*\.\(.*\)\.1$/\1.1/'`
  61. elif test -f $OCI8_LCS_BASE.9.0; then
  62. dnl There is no case for Oracle 9.2. Oracle 9.2 libraries have a 9.0 suffix for drop-in compatibility with Oracle 9.0
  63. OCI8_ORACLE_VERSION=9.0
  64. elif test -f $OCI8_LCS_BASE.8.0; then
  65. OCI8_ORACLE_VERSION=8.1
  66. elif test -f $OCI8_LCS_BASE.1.0; then
  67. OCI8_ORACLE_VERSION=8.0
  68. elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.a; then
  69. if test -f $OCI8_DIR/$OCI8_LIB_DIR/libcore4.a; then
  70. OCI8_ORACLE_VERSION=8.0
  71. else
  72. OCI8_ORACLE_VERSION=8.1
  73. fi
  74. else
  75. AC_MSG_ERROR(Oracle libclntsh.$SHLIB_SUFFIX_NAME client library not found)
  76. fi
  77. AC_MSG_RESULT($OCI8_ORACLE_VERSION)
  78. ])
  79. dnl
  80. dnl OCI8_INIT_DTRACE(providerdesc, header-file, sources)
  81. dnl This mimics PHP_INIT_DTRACE from PHP 5.4's acinclude.m4. It is
  82. dnl necessarily different from PHP_INIT_DTRACE which doesn't currently
  83. dnl support DTrace for extensions. Creating OCI8_INIT_DTRACE
  84. dnl independently instead of using a refactored PHP_INIT_DTRACE allows
  85. dnl OCI8 to be DTraced on versions of PHP where core PHP DTrace support
  86. dnl isn't available.
  87. dnl
  88. AC_DEFUN([OCI8_INIT_DTRACE],[
  89. ac_srcdir=[]PHP_EXT_SRCDIR([oci8])/
  90. ac_bdir=[]PHP_EXT_BUILDDIR([oci8])/
  91. dnl providerdesc
  92. ac_provsrc=$1
  93. dnl header-file
  94. ac_hdrobj=$2
  95. dnl DTrace objects
  96. old_IFS=[$]IFS
  97. for ac_src in $3; do
  98. IFS=.
  99. set $ac_src
  100. ac_obj=[$]1
  101. IFS=$old_IFS
  102. OCI8_DTRACE_OBJS="[$]OCI8_DTRACE_OBJS [$]ac_bdir[$]ac_obj.lo"
  103. done;
  104. for ac_lo in $OCI8_DTRACE_OBJS; do
  105. dtrace_oci8_objs="[$]dtrace_oci8_objs `echo $ac_lo | $SED -e 's,\.lo$,.o,' -e 's#\(.*\)\/#\1\/.libs\/#'`"
  106. done;
  107. dnl Generate Makefile.objects entry
  108. dnl The empty $ac_provsrc command stops an implicit circular dependency
  109. dnl in GNU Make which causes the .d file to be overwritten (Bug 61268)
  110. cat>>Makefile.objects<<EOF
  111. PHP_EXT_SRCDIR([oci8])/$ac_provsrc:;
  112. $ac_bdir[$]ac_hdrobj: $ac_srcdir[$]ac_provsrc
  113. CFLAGS="\$(CFLAGS_CLEAN)" dtrace -h -C -s $ac_srcdir[$]ac_provsrc -o \$[]@.bak && \$(SED) -e 's,PHPOCI_,DTRACE_,g' \$[]@.bak > \$[]@
  114. \$(OCI8_DTRACE_OBJS): $ac_bdir[$]ac_hdrobj
  115. EOF
  116. case $host_alias in
  117. *solaris*|*linux*)
  118. dtrace_prov_name="`echo $ac_provsrc | $SED -e 's#\(.*\)\/##'`.o"
  119. dtrace_lib_dir="`echo $ac_bdir[$]ac_provsrc | $SED -e 's#\(.*\)/[^/]*#\1#'`/.libs"
  120. dtrace_d_obj="`echo $ac_bdir[$]ac_provsrc | $SED -e 's#\(.*\)/\([^/]*\)#\1/.libs/\2#'`.o"
  121. dtrace_nolib_objs='$(OCI8_DTRACE_OBJS:.lo=.o)'
  122. for ac_lo in $OCI8_DTRACE_OBJS; do
  123. dtrace_oci8_lib_objs="[$]dtrace_oci8_lib_objs `echo $ac_lo | $SED -e 's,\.lo$,.o,' -e 's#\(.*\)\/#\1\/.libs\/#'`"
  124. done;
  125. dnl Always attempt to create both PIC and non-PIC DTrace objects (Bug 63692)
  126. cat>>Makefile.objects<<EOF
  127. $ac_bdir[$]ac_provsrc.lo: \$(OCI8_DTRACE_OBJS)
  128. echo "[#] Generated by Makefile for libtool" > \$[]@
  129. @test -d "$dtrace_lib_dir" || mkdir $dtrace_lib_dir
  130. if CFLAGS="\$(CFLAGS_CLEAN)" dtrace -G -o $dtrace_d_obj -s $ac_srcdir[$]ac_provsrc $dtrace_oci8_lib_objs 2> /dev/null && test -f "$dtrace_d_obj"; then [\\]
  131. echo "pic_object=['].libs/$dtrace_prov_name[']" >> \$[]@ [;\\]
  132. else [\\]
  133. echo "pic_object='none'" >> \$[]@ [;\\]
  134. fi
  135. if CFLAGS="\$(CFLAGS_CLEAN)" dtrace -G -o $ac_bdir[$]ac_provsrc.o -s $ac_srcdir[$]ac_provsrc $dtrace_nolib_objs 2> /dev/null && test -f "$ac_bdir[$]ac_provsrc.o"; then [\\]
  136. echo "non_pic_object=[']$dtrace_prov_name[']" >> \$[]@ [;\\]
  137. else [\\]
  138. echo "non_pic_object='none'" >> \$[]@ [;\\]
  139. fi
  140. EOF
  141. ;;
  142. *)
  143. AC_MSG_WARN([OCI8 extension: OCI8 DTrace support is not confirmed on this platform])
  144. cat>>Makefile.objects<<EOF
  145. $ac_bdir[$]ac_provsrc.o: \$(OCI8_DTRACE_OBJS)
  146. CFLAGS="\$(CFLAGS_CLEAN)" dtrace -G -o \$[]@ -s $ac_srcdir[$]ac_provsrc $dtrace_oci8_objs
  147. EOF
  148. ;;
  149. esac
  150. ])
  151. dnl --with-oci8=shared,instantclient,/path/to/client/dir/lib
  152. dnl or
  153. dnl --with-oci8=shared,/path/to/oracle/home
  154. PHP_ARG_WITH(oci8, for Oracle Database OCI8 support,
  155. [ --with-oci8[=DIR] Include Oracle Database OCI8 support. DIR defaults to [$]ORACLE_HOME.
  156. Use --with-oci8=instantclient,/path/to/instant/client/lib
  157. to use an Oracle Instant Client installation])
  158. if test "$PHP_OCI8" != "no"; then
  159. if test -z "$PHP_OCI8"; then
  160. dnl --with-oci8=$ORACLE_HOME where ORACLE_HOME isn't set (or is mistyped) will match this case
  161. AC_MSG_ERROR([Empty parameter value passed to --with-oci8])
  162. fi
  163. dnl Check PHP version is compatible with this extension
  164. AC_MSG_CHECKING([PHP version])
  165. tmp_version=$PHP_VERSION
  166. if test -z "$tmp_version"; then
  167. if test -z "$PHP_CONFIG"; then
  168. AC_MSG_ERROR([php-config not found])
  169. fi
  170. php_version=`$PHP_CONFIG --version 2>/dev/null|head -n 1|$PHP_OCI8_SED -e 's#\([0-9]\.[0-9]*\.[0-9]*\)\(.*\)#\1#'`
  171. else
  172. php_version=`echo "$tmp_version"|$PHP_OCI8_SED -e 's#\([0-9]\.[0-9]*\.[0-9]*\)\(.*\)#\1#'`
  173. fi
  174. if test -z "$php_version"; then
  175. AC_MSG_ERROR([failed to detect PHP version, please report])
  176. fi
  177. ac_IFS=$IFS
  178. IFS="."
  179. set $php_version
  180. IFS=$ac_IFS
  181. oci8_php_version=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
  182. if test "$oci8_php_version" -lt "5002000"; then
  183. AC_MSG_ERROR([You need at least PHP 5.2.0 to be able to use this version of OCI8. PHP $php_version found])
  184. else
  185. AC_MSG_RESULT([$php_version, ok])
  186. fi
  187. dnl Check whether --enable-dtrace was set.
  188. dnl To use DTrace with a PECL install, extract the OCI8 archive, phpize it, and set
  189. dnl PHP_DTRACE=yes before running configure
  190. AC_MSG_CHECKING([OCI8 DTrace support])
  191. oci8_do_dtrace="`echo $PHP_OCI8 | cut -d, -f3`"
  192. if test "$PHP_DTRACE" = "yes" -o "$oci8_do_dtrace" = "dtrace" ; then
  193. AC_MSG_RESULT([yes])
  194. if test "$ext_shared" = "no"; then
  195. AC_MSG_ERROR([For DTrace support OCI8 must be configured as a shared extension])
  196. else
  197. AC_CHECK_HEADERS([sys/sdt.h], [
  198. OCI8_INIT_DTRACE([oci8_dtrace.d],[oci8_dtrace_gen.h],[oci8.c oci8_statement.c])
  199. ], [
  200. AC_MSG_ERROR(
  201. [Cannot find sys/sdt.h which is required for DTrace support])
  202. ])
  203. PHP_SUBST(OCI8_DTRACE_OBJS)
  204. AC_DEFINE(HAVE_OCI8_DTRACE,1,[Defined to 1 if PHP OCI8 DTrace support was enabled during configuration])
  205. dnl Developer warning: hard coded extension is OK for the known supported environments
  206. shared_objects_oci8="$shared_objects_oci8 PHP_EXT_BUILDDIR(oci8)/oci8_dtrace.d.lo"
  207. fi
  208. else
  209. AC_MSG_RESULT([no])
  210. fi
  211. dnl Set some port specific directory components for use later
  212. AC_CHECK_SIZEOF(long int, 4)
  213. AC_MSG_CHECKING([checking if we're on a 64-bit platform])
  214. if test "$ac_cv_sizeof_long_int" = "4"; then
  215. AC_MSG_RESULT([no])
  216. PHP_OCI8_OH_LIBDIR=lib32
  217. PHP_OCI8_IC_LIBDIR_SUFFIX=""
  218. else
  219. AC_MSG_RESULT([yes])
  220. PHP_OCI8_OH_LIBDIR=lib
  221. PHP_OCI8_IC_LIBDIR_SUFFIX=64
  222. fi
  223. dnl Determine if the user wants to use Oracle Instant Client libraries
  224. PHP_OCI8_INSTANT_CLIENT="no"
  225. dnl PECL Bug 14268 (Allow "pecl install oci8" command to "autodetect"
  226. dnl an Instant Client RPM install). This also has a benefit for non
  227. dnl "pecl install" builds: if the user does --with-oci8 or
  228. dnl --with-oci8=shared but the ORACLE_HOME environment variable is not
  229. dnl actually set, the install tries to locate the Instant Client RPM
  230. if test "$PHP_OCI8" = "yes" && test -z "$ORACLE_HOME"; then
  231. AC_MSG_WARN([OCI8 extension: ORACLE_HOME is not set, looking for default Oracle Instant Client instead])
  232. PHP_OCI8=instantclient
  233. fi
  234. if test "`echo $PHP_OCI8`" = "instantclient"; then
  235. PHP_OCI8_INSTANT_CLIENT="yes"
  236. elif test "`echo $PHP_OCI8 | cut -d, -f2`" = "instantclient"; then
  237. PHP_OCI8_INSTANT_CLIENT="`echo $PHP_OCI8 | cut -d, -f3`"
  238. PHP_OCI8="`echo $PHP_OCI8 | cut -d, -f1,4`"
  239. if test "$PHP_OCI8_INSTANT_CLIENT" = ""; then
  240. PHP_OCI8_INSTANT_CLIENT="yes"
  241. fi
  242. if test -z "$PHP_OCI8"; then
  243. PHP_OCI8=yes
  244. fi
  245. elif test "`echo $PHP_OCI8 | cut -d, -f1`" = "instantclient"; then
  246. PHP_OCI8_INSTANT_CLIENT="`echo $PHP_OCI8 | cut -d, -f2`"
  247. PHP_OCI8="`echo $PHP_OCI8 | cut -d, -f3,4`"
  248. if test "$PHP_OCI8_INSTANT_CLIENT" = ""; then
  249. PHP_OCI8_INSTANT_CLIENT="yes"
  250. fi
  251. if test -z "$PHP_OCI8"; then
  252. PHP_OCI8=yes
  253. fi
  254. fi
  255. if test "$PHP_OCI8_INSTANT_CLIENT" = "no"; then
  256. dnl ***************************************
  257. dnl Branch for using an ORACLE_HOME install
  258. dnl ***************************************
  259. AC_MSG_CHECKING([Oracle ORACLE_HOME install directory])
  260. if test "$PHP_OCI8" = "yes"; then
  261. OCI8_DIR=$ORACLE_HOME
  262. else
  263. OCI8_DIR=$PHP_OCI8
  264. fi
  265. AC_MSG_RESULT($OCI8_DIR)
  266. AC_OCI8_CHECK_LIB_DIR($OCI8_DIR)
  267. if test -d "$OCI8_DIR/rdbms/public"; then
  268. PHP_ADD_INCLUDE($OCI8_DIR/rdbms/public)
  269. OCI8_INCLUDES="$OCI8_INCLUDES -I$OCI8_DIR/rdbms/public"
  270. fi
  271. if test -d "$OCI8_DIR/rdbms/demo"; then
  272. PHP_ADD_INCLUDE($OCI8_DIR/rdbms/demo)
  273. OCI8_INCLUDES="$OCI8_INCLUDES -I$OCI8_DIR/rdbms/demo"
  274. fi
  275. if test -d "$OCI8_DIR/network/public"; then
  276. PHP_ADD_INCLUDE($OCI8_DIR/network/public)
  277. OCI8_INCLUDES="$OCI8_INCLUDES -I$OCI8_DIR/network/public"
  278. fi
  279. if test -d "$OCI8_DIR/plsql/public"; then
  280. PHP_ADD_INCLUDE($OCI8_DIR/plsql/public)
  281. OCI8_INCLUDES="$OCI8_INCLUDES -I$OCI8_DIR/plsql/public"
  282. fi
  283. if test -f "$OCI8_DIR/$OCI8_LIB_DIR/sysliblist"; then
  284. PHP_EVAL_LIBLINE(`cat $OCI8_DIR/$OCI8_LIB_DIR/sysliblist`, OCI8_SYSLIB)
  285. elif test -f "$OCI8_DIR/rdbms/$OCI8_LIB_DIR/sysliblist"; then
  286. PHP_EVAL_LIBLINE(`cat $OCI8_DIR/rdbms/$OCI8_LIB_DIR/sysliblist`, OCI8_SYSLIB)
  287. fi
  288. AC_OCI8_ORACLE_VERSION($OCI8_DIR)
  289. case $OCI8_ORACLE_VERSION in
  290. 7.3|8.0|8.1|9.0)
  291. AC_MSG_ERROR([Oracle client libraries < 10 are not supported])
  292. ;;
  293. esac
  294. PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
  295. PHP_ADD_LIBPATH($OCI8_DIR/$OCI8_LIB_DIR, OCI8_SHARED_LIBADD)
  296. PHP_NEW_EXTENSION(oci8, oci8.c oci8_lob.c oci8_statement.c oci8_collection.c oci8_interface.c, $ext_shared)
  297. AC_DEFINE(HAVE_OCI8,1,[Defined to 1 if the PHP OCI8 extension for Oracle Database is configured])
  298. PHP_SUBST_OLD(OCI8_SHARED_LIBADD)
  299. PHP_SUBST_OLD(OCI8_DIR)
  300. PHP_SUBST_OLD(OCI8_ORACLE_VERSION)
  301. dnl Fix Bug #46623
  302. AC_DEFINE_UNQUOTED(PHP_OCI8_DEF_DIR, "$OCI8_DIR", [ ])
  303. AC_DEFINE_UNQUOTED(PHP_OCI8_DEF_SHARED_LIBADD, "$OCI8_SHARED_LIBADD", [ ])
  304. else
  305. dnl ***************************************************
  306. dnl Branch for using an Oracle Instant Client directory
  307. dnl ***************************************************
  308. AC_MSG_CHECKING([Oracle Instant Client directory])
  309. if test "$PHP_OCI8_INSTANT_CLIENT" = "yes"; then
  310. dnl Find the directory if user specified "instantclient" but did not
  311. dnl give a dir. Generally the Instant Client can be anywhere so the
  312. dnl user must pass in the library directory. But on Linux we default
  313. dnl to the most recent version in /usr/lib which is where the Oracle
  314. dnl Instant Client RPM gets installed.
  315. PHP_OCI8_INSTANT_CLIENT=`ls -d /usr/lib/oracle/*/client${PHP_OCI8_IC_LIBDIR_SUFFIX}/lib/libclntsh.* 2> /dev/null | $PHP_OCI8_TAIL1 | $PHP_OCI8_SED -e 's#/libclntsh[^/]*##'`
  316. if test -z "$PHP_OCI8_INSTANT_CLIENT"; then
  317. AC_MSG_ERROR([Oracle Instant Client directory /usr/lib/oracle/.../client${PHP_OCI8_IC_LIBDIR_SUFFIX}/lib libraries not found. Try --with-oci8=instantclient,DIR])
  318. fi
  319. fi
  320. AC_MSG_RESULT($PHP_OCI8_INSTANT_CLIENT)
  321. OCI8_DIR=$PHP_OCI8_INSTANT_CLIENT
  322. AC_MSG_CHECKING([Oracle Instant Client SDK header directory])
  323. dnl Header directory for Instant Client SDK RPM install
  324. OCISDKRPMINC=`echo "$PHP_OCI8_INSTANT_CLIENT" | $PHP_OCI8_SED -e 's!^/usr/lib/oracle/\(.*\)/client\('${PHP_OCI8_IC_LIBDIR_SUFFIX}'\)*/lib[/]*$!/usr/include/oracle/\1/client\2!'`
  325. dnl Header directory for Instant Client SDK zip file install
  326. OCISDKZIPINC=$PHP_OCI8_INSTANT_CLIENT/sdk/include
  327. dnl Header directory for manual installation
  328. OCISDKMANINC=`echo "$PHP_OCI8_INSTANT_CLIENT" | $PHP_OCI8_SED -e 's!\(.*\)/lib[/]*$!\1/include!'`
  329. if test -f "$OCISDKRPMINC/oci.h"; then
  330. AC_MSG_RESULT($OCISDKRPMINC)
  331. PHP_ADD_INCLUDE($OCISDKRPMINC)
  332. OCI8INCDIR=$OCISDKRPMINC
  333. elif test -f "$OCISDKZIPINC/oci.h"; then
  334. AC_MSG_RESULT($OCISDKZIPINC)
  335. PHP_ADD_INCLUDE($OCISDKZIPINC)
  336. OCI8INCDIR=$OCISDKZIPINC
  337. elif test -f "$OCISDKMANINC/oci.h"; then
  338. AC_MSG_RESULT($OCISDKMANINC)
  339. PHP_ADD_INCLUDE($OCISDKMANINC)
  340. OCI8INCDIR=$OCISDKMANINC
  341. else
  342. AC_MSG_ERROR([Oracle Instant Client SDK header files not found])
  343. fi
  344. OCISYSLIBLIST=`echo "$OCI8INCDIR" | $PHP_OCI8_SED -e 's!\(.*\)/include$!\1/demo/sysliblist!'`
  345. if test -f "$OCISYSLIBLIST"; then
  346. PHP_EVAL_LIBLINE(`cat $OCISYSLIBLIST`, OCI8_SYSLIB)
  347. fi
  348. AC_OCI8IC_VERSION($PHP_OCI8_INSTANT_CLIENT)
  349. PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
  350. PHP_ADD_LIBPATH($PHP_OCI8_INSTANT_CLIENT, OCI8_SHARED_LIBADD)
  351. AC_DEFINE(HAVE_OCI_INSTANT_CLIENT,1,[Defined to 1 if OCI8 configuration located Oracle's Instant Client libraries])
  352. PHP_NEW_EXTENSION(oci8, oci8.c oci8_lob.c oci8_statement.c oci8_collection.c oci8_interface.c, $ext_shared)
  353. AC_DEFINE(HAVE_OCI8,1,[Defined to 1 if the PHP OCI8 extension for Oracle Database is configured])
  354. PHP_SUBST_OLD(OCI8_SHARED_LIBADD)
  355. PHP_SUBST_OLD(OCI8_DIR)
  356. PHP_SUBST_OLD(OCI8_ORACLE_VERSION)
  357. fi
  358. fi