diff options
author | Daniel Stenberg <daniel@haxx.se> | 2007-08-11 20:57:54 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2007-08-11 20:57:54 +0000 |
commit | d0edb478964cb5bf7446c34d5ac1e9d34dc5ca63 (patch) | |
tree | 3586035627505068f2653da29b66d1201d3d5a8e /configure.ac | |
parent | b238e0b1b4e8f3e5c4e9c0d7d8c565e3776b0999 (diff) |
Patrick Monnerat modified the LDAP code and approach in curl. Starting now,
the configure script checks for openldap and friends and we link with those
libs just like we link all other third party libraries, and we no longer
dlopen() those libraries. Our private header file lib/ldap.h was renamed to
lib/curl_ldap.h due to this. I set a tag in CVS (curl-7_17_0-preldapfix)
just before this commit, just in case.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 62 |
1 files changed, 43 insertions, 19 deletions
diff --git a/configure.ac b/configure.ac index a3cf7ecea..f03a81c78 100644 --- a/configure.ac +++ b/configure.ac @@ -89,6 +89,7 @@ dnl initialize all the info variables curl_manual_msg="no (--enable-manual)" curl_verbose_msg="enabled (--disable-verbose)" curl_sspi_msg="no (--enable-sspi)" + curl_ldap_msg="no (--enable-ldap / --with-ldap-lib / --with-lber-lib)" dnl dnl Save anything in $LIBS for later @@ -500,55 +501,79 @@ AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]), AC_MSG_RESULT(no) ) -dnl dl lib? -AC_CHECK_FUNC(dlclose, , [ AC_CHECK_LIB(dl, dlopen) ]) - dnl ********************************************************************** -dnl Check for the name of dynamic OpenLDAP libraries +dnl Check for LDAP dnl ********************************************************************** LDAPLIBNAME="" AC_ARG_WITH(ldap-lib, -AC_HELP_STRING([--with-ldap-lib=libname],[Specify name of dynamic ldap lib file]), +AC_HELP_STRING([--with-ldap-lib=libname],[Specify name of ldap lib file]), [LDAPLIBNAME="$withval"]) LBERLIBNAME="" AC_ARG_WITH(lber-lib, -AC_HELP_STRING([--with-lber-lib=libname],[Specify name of dynamic lber lib file]), +AC_HELP_STRING([--with-lber-lib=libname],[Specify name of lber lib file]), [LBERLIBNAME="$withval"]) if test x$CURL_DISABLE_LDAP != x1 ; then if test -z "$LDAPLIBNAME" ; then case $host in - *-*-cygwin | *-*-mingw* | *-*-pw32*) + *-*-cygwin* | *-*-mingw* | *-*-pw32*) dnl Windows uses a single and unique OpenLDAP DLL name - LDAPLIBNAME="wldap32.dll" + LDAPLIBNAME="wldap32" LBERLIBNAME="no" ;; esac fi if test "$LDAPLIBNAME" ; then - AC_DEFINE_UNQUOTED(DL_LDAP_FILE, "$LDAPLIBNAME") - AC_MSG_CHECKING([name of dynamic library ldap]) - AC_MSG_RESULT($LDAPLIBNAME) + AC_CHECK_LIB("$LDAPLIBNAME", ldap_init,, [ + AC_MSG_WARN(["$LDAPLIBNAME" is not an LDAP library: LDAP disabled]) + AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP]) + AC_SUBST(CURL_DISABLE_LDAP, [1])]) else dnl Try to find the right ldap library name for this system - CURL_DLLIB_NAME(DL_LDAP_FILE, ldap) + AC_SEARCH_LIBS(ldap_init, [ldap],, [ + AC_MSG_WARN([Cannot find LDAP library: LDAP disabled]) + AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP]) + AC_SUBST(CURL_DISABLE_LDAP, [1])]) fi +fi + +if test x$CURL_DISABLE_LDAP != x1 ; then if test "$LBERLIBNAME" ; then - dnl If name is "no" then don't define this variable at all + dnl If name is "no" then don't define this library at all dnl (it's only needed if libldap.so's dependencies are broken). if test "$LBERLIBNAME" != "no" ; then - AC_DEFINE_UNQUOTED(DL_LBER_FILE, "$LBERLIBNAME") + AC_CHECK_LIB("$LBERLIBNAME", ber_free,, [ + AC_MSG_WARN(["$LBERLIBNAME" is not an LBER library: LDAP disabled]) + AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP]) + AC_SUBST(CURL_DISABLE_LDAP, [1])]) fi - AC_MSG_CHECKING([name of dynamic library lber]) - AC_MSG_RESULT($LBERLIBNAME) else dnl Try to find the right lber library name for this system - CURL_DLLIB_NAME(DL_LBER_FILE, lber) + AC_SEARCH_LIBS(ber_free, [lber],, [ + AC_MSG_WARN([Cannot find a library defining ber_free(): LDAP disabled]) + AC_DEFINE(CURL_DISABLE_LDAP, 1, [to disable LDAP]) + AC_SUBST(CURL_DISABLE_LDAP, [1])]) + fi +fi + +if test x$CURL_DISABLE_LDAP != x1 ; then + AC_CHECK_FUNCS([ldap_url_parse]) + + if test "$LDAPLIBNAME" = "wldap32"; then + curl_ldap_msg="yes (winldap)" + AC_DEFINE(CURL_LDAP_WIN, 1, [Use W$ LDAP implementation]) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_DEFINE(CURL_LDAP_HYBRID, 1, [W$ LDAP with non-W$ compiler]) + ;; + esac + else + curl_ldap_msg="yes (OpenLDAP)" fi fi @@ -1716,7 +1741,6 @@ AC_CHECK_HEADERS( termio.h \ sgtty.h \ fcntl.h \ - dlfcn.h \ alloca.h \ time.h \ io.h \ @@ -1858,7 +1882,6 @@ AC_CHECK_FUNCS( strtoll \ strlcat \ getpwuid \ geteuid \ - dlopen \ utime \ sigsetjmp \ basename \ @@ -2363,4 +2386,5 @@ AC_MSG_NOTICE([Configured to build curl/libcurl: Verbose errors: ${curl_verbose_msg} SSPI support: ${curl_sspi_msg} ca cert path: ${ca} + LDAP support: ${curl_ldap_msg} ]) |