diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | acinclude.m4 | 88 | ||||
-rw-r--r-- | configure.in | 24 |
3 files changed, 120 insertions, 0 deletions
@@ -1,3 +1,11 @@ +2006-06-12 simon.zheng <simon.zheng@sun.com> + + Fix for #336453 + + * acinclude.m4: + * configure.in: + Add SunLDAP library support - a variant of Netscape LDAP. + 2006-06-02 Iain Buchanan <iaindb@netspace.net.au> * configure.in: Fix typo that caused experimental plugins diff --git a/acinclude.m4 b/acinclude.m4 index d3f83734d4..39749b1c01 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -111,6 +111,94 @@ AC_DEFUN([EVO_LDAP_CHECK], [ AM_CONDITIONAL(ENABLE_LDAP, test $with_openldap != no) ]) +# EVO_SUNLDAP_CHECK +# Add --with-sunldap and --with-static-sunldap options. --with-sunldap +# defaults to the given value if not specified. If LDAP support is +# configured, HAVE_LDAP will be defined and the automake conditional +# ENABLE_LDAP will be set. LDAP_CFLAGS and LDAP_LIBS will be set +# appropriately, and --with-sunldap and --with-openldap is mutually exclusive. +AC_DEFUN([EVO_SUNLDAP_CHECK], [ + default="$1" + + AC_ARG_WITH(sunldap, [ --with-sunldap=[no/yes/PREFIX] Enable SunLDAP support in evolution]) + AC_ARG_WITH(static-sunldap, [ --with-static-sunldap=[no/yes] Link SunLDAP support statically into evolution ]) + AC_CACHE_CHECK([for SunLDAP], ac_cv_with_sunldap, ac_cv_with_sunldap="${with_sunldap:=$default}") + case $ac_cv_with_sunldap in + no|"") + with_sunldap=no + ;; + yes) + with_sunldap=/usr + ;; + *) + with_sunldap=$ac_cv_with_sunldap + LDAP_CFLAGS="-I$ac_cv_with_sunldap/include" + LDAP_LDFLAGS="-L$ac_cv_with_sunldap/lib" + ;; + esac + + if test "$with_sunldap" != no; then + AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support]) + AC_DEFINE(SUNLDAP, 1, [Define if you use SunLDAP]) + + case $with_static_sunldap in + no|"") + with_static_sunldap=no + ;; + *) + with_static_sunldap=yes + ;; + esac + + AC_CACHE_CHECK(if SunLDAP is version 2.x, ac_cv_sunldap_version2, [ + CPPFLAGS_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $LDAP_CFLAGS" + AC_EGREP_CPP(yes, [ + #include "ldap.h" + #if LDAP_VENDOR_VERSION >= 500 + yes + #endif + ], ac_cv_sunldap_version2=yes, ac_cv_sunldap_version2=no) + CPPFLAGS="$CPPFLAGS_save" + ]) + if test "$ac_cv_sunldap_version2" = no; then + AC_MSG_ERROR(evolution requires SunLDAP version >= 2) + fi + + AC_CHECK_LIB(resolv, res_query, LDAP_LIBS="-lresolv") + AC_CHECK_LIB(socket, bind, LDAP_LIBS="$LDAP_LIBS -lsocket") + AC_CHECK_LIB(nsl, gethostbyaddr, LDAP_LIBS="$LDAP_LIBS -lnsl") + AC_CHECK_LIB(ldap, ldap_open, [ + if test $with_static_sunldap = "yes"; then + LDAP_LIBS="$with_sunldap/lib/libldap.a $LDAP_LIBS" + else + LDAP_LIBS="-lldap $LDAP_LIBS" + fi + if test `uname -s` != "SunOS" ; then + AC_CHECK_LIB(lber, ber_get_tag, [ + if test "$with_static_sunldap" = "yes"; then + LDAP_LIBS="$with_sunldap/lib/liblber.a $LDAP_LIBS" + # libldap might depend on OpenSSL... We need to pull + # in the dependency libs explicitly here since we're + # not using libtool for the configure test. + if test -f $with_sunldap/lib/libldap.la; then + LDAP_LIBS="`. $with_sunldap/lib/libldap.la; echo $dependency_libs` $LDAP_LIBS" + fi + else + LDAP_LIBS="-llber $LDAP_LIBS" + fi], LDAP_LIBS="", $LDAP_LDFLAGS $LDAP_LIBS) + fi + LDAP_LIBS="$LDAP_LDFLAGS $LDAP_LIBS" + ], LDAP_LIBS="", $LDAP_LDFLAGS $LDAP_LIBS) + + if test -z "$LDAP_LIBS"; then + AC_MSG_ERROR(could not find SunLDAP libraries) + fi + + AC_SUBST(LDAP_CFLAGS) + AC_SUBST(LDAP_LIBS) + fi + AM_CONDITIONAL(ENABLE_LDAP, test $with_sunldap != no) +]) # EVO_PTHREAD_CHECK AC_DEFUN([EVO_PTHREAD_CHECK],[ diff --git a/configure.in b/configure.in index 4ffef40616..4aace1c63c 100644 --- a/configure.in +++ b/configure.in @@ -444,6 +444,30 @@ msg_ldap="yes" fi # Win32 dnl ************************************************** +dnl SunLDAP support, but if OpenLDAP support, skip check SunLDAP. +dnl ************************************************** +if test "$with_openldap" = no ; then + EVO_SUNLDAP_CHECK(no) + case $with_sunldap in + no) + msg_ldap=no + ;; + *) + case $with_static_sunldap in + yes) + msg_ldap="$with_sunldap (static)" + ;; + *) + msg_ldap="$with_sunldap (dynamic)" + ;; + esac + esac +else + with_sunldap=no +fi +AM_CONDITIONAL(SUNLDAP, test "$with_sunldap" != no) + +dnl ************************************************** dnl NNTP support. dnl ************************************************** AC_ARG_ENABLE(nntp, |