a65f31f671d76a7506138ecead1f11125e198f3b
[freeradius.git] / src / modules / rlm_ldap / configure.in
1 AC_INIT(rlm_ldap.c)
2 AC_REVISION($Revision$)
3 AC_DEFUN(modname,[rlm_ldap])
4
5 fail=
6 SMART_LIBS=
7 SMART_CLFAGS=
8 if test x$with_[]modname != xno; then
9
10         AC_PROG_CC
11
12         AC_CHECK_LIB(resolv, inet_aton)
13
14         dnl extra argument: --with-rlm-ldap-lib-dir
15         rlm_ldap_lib_dir=
16         AC_ARG_WITH(rlm-ldap-lib-dir,
17         [  --with-rlm-ldap-lib-dir=DIR       Directory for LDAP library files []],
18         [ case "$withval" in
19             no)
20                 AC_MSG_ERROR(Need rlm-ldap-lib-dir)
21                 ;;
22             yes)
23                 ;;
24             *)
25                 rlm_ldap_lib_dir="$withval"
26                 ;;
27           esac ]
28         )
29
30         dnl extra argument: --with-rlm-ldap-include-dir
31         rlm_ldap_inc_dir=
32         AC_ARG_WITH(rlm-ldap-include-dir,
33         [  --with-rlm-ldap-include-dir=DIR   Directory for LDAP include files []],
34         [ case "$withval" in
35             no)
36                 AC_MSG_ERROR(Need rlm-ldap-include-dir)
37                 ;;
38             yes)
39                 ;;
40             *)
41                 rlm_ldap_include_dir="$withval"
42                 ;;
43           esac ]
44         )
45
46         smart_try_dir=$rlm_ldap_include_dir
47         AC_SMART_CHECK_INCLUDE(lber.h)
48         AC_SMART_CHECK_INCLUDE(ldap.h)
49
50         AC_SMART_CHECK_LIB(sasl, sasl_encode)
51         AC_SMART_CHECK_LIB(crypto, DH_new)
52         AC_SMART_CHECK_LIB(ssl, SSL_new)
53
54         smart_try_dir=$rlm_ldap_lib_dir
55         AC_SMART_CHECK_LIB(lber, ber_init)
56         if test "x$ac_cv_lib_lber_ber_init" != "xyes"; then
57           fail="$fail liblber"
58         else
59           if test "x$ac_cv_header_pthread_h" = "xyes"; then
60             AC_SMART_CHECK_LIB(ldap_r, ldap_init)
61             if test "x$ac_cv_lib_ldap_r_ldap_init" != "xyes"; then
62               fail="$fail libldap_r"
63             else
64                 libldap=ldap_r
65             fi
66           else
67             AC_SMART_CHECK_LIB(ldap, ldap_init)
68             if test "x$ac_cv_lib_ldap_ldap_init" != "xyes"; then
69               fail="$fail libldap"
70             else
71                 libldap=ldap
72            fi
73           fi
74         fi
75
76         if test x"$libldap" != "x"; then
77           AC_SMART_CHECK_LIB("$libldap", ldap_start_tls_s)
78
79           if test "x${ac_cv_lib_ldap_ldap_start_tls_s}${ac_cv_lib_ldap_r_ldap_start_tls_s}" != "x"; then
80              SMART_CFLAGS="$SMART_CFLAGS -DHAVE_LDAP_START_TLS"
81           fi
82       
83           AC_SMART_CHECK_LIB("$libldap", ldap_initialize)
84
85           if test "x${ac_cv_lib_ldap_ldap_initialize}${ac_cv_lib_ldap_r_ldap_initialize}" != "x"; then
86              SMART_CFLAGS="$SMART_CFLAGS -DHAVE_LDAP_INITIALIZE"
87           fi
88       
89           AC_SMART_CHECK_LIB("$libldap", ldap_int_tls_config)
90
91           if test "x${ac_cv_lib_ldap_ldap_int_tls_config}${ac_cv_lib_ldap_r_ldap_int_tls_config}" != "x"; then
92              SMART_CFLAGS="$SMART_CFLAGS -DHAVE_LDAP_INT_TLS_CONFIG"
93           fi
94
95         fi
96
97
98         targetname=modname
99 else
100         targetname=
101         echo \*\*\* module modname is disabled.
102 fi
103
104 if test x"$fail" != x""; then
105         if test x"${enable_strict_dependencies}" = x"yes"; then
106                 AC_MSG_ERROR([set --without-]modname[ to disable it explicitly.])
107         else
108                 AC_MSG_WARN([silently not building ]modname[.])
109                 AC_MSG_WARN([FAILURE: ]modname[ requires: $fail.])
110                 if test x"$headersuggestion" != x; then
111                         AC_MSG_WARN([$headersuggestion]) 
112                 fi
113                 if test x"$libsuggestion" != x; then
114                         AC_MSG_WARN([$libsuggestion]) 
115                 fi
116                 targetname=""
117         fi
118 fi
119
120 ldap_ldflags=$SMART_LIBS
121 ldap_cflags=$SMART_CFLAGS
122 AC_SUBST(ldap_ldflags)
123 AC_SUBST(ldap_cflags)
124 AC_SUBST(targetname)
125 AC_OUTPUT(Makefile)