1dnl ldap.m4 -- find compiler and linker flags for LDAP 2dnl Based on patch from Markus Moeller (markus_moeller at compuserve.com) 3 4dnl default prefix for ldap headers/libs 5ldapdir=/usr 6AC_ARG_WITH(ldap, 7 [ --without-ldap disable ldap support @<:@default=detect@:>@], 8 [LDAP=$withval]) 9 10AC_ARG_WITH(ldap-path, 11 [ --with-ldap-path=PATH specify ldap path], 12 [ldapdir=$withval]) 13 14if test x"$LDAP" != xno; then 15 unset ldapfail 16 17 if test x"$ldapdir" != xno; then 18 ac_ldap_cflags=-I$ldapdir/include 19 ac_ldap_libs=-L$ldapdir/lib 20 else 21 ac_ldap_cflags= 22 ac_ldap_libs= 23 fi 24 25 dnl any cflags values obtained from krb5-config? 26 if test x"${ac_ldap_cflags}" != x; then 27 CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$ac_ldap_cflags" 28 fi 29 30 dnl extract -L flags 31 if test x"${ac_ldap_libs}" != x; then 32 NPATH=`echo $ac_ldap_libs | xargs -n1 | egrep '^-L' | xargs echo` 33 LDFLAGS="${LDFLAGS}${LDFLAGS:+ }$NPATH" 34 fi 35 36 dnl need res_search, found in libresolv on e.g., Linux Fedora 13 37 AC_CHECK_LIB(resolv, main) 38 39 dnl look for ldap headers 40 AC_CHECK_HEADERS(ldap.h) 41 AC_CHECK_HEADERS(mozldap/ldap.h) 42 43 AC_CHECK_LIB(ldap, main) 44 if test x"${ac_cv_lib_ldap_main}" != xyes; then 45 AC_CHECK_LIB(pthread, main) 46 AC_CHECK_LIB(ldap60, main) 47 AC_CHECK_LIB(prldap60, main) 48 AC_CHECK_LIB(ssldap60, main) 49 fi 50 51 dnl do compile check 52 AC_MSG_CHECKING([for working ldap]) 53 AC_TRY_RUN([ 54#if HAVE_LDAP_H 55#include <ldap.h> 56#elif HAVE_MOZLDAP_LDAP_H 57#include <mozldap/ldap.h> 58#endif 59 60int 61main(void) 62{ 63 char *host=""; 64 int port; 65 66 ldap_init(host, port); 67 68 return 0; 69}], [unset no_ldap 70 AC_MSG_RESULT(yes)], 71 AC_MSG_RESULT(no)) 72 73 unset ldap_openldap 74 AC_MSG_CHECKING([for OpenLDAP]) 75 AC_TRY_RUN([ 76#if HAVE_LDAP_H 77#include <ldap.h> 78#endif 79#include <string.h> 80 81int 82main(void) 83{ 84 return strcmp(LDAP_VENDOR_NAME, "OpenLDAP"); 85} 86], [AC_DEFINE(HAVE_OPENLDAP, 1, [OpenLDAP support]) 87 AC_MSG_RESULT(yes) 88 ldap_openldap=t], 89 AC_MSG_RESULT(no)) 90 91 AC_MSG_CHECKING([for Sun LDAP SDK]) 92 AC_TRY_RUN([ 93#if HAVE_LDAP_H 94#include <ldap.h> 95#endif 96#include <string.h> 97 98int 99main(void) 100{ 101 return strcmp(LDAP_VENDOR_NAME, "Sun Microsystems Inc."); 102}], [AC_DEFINE(HAVE_SUN_LDAP_SDK, 1, [Sun LDAP SDK support]) 103 AC_MSG_RESULT(yes)], 104 AC_MSG_RESULT(no)) 105 106 AC_MSG_CHECKING([for Mozilla LDAP SDK]) 107 AC_TRY_RUN([ 108#if HAVE_LDAP_H 109#include <ldap.h> 110#elif HAVE_MOZLDAP_LDAP_H 111#include <mozldap/ldap.h> 112#endif 113#include <string.h> 114 115int 116main(void) 117{ 118 return strcmp(LDAP_VENDOR_NAME, "mozilla.org"); 119}], [AC_DEFINE(HAVE_MOZILLA_LDAP_SDK, 1, [Mozilla LDAP SDK support]) 120 AC_MSG_RESULT(yes)], 121 AC_MSG_RESULT(no)) 122 123dnl 124dnl Implementation dependent checks 125dnl 126 if test x"${ldap_openldap}" != x; then 127 AC_CHECK_HEADERS(lber.h) 128 AC_CHECK_LIB(lber, main) 129 fi 130 131dnl 132dnl Check for LDAP_REBINDPROC_CALLBACK 133dnl 134 if test x"${ac_cv_header_ldap_h}" = xyes; then 135 AC_EGREP_HEADER(LDAP_REBINDPROC_CALLBACK, ldap.h, 136 AC_DEFINE(HAVE_LDAP_REBINDPROC_CALLBACK, 1, [Define to 1 if you have LDAP_REBINDPROC_CALLBACK])) 137 elif test x"${ac_cv_header_mozldap_ldap_h}" = xyes; then 138 AC_EGREP_HEADER(LDAP_REBINDPROC_CALLBACK, mozldap/ldap.h, 139 AC_DEFINE(HAVE_LDAP_REBINDPROC_CALLBACK, 1, [Define to 1 if you have LDAP_REBINDPROC_CALLBACK])) 140 else 141 AC_MSG_CHECKING([for LDAP_REBINDPROC_CALLBACK]) 142 AC_DEFINE(HAVE_LDAP_REBINDPROC_CALLBACK, 0, [Define to 1 if you have LDAP_REBINDPROC_CALLBACK]) 143 AC_MSG_RESULT(no) 144 fi 145dnl 146dnl Check for LDAP_REBIND_PROC 147dnl 148 if test x"${ac_cv_header_ldap_h}" = xyes; then 149 AC_EGREP_HEADER(LDAP_REBIND_PROC, ldap.h, 150 AC_DEFINE(HAVE_LDAP_REBIND_PROC, 1, [Define to 1 if you have LDAP_REBIND_PROC])) 151 elif test x"${ac_cv_header_mozldap_ldap_h}" = xyes; then 152 AC_EGREP_HEADER(LDAP_REBIND_PROC, mozldap/ldap.h, 153 AC_DEFINE(HAVE_LDAP_REBIND_PROC, 1, [Define to 1 if you have LDAP_REBIND_PROC])) 154 else 155 AC_MSG_CHECKING([for LDAP_REBIND_PROC]) 156 AC_DEFINE(HAVE_LDAP_REBIND_PROC, 0, [Define to 1 if you have LDAP_REBIND_PROC]) 157 AC_MSG_RESULT(no) 158 fi 159dnl 160dnl Check for LDAP_REBIND_FUNCTION 161dnl 162 AC_EGREP_CPP(LDAP_REBIND_FUNCTION, [#define LDAP_REFERRALS 163#if HAVE_LDAP_H 164#include <ldap.h> 165#elif HAVE_MOZLDAP_LDAP_H 166#include <mozldap/ldap.h> 167#endif 168], 169 AC_DEFINE(HAVE_LDAP_REBIND_FUNCTION, 1, [Define to 1 if you have LDAP_REBIND_FUNCTION])) 170 171dnl 172dnl Check for LDAP_SCOPE_DEFAULT 173dnl 174 AC_MSG_CHECKING([for LDAP_SCOPE_DEFAULT]) 175 AC_TRY_RUN([ 176#if HAVE_LDAP_H 177#include <ldap.h> 178#elif HAVE_MOZLDAP_LDAP_H 179#include <mozldap/ldap.h> 180#endif 181 182int 183main(void) 184{ 185#ifdef LDAP_SCOPE_DEFAULT 186 return 0; 187#else 188 return 1; 189#endif 190}], [AC_DEFINE(HAVE_LDAP_SCOPE_DEFAULT, 1, [Define to 1 if you have LDAP_SCOPE_DEFAULT]) 191 AC_MSG_RESULT(yes)], 192 AC_MSG_RESULT(no)) 193 194dnl 195dnl Check for ldap_url_desc.lud_scheme 196dnl 197 AC_CHECK_MEMBER(struct ldap_url_desc.lud_scheme, 198 AC_DEFINE(HAVE_LDAP_URL_LUD_SCHEME, 1, [Define to 1 if you have LDAPURLDesc.lud_scheme]),, 199[#if HAVE_LDAP_H 200#include <ldap.h> 201#elif HAVE_MOZLDAP_LDAP_H 202#include <mozldap/ldap.h> 203#endif 204]) 205 206dnl 207dnl Check for ldapssl_client_init 208dnl 209 if test x"${ac_cv_lib_ldap_main}" = xyes; then 210 AC_CHECK_LIB(ldap, ldapssl_client_init, 211 AC_DEFINE(HAVE_LDAPSSL_CLIENT_INIT, 1, [Define to 1 if you have ldapssl_client_init]),) 212 elif test x"${ac_cv_lib_ssldap60_main}" = xyes; then 213 AC_CHECK_LIB(ssldap60, ldapssl_client_init, 214 AC_DEFINE(HAVE_LDAPSSL_CLIENT_INIT, 1, [Define to 1 if you have ldapssl_client_init]),) 215 else 216 AC_MSG_CHECKING([for ldapssl_client_init]) 217 AC_DEFINE(HAVE_LDAPSSL_CLIENT_INIT, 0, [Define to 1 if you have ldapssl_client_init]) 218 AC_MSG_RESULT(no) 219 fi 220dnl 221dnl Check for ldap_url_desc2str 222dnl 223 if test x"${ac_cv_lib_ldap_main}" = xyes; then 224 AC_CHECK_LIB(ldap, ldap_url_desc2str, 225 AC_DEFINE(HAVE_LDAP_URL_DESC2STR, 1, [Define to 1 if you have ldap_url_desc2str]),) 226 elif test x"${ac_cv_lib_ldap60_main}" = xyes; then 227 AC_CHECK_LIB(ldap60, ldap_url_desc2str, 228 AC_DEFINE(HAVE_LDAP_URL_DESC2STR, 1, [Define to 1 if you have ldap_url_desc2str]),) 229 else 230 AC_MSG_CHECKING([for ldap_url_desc2str]) 231 AC_DEFINE(HAVE_LDAP_URL_DESC2STR, 0, [Define to 1 if you have ldap_url_desc2str]) 232 AC_MSG_RESULT(no) 233 fi 234 235dnl 236dnl Check for ldap_url_parse 237dnl 238 if test x"${ac_cv_lib_ldap_main}" = xyes; then 239 AC_CHECK_LIB(ldap, ldap_url_parse, 240 AC_DEFINE(HAVE_LDAP_URL_PARSE, 1, [Define to 1 if you have ldap_url_parse]),) 241 elif test x"${ac_cv_lib_ldap60_main}" = xyes; then 242 AC_CHECK_LIB(ldap60, ldap_url_parse, 243 AC_DEFINE(HAVE_LDAP_URL_PARSE, 1, [Define to 1 if you have ldap_url_parse]),) 244 else 245 AC_MSG_CHECKING([for ldap_url_parse]) 246 AC_DEFINE(HAVE_LDAP_URL_PARSE, 0, [Define to 1 if you have ldap_url_parse]) 247 AC_MSG_RESULT(no) 248 fi 249fi 250