aboutsummaryrefslogtreecommitdiffstats
path: root/m4/evo_ldap_check.m4
diff options
context:
space:
mode:
authorH.Habighorst <tearofadragon@googlemail.com>2009-08-11 03:31:21 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-08-11 03:31:21 +0800
commite50c29108c72e0c43f878306fde3b49ec368cd97 (patch)
treef1de8609b7439389ffefeae44da36e14fd7c5ea4 /m4/evo_ldap_check.m4
parent0b8be4a460c622da06b9629e2c2939fd2bc1f4ff (diff)
downloadgsoc2013-evolution-e50c29108c72e0c43f878306fde3b49ec368cd97.tar.gz
gsoc2013-evolution-e50c29108c72e0c43f878306fde3b49ec368cd97.tar.zst
gsoc2013-evolution-e50c29108c72e0c43f878306fde3b49ec368cd97.zip
Bug 591326 – Keep m4 macros in their own folder
Diffstat (limited to 'm4/evo_ldap_check.m4')
-rw-r--r--m4/evo_ldap_check.m492
1 files changed, 92 insertions, 0 deletions
diff --git a/m4/evo_ldap_check.m4 b/m4/evo_ldap_check.m4
new file mode 100644
index 0000000000..a029ac70bf
--- /dev/null
+++ b/m4/evo_ldap_check.m4
@@ -0,0 +1,92 @@
+dnl EVO_LDAP_CHECK(default)
+dnl Add --with-openldap and --with-static-ldap options. --with-openldap
+dnl defaults to the given value if not specified. If LDAP support is
+dnl configured, HAVE_LDAP will be defined and the automake conditional
+dnl ENABLE_LDAP will be set. LDAP_CFLAGS and LDAP_LIBS will be set
+dnl appropriately.
+#serial 0.1
+AC_DEFUN([EVO_LDAP_CHECK],[
+ default="$1"
+ AC_ARG_WITH([openldap],
+ [AS_HELP_STRING([--with-openldap],
+ [Enable LDAP support in evolution])])
+ AC_ARG_WITH([static-ldap],
+ [AS_HELP_STRING([--with-static-ldap],
+ [Link LDAP support statically into evolution])])
+ AC_CACHE_CHECK([for OpenLDAP], [ac_cv_with_openldap], [ac_cv_with_openldap="${with_openldap:=$default}"])
+ case $ac_cv_with_openldap in
+ no|"")
+ with_openldap=no
+ ;;
+ yes)
+ with_openldap=/usr
+ ;;
+ *)
+ with_openldap=$ac_cv_with_openldap
+ LDAP_CFLAGS="-I$ac_cv_with_openldap/include"
+ LDAP_LDFLAGS="-L$ac_cv_with_openldap/lib"
+ ;;
+ esac
+
+ if test "$with_openldap" != no; then
+ AC_DEFINE(HAVE_LDAP,1,[Define if you have LDAP support])
+
+ case $with_static_ldap in
+ no|"")
+ with_static_ldap=no
+ ;;
+ *)
+ with_static_ldap=yes
+ ;;
+ esac
+
+ AC_CACHE_CHECK([if OpenLDAP is version 2.x], [ac_cv_openldap_version2], [
+ CPPFLAGS_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $LDAP_CFLAGS"
+ AC_EGREP_CPP(yes, [
+ #include "ldap.h"
+ #if LDAP_VENDOR_VERSION > 20000
+ yes
+ #endif
+ ], [ac_cv_openldap_version2=yes], [ac_cv_openldap_version2=no])
+ CPPFLAGS="$CPPFLAGS_save"
+ ])
+ if test "$ac_cv_openldap_version2" = no; then
+ AC_MSG_ERROR([evolution requires OpenLDAP 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(lber, ber_get_tag, [
+ if test "$with_static_ldap" = "yes"; then
+ LDAP_LIBS="$with_openldap/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_openldap/lib/libldap.la; then
+ LDAP_LIBS="`. $with_openldap/lib/libldap.la; echo $dependency_libs` $LDAP_LIBS"
+ fi
+ else
+ LDAP_LIBS="-llber $LDAP_LIBS"
+ fi
+ AC_CHECK_LIB(ldap, ldap_open, [
+ if test $with_static_ldap = "yes"; then
+ LDAP_LIBS="$with_openldap/lib/libldap.a $LDAP_LIBS"
+ else
+ LDAP_LIBS="-lldap $LDAP_LIBS"
+ fi],
+ [LDAP_LIBS=""], [$LDAP_LDFLAGS $LDAP_LIBS])
+ LDAP_LIBS="$LDAP_LDFLAGS $LDAP_LIBS"
+ ], [LDAP_LIBS=""], [$LDAP_LDFLAGS $LDAP_LIBS])
+
+ if test -z "$LDAP_LIBS"; then
+ AC_MSG_ERROR([could not find OpenLDAP libraries])
+ fi
+
+ AC_SUBST(LDAP_CFLAGS)
+ AC_SUBST(LDAP_LIBS)
+ fi
+ AM_CONDITIONAL(ENABLE_LDAP, test "$with_openldap" != "no")
+])