911c1364c89a12fe487431f8d6914b268a7a1fe0
[jelmer/samba4-debian.git] / source / lib / ldb / ldap.m4
1 ########################################################
2 # Compile with LDAP support?
3
4 LDAP_LIBS=""
5 with_ldap_support=auto
6 AC_MSG_CHECKING([for LDAP support])
7
8 AC_ARG_WITH(ldap,
9 AS_HELP_STRING([--with-ldap],[LDAP backend support (default=yes)]),
10 [ case "$withval" in
11     yes|no)
12         with_ldap_support=$withval
13         ;;
14   esac ])
15
16 AC_MSG_RESULT($with_ldap_support)
17
18 if test x"$with_ldap_support" != x"no"; then
19
20   ##################################################################
21   # first test for ldap.h and lber.h
22   # (ldap.h is required for this test)
23   AC_CHECK_HEADERS(ldap.h lber.h)
24   
25   if test x"$ac_cv_header_ldap_h" != x"yes"; then
26         if test x"$with_ldap_support" = x"yes"; then
27          AC_MSG_ERROR(ldap.h is needed for LDAP support)
28         else
29          AC_MSG_WARN(ldap.h is needed for LDAP support)
30         fi
31         
32         with_ldap_support=no
33   fi
34 fi
35
36 if test x"$with_ldap_support" != x"no"; then
37   ac_save_LIBS=$LIBS
38
39   ##################################################################
40   # we might need the lber lib on some systems. To avoid link errors
41   # this test must be before the libldap test
42   AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
43
44   ########################################################
45   # now see if we can find the ldap libs in standard paths
46   AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
47
48   AC_CHECK_FUNC_EXT(ldap_domain2hostlist,$LDAP_LIBS)
49   
50   ########################################################
51   # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
52   # Check found in pam_ldap 145.
53   AC_CHECK_FUNC_EXT(ldap_set_rebind_proc,$LDAP_LIBS)
54
55   LIBS="$LIBS $LDAP_LIBS"
56   AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, smb_ldap_cv_ldap_set_rebind_proc, [
57     AC_TRY_COMPILE([
58         #include <lber.h>
59         #include <ldap.h>], 
60         [ldap_set_rebind_proc(0, 0, 0);], 
61         [smb_ldap_cv_ldap_set_rebind_proc=3], 
62         [smb_ldap_cv_ldap_set_rebind_proc=2]
63     ) 
64   ])
65   
66   AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $smb_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
67
68   AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS) 
69   
70   if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes" -a x"$ac_cv_func_ext_ldap_domain2hostlist" = x"yes"; then
71     AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
72     with_ldap_support=yes
73     AC_MSG_CHECKING(whether LDAP support is used)
74     AC_MSG_RESULT(yes)
75     SMB_ENABLE(LDAP,YES)
76   else
77     if test x"$with_ldap_support" = x"yes"; then
78         AC_MSG_ERROR(libldap is needed for LDAP support)
79     else
80         AC_MSG_WARN(libldap is needed for LDAP support)
81     fi
82     
83     LDAP_LIBS=""
84     with_ldap_support=no
85   fi
86   LIBS=$ac_save_LIBS
87 fi
88
89 SMB_EXT_LIB(LDAP,[${LDAP_LIBS}],[${LDAP_CFLAGS}],[${LDAP_CPPFLAGS}],[${LDAP_LDFLAGS}])