config.m4 16 KB

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