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