config.m4 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. AC_DEFUN([PHP_LDAP_CHECKS], [
  2. if test -f $1/include/ldap.h; then
  3. LDAP_DIR=$1
  4. LDAP_INCDIR=$1/include
  5. LDAP_LIBDIR=$1/$PHP_LIBDIR
  6. elif test -f $1/ldap/public/ldap.h; then
  7. LDAP_DIR=$1
  8. LDAP_INCDIR=$1/ldap/public
  9. LDAP_LIBDIR=$1/$PHP_LIBDIR
  10. else
  11. dnl Find Oracle Instant Client RPM header location corresponding to the
  12. dnl given lib path e.g. for --with-ldap=/usr/lib/oracle/12.1/client64/lib
  13. AC_CHECK_SIZEOF([long])
  14. AC_MSG_CHECKING([if we're at 64-bit platform])
  15. AS_IF([test "$ac_cv_sizeof_long" -eq 4],[
  16. AC_MSG_RESULT([no])
  17. PHP_OCI8_IC_LIBDIR_SUFFIX=""
  18. ],[
  19. AC_MSG_RESULT([yes])
  20. PHP_OCI8_IC_LIBDIR_SUFFIX=64
  21. ])
  22. OCISDKRPMINC=`echo "$1" | $SED -e 's!^/usr/lib/oracle/\(.*\)/client\('${PHP_OCI8_IC_LIBDIR_SUFFIX}'\)*/lib[/]*$!/usr/include/oracle/\1/client\2!'`
  23. dnl Check for Oracle Instant Client RPM install
  24. if test -f $OCISDKRPMINC/ldap.h; then
  25. LDAP_DIR=$1
  26. LDAP_INCDIR=$OCISDKRPMINC
  27. LDAP_LIBDIR=$1
  28. dnl Check for Oracle Instant Client ZIP install
  29. elif test -f $1/sdk/include/ldap.h; then
  30. LDAP_DIR=$1
  31. LDAP_INCDIR=$1/sdk/include
  32. LDAP_LIBDIR=$1
  33. fi
  34. fi
  35. ])
  36. PHP_ARG_WITH([ldap],
  37. [for LDAP support],
  38. [AS_HELP_STRING([[--with-ldap[=DIR]]],
  39. [Include LDAP support])])
  40. PHP_ARG_WITH([ldap-sasl],
  41. [whether to build with LDAP Cyrus SASL support],
  42. [AS_HELP_STRING([--with-ldap-sasl],
  43. [LDAP: Build with Cyrus SASL support])],
  44. [no],
  45. [no])
  46. if test "$PHP_LDAP" != "no"; then
  47. PHP_NEW_EXTENSION(ldap, ldap.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
  48. if test "$PHP_LDAP" = "yes"; then
  49. for i in /usr/local /usr; do
  50. PHP_LDAP_CHECKS($i)
  51. done
  52. else
  53. PHP_LDAP_CHECKS($PHP_LDAP)
  54. fi
  55. if test -z "$LDAP_DIR"; then
  56. AC_MSG_ERROR(Cannot find ldap.h)
  57. fi
  58. dnl -pc removal is a hack for clang
  59. MACHINE_INCLUDES=$($CC -dumpmachine | $SED 's/-pc//')
  60. if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.a || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.$SHLIB_SUFFIX_NAME; then
  61. PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  62. PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  63. elif test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/libldap.3.dylib; then
  64. PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  65. elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.12.1 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME.12.1; then
  66. PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  67. AC_DEFINE(HAVE_ORALDAP,1,[ ])
  68. elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then
  69. PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  70. AC_DEFINE(HAVE_ORALDAP,1,[ ])
  71. elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME; then
  72. PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
  73. AC_DEFINE(HAVE_ORALDAP,1,[ ])
  74. else
  75. AC_MSG_ERROR(Cannot find ldap libraries in $LDAP_LIBDIR.)
  76. fi
  77. PHP_ADD_INCLUDE($LDAP_INCDIR)
  78. PHP_SUBST(LDAP_SHARED_LIBADD)
  79. AC_DEFINE(HAVE_LDAP,1,[ ])
  80. dnl Save original values
  81. _SAVE_CPPFLAGS=$CPPFLAGS
  82. _SAVE_LIBS=$LIBS
  83. CPPFLAGS="$CPPFLAGS -I$LDAP_INCDIR"
  84. LIBS="$LIBS $LDAP_SHARED_LIBADD"
  85. dnl Check for 3 arg ldap_set_rebind_proc
  86. AC_CACHE_CHECK([for 3 arg ldap_set_rebind_proc], ac_cv_3arg_setrebindproc,
  87. [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <ldap.h>]], [[ldap_set_rebind_proc(0,0,0)]])],
  88. [ac_cv_3arg_setrebindproc=yes], [ac_cv_3arg_setrebindproc=no])])
  89. if test "$ac_cv_3arg_setrebindproc" = yes; then
  90. AC_DEFINE(HAVE_3ARG_SETREBINDPROC,1,[Whether 3 arg set_rebind_proc()])
  91. fi
  92. dnl Solaris 2.8 claims to be 2004 API, but doesn't have ldap_parse_reference()
  93. dnl nor ldap_start_tls_s()
  94. AC_CHECK_FUNCS([ldap_parse_result ldap_parse_reference ldap_start_tls_s ldap_control_find ldap_parse_extended_result ldap_extended_operation ldap_extended_operation_s ldap_passwd ldap_whoami_s ldap_refresh_s])
  95. dnl SASL check
  96. if test "$PHP_LDAP_SASL" != "no"; then
  97. PKG_CHECK_MODULES([SASL], [libsasl2])
  98. PHP_EVAL_INCLINE($SASL_CFLAGS)
  99. PHP_EVAL_LIBLINE($SASL_LIBS, LDAP_SHARED_LIBADD)
  100. AC_DEFINE(HAVE_LDAP_SASL, 1, [LDAP SASL support])
  101. fi
  102. dnl Sanity check
  103. AC_CHECK_FUNC(ldap_bind_s, [], [
  104. AC_MSG_ERROR([LDAP build check failed. Please check config.log for more information.])
  105. ])
  106. dnl Restore original values
  107. CPPFLAGS=$_SAVE_CPPFLAGS
  108. LIBS=$_SAVE_LIBS
  109. fi