diff --git a/m4/ChangeLog b/m4/ChangeLog index 471b0b552..54c601646 100644 --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,7 @@ +2007-07-27 David Shaw + + * ldap.m4: If we don't find ldap or winldap, try for mozldap. + 2007-01-16 David Shaw * libcurl.m4: Check for curl_easy_escape() and diff --git a/m4/ldap.m4 b/m4/ldap.m4 index 95249ac3e..29ac078ee 100644 --- a/m4/ldap.m4 +++ b/m4/ldap.m4 @@ -1,5 +1,5 @@ dnl Check for LDAP -dnl Copyright (C) 2005 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2007 Free Software Foundation, Inc. dnl dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General @@ -33,10 +33,11 @@ if test x$_ldap_with != xno ; then CPPFLAGS="${LDAP_CPPFLAGS} ${CPPFLAGS}" _ldap_save_ldflags=$LDFLAGS LDFLAGS="${LDAP_LDFLAGS} ${LDFLAGS}" + _ldap_save_libs=$LIBS for MY_LDAPLIBS in ${LDAPLIBS+"$LDAPLIBS"} "-lldap" "-lldap -llber" "-lldap -llber -lresolv" "-lwldap32"; do - _ldap_save_libs=$LIBS - LIBS="$MY_LDAPLIBS $1 $LIBS" + + LIBS="$MY_LDAPLIBS $1 $_ldap_save_libs" AC_MSG_CHECKING([whether LDAP via \"$MY_LDAPLIBS\" is present and sane]) AC_TRY_LINK([ @@ -59,39 +60,62 @@ if test x$_ldap_with != xno ; then fi if test "$gnupg_cv_func_ldaplber_init" = yes ; then - AC_DEFINE(NEED_LBER_H,1,[Define if the LDAP library requires including lber.h before ldap.h]) + AC_DEFINE(NEED_LBER_H,1, + [Define if the LDAP library requires including lber.h before ldap.h]) fi if test "$gnupg_cv_func_ldap_init" = yes || \ test "$gnupg_cv_func_ldaplber_init" = yes ; then LDAPLIBS="$LDAP_LDFLAGS $MY_LDAPLIBS" GPGKEYS_LDAP="gpgkeys_ldap$EXEEXT" - - AC_CHECK_FUNCS(ldap_get_option ldap_set_option ldap_start_tls_s) - - if test "$ac_cv_func_ldap_get_option" != yes ; then - AC_MSG_CHECKING([whether LDAP supports ld_errno]) - AC_TRY_LINK([#include ],[LDAP *ldap; ldap->ld_errno;], - [gnupg_cv_func_ldap_ld_errno=yes], - [gnupg_cv_func_ldap_ld_errno=no]) - AC_MSG_RESULT([$gnupg_cv_func_ldap_ld_errno]) - - if test "$gnupg_cv_func_ldap_ld_errno" = yes ; then - AC_DEFINE(HAVE_LDAP_LD_ERRNO,1,[Define if the LDAP library supports ld_errno]) - fi - fi + break fi - - LIBS=$_ldap_save_libs - - if test "$GPGKEYS_LDAP" != "" ; then break; fi done + if test "$GPGKEYS_LDAP" = "" ; then + # It didn't work, so try for mozldap. We only do this via + # pkg-config due to a really impressive dependency list. + AC_PATH_PROG([_pkg_config],[pkg-config]) + if test x$_pkg_config != x ; then + AC_MSG_CHECKING([for mozldap]) + LDAPLIBS=`$_pkg_config --libs mozldap 2>/dev/null` + LDAP_CPPFLAGS=`$_pkg_config --cflags mozldap 2>/dev/null` + if test x"$LDAPLIBS" = x && test x"$LDAP_CPPFLAGS" = x; then + AC_MSG_RESULT([no]) + else + AC_MSG_RESULT([yes]) + LIBS="$LDAPLIBS" + GPGKEYS_LDAP="gpgkeys_ldap$EXEEXT" + CPPFLAGS="${LDAP_CPPFLAGS} ${CPPFLAGS}" + AC_CHECK_HEADERS([ldap_ssl.h],,,[#include ]) + fi + fi + fi + + if test "$GPGKEYS_LDAP" != "" ; then + # Whichever library we ended up with, check for some features... + AC_CHECK_FUNCS(ldap_get_option ldap_set_option ldap_start_tls_s) + + if test "$ac_cv_func_ldap_get_option" != yes ; then + AC_MSG_CHECKING([whether LDAP supports ld_errno]) + AC_TRY_LINK([#include ],[LDAP *ldap; ldap->ld_errno;], + [gnupg_cv_func_ldap_ld_errno=yes], + [gnupg_cv_func_ldap_ld_errno=no]) + AC_MSG_RESULT([$gnupg_cv_func_ldap_ld_errno]) + + if test "$gnupg_cv_func_ldap_ld_errno" = yes ; then + AC_DEFINE(HAVE_LDAP_LD_ERRNO,1, + [Define if the LDAP library supports ld_errno]) + fi + fi + fi + + LIBS=$_ldap_save_libs + CPPFLAGS=$_ldap_save_cppflags + LDFLAGS=$_ldap_save_ldflags + AC_SUBST(GPGKEYS_LDAP) AC_SUBST(LDAPLIBS) AC_SUBST(LDAP_CPPFLAGS) - - CPPFLAGS=$_ldap_save_cppflags - LDFLAGS=$_ldap_save_ldflags fi ])dnl