config.m4 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. dnl
  2. dnl $Id$
  3. dnl
  4. AC_DEFUN([PHP_LDAP_CHECKS], [
  5. if test -f $1/include/ldap.h; then
  6. LDAP_DIR=$1
  7. LDAP_INCDIR=$1/include
  8. LDAP_LIBDIR=$1/$PHP_LIBDIR
  9. elif test -f $1/include/umich-ldap/ldap.h; then
  10. LDAP_DIR=$1
  11. LDAP_INCDIR=$1/include/umich-ldap
  12. LDAP_LIBDIR=$1/$PHP_LIBDIR
  13. elif test -f $1/ldap/public/ldap.h; then
  14. LDAP_DIR=$1
  15. LDAP_INCDIR=$1/ldap/public
  16. LDAP_LIBDIR=$1/$PHP_LIBDIR
  17. else
  18. dnl Find Oracle Instant Client RPM header location corresponding to the given lib path e.g. for --with-ldap=/usr/lib/oracle/12.1/client64/lib
  19. AC_CHECK_SIZEOF(long int, 4)
  20. if test "$ac_cv_sizeof_long_int" = "4"; then
  21. PHP_OCI8_IC_LIBDIR_SUFFIX=""
  22. else
  23. PHP_OCI8_IC_LIBDIR_SUFFIX=64
  24. fi
  25. OCISDKRPMINC=`echo "$1" | $SED -e 's!^/usr/lib/oracle/\(.*\)/client\('${PHP_OCI8_IC_LIBDIR_SUFFIX}'\)*/lib[/]*$!/usr/include/oracle/\1/client\2!'`
  26. dnl Check for Oracle Instant Client RPM install
  27. if test -f $OCISDKRPMINC/ldap.h; then
  28. LDAP_DIR=$1
  29. LDAP_INCDIR=$OCISDKRPMINC
  30. LDAP_LIBDIR=$1
  31. dnl Check for Oracle Instant Client ZIP install
  32. elif test -f $1/sdk/include/ldap.h; then
  33. LDAP_DIR=$1
  34. LDAP_INCDIR=$1/sdk/include
  35. LDAP_LIBDIR=$1
  36. fi
  37. fi
  38. ])
  39. AC_DEFUN([PHP_LDAP_SASL_CHECKS], [
  40. if test "$1" = "yes"; then
  41. SEARCH_DIRS="/usr/local /usr"
  42. else
  43. SEARCH_DIRS=$1
  44. fi
  45. for i in $SEARCH_DIRS; do
  46. if test -f $i/include/sasl/sasl.h; then
  47. LDAP_SASL_DIR=$i
  48. AC_DEFINE(HAVE_LDAP_SASL_SASL_H,1,[ ])
  49. break
  50. elif test -f $i/include/sasl.h; then
  51. LDAP_SASL_DIR=$i
  52. AC_DEFINE(HAVE_LDAP_SASL_H,1,[ ])
  53. break
  54. fi
  55. done
  56. if test "$LDAP_SASL_DIR"; then
  57. LDAP_SASL_INCDIR=$LDAP_SASL_DIR/include
  58. LDAP_SASL_LIBDIR=$LDAP_SASL_DIR/$PHP_LIBDIR
  59. else
  60. AC_MSG_ERROR([sasl.h not found!])
  61. fi
  62. if test "$PHP_LDAP_SASL" = "yes"; then
  63. SASL_LIB="-lsasl2"
  64. else
  65. SASL_LIB="-L$LDAP_SASL_LIBDIR -lsasl2"
  66. fi
  67. PHP_CHECK_LIBRARY(sasl2, sasl_version,
  68. [
  69. PHP_ADD_INCLUDE($LDAP_SASL_INCDIR)
  70. PHP_ADD_LIBRARY_WITH_PATH(sasl2, $LDAP_SASL_LIBDIR, LDAP_SHARED_LIBADD)
  71. AC_DEFINE(HAVE_LDAP_SASL, 1, [LDAP SASL support])
  72. ], [
  73. AC_MSG_ERROR([LDAP SASL check failed. Please check config.log for more information.])
  74. ], [
  75. $LDAP_SHARED_LIBADD $SASL_LIB
  76. ])
  77. ])
  78. PHP_ARG_WITH(ldap,for LDAP support,
  79. [ --with-ldap[=DIR] Include LDAP support])
  80. PHP_ARG_WITH(ldap-sasl,for LDAP Cyrus SASL support,
  81. [ --with-ldap-sasl[=DIR] LDAP: Include Cyrus SASL support], no, no)
  82. if test "$PHP_LDAP" != "no"; then
  83. PHP_NEW_EXTENSION(ldap, ldap.c, $ext_shared,,-DLDAP_DEPRECATED=1)
  84. if test "$PHP_LDAP" = "yes"; then
  85. for i in /usr/local /usr; do
  86. PHP_LDAP_CHECKS($i)
  87. done
  88. else
  89. PHP_LDAP_CHECKS($PHP_LDAP)
  90. fi
  91. if test -z "$LDAP_DIR"; then
  92. AC_MSG_ERROR(Cannot find ldap.h)
  93. fi
  94. dnl The Linux version of the SDK need -lpthread
  95. dnl I have tested Solaris, and it doesn't, but others may. Add
  96. dnl these here if necessary. -RL
  97. dnl Is this really necessary? -Troels Arvin
  98. if test `uname` = "Linux"; then
  99. LDAP_PTHREAD=pthread
  100. else
  101. LDAP_PTHREAD=
  102. fi
  103. if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME; then
  104. PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  105. PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  106. elif test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/libldap.3.dylib; then
  107. PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  108. elif test -f $LDAP_LIBDIR/libssldap50.$SHLIB_SUFFIX_NAME; then
  109. if test -n "$LDAP_PTHREAD"; then
  110. PHP_ADD_LIBRARY($LDAP_PTHREAD)
  111. fi
  112. PHP_ADD_LIBRARY_WITH_PATH(nspr4, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  113. PHP_ADD_LIBRARY_WITH_PATH(plc4, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  114. PHP_ADD_LIBRARY_WITH_PATH(plds4, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  115. PHP_ADD_LIBRARY_WITH_PATH(ssldap50, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  116. PHP_ADD_LIBRARY_WITH_PATH(ldap50, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  117. PHP_ADD_LIBRARY_WITH_PATH(prldap50, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  118. PHP_ADD_LIBRARY_WITH_PATH(ssl3, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  119. AC_DEFINE(HAVE_NSLDAP,1,[ ])
  120. elif test -f $LDAP_LIBDIR/libldapssl41.$SHLIB_SUFFIX_NAME; then
  121. if test -n "$LDAP_PTHREAD"; then
  122. PHP_ADD_LIBRARY($LDAP_PTHREAD)
  123. fi
  124. PHP_ADD_LIBRARY_WITH_PATH(nspr3, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  125. PHP_ADD_LIBRARY_WITH_PATH(plc3, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  126. PHP_ADD_LIBRARY_WITH_PATH(plds3, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  127. PHP_ADD_LIBRARY_WITH_PATH(ldapssl41, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  128. AC_DEFINE(HAVE_NSLDAP,1,[ ])
  129. elif test -f $LDAP_LIBDIR/libldapssl30.$SHLIB_SUFFIX_NAME; then
  130. if test -n "$LDAP_PTHREAD"; then
  131. PHP_ADD_LIBRARY($LDAP_PTHREAD)
  132. fi
  133. PHP_ADD_LIBRARY_WITH_PATH(ldapssl30, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  134. AC_DEFINE(HAVE_NSLDAP,1,[ ])
  135. elif test -f $LDAP_LIBDIR/libldap30.$SHLIB_SUFFIX_NAME; then
  136. if test -n "$LDAP_PTHREAD"; then
  137. PHP_ADD_LIBRARY($LDAP_PTHREAD)
  138. fi
  139. PHP_ADD_LIBRARY_WITH_PATH(ldap30, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  140. AC_DEFINE(HAVE_NSLDAP,1,[ ])
  141. elif test -f $LDAP_LIBDIR/libumich_ldap.$SHLIB_SUFFIX_NAME; then
  142. PHP_ADD_LIBRARY_WITH_PATH(umich_lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  143. PHP_ADD_LIBRARY_WITH_PATH(umich_ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  144. elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.12.1; then
  145. PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  146. AC_DEFINE(HAVE_ORALDAP,1,[ ])
  147. AC_DEFINE(HAVE_ORALDAP_12,1,[ ])
  148. elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then
  149. PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  150. AC_DEFINE(HAVE_ORALDAP,1,[ ])
  151. AC_DEFINE(HAVE_ORALDAP_11,1,[ ])
  152. elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME; then
  153. PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  154. AC_DEFINE(HAVE_ORALDAP,1,[ ])
  155. AC_DEFINE(HAVE_ORALDAP_10,1,[ ])
  156. else
  157. AC_MSG_ERROR(Cannot find ldap libraries in $LDAP_LIBDIR.)
  158. fi
  159. PHP_ADD_INCLUDE($LDAP_INCDIR)
  160. PHP_SUBST(LDAP_SHARED_LIBADD)
  161. AC_DEFINE(HAVE_LDAP,1,[ ])
  162. dnl Save original values
  163. _SAVE_CPPFLAGS=$CPPFLAGS
  164. _SAVE_LIBS=$LIBS
  165. CPPFLAGS="$CPPFLAGS -I$LDAP_INCDIR"
  166. LIBS="$LIBS $LDAP_SHARED_LIBADD"
  167. dnl Check for 3 arg ldap_set_rebind_proc
  168. AC_CACHE_CHECK([for 3 arg ldap_set_rebind_proc], ac_cv_3arg_setrebindproc,
  169. [AC_TRY_COMPILE([#include <ldap.h>], [ldap_set_rebind_proc(0,0,0)],
  170. ac_cv_3arg_setrebindproc=yes, ac_cv_3arg_setrebindproc=no)])
  171. if test "$ac_cv_3arg_setrebindproc" = yes; then
  172. AC_DEFINE(HAVE_3ARG_SETREBINDPROC,1,[Whether 3 arg set_rebind_proc()])
  173. fi
  174. dnl Solaris 2.8 claims to be 2004 API, but doesn't have
  175. dnl ldap_parse_reference() nor ldap_start_tls_s()
  176. AC_CHECK_FUNCS([ldap_parse_result ldap_parse_reference ldap_start_tls_s ldap_control_find])
  177. dnl
  178. dnl SASL check
  179. dnl
  180. if test "$PHP_LDAP_SASL" != "no"; then
  181. PHP_LDAP_SASL_CHECKS([$PHP_LDAP_SASL])
  182. fi
  183. dnl
  184. dnl Sanity check
  185. dnl
  186. AC_CHECK_FUNC(ldap_bind_s, [], [
  187. AC_MSG_ERROR([LDAP build check failed. Please check config.log for more information.])
  188. ])
  189. dnl Restore original values
  190. CPPFLAGS=$_SAVE_CPPFLAGS
  191. LIBS=$_SAVE_LIBS
  192. fi