dnl checking for kerberos 4 libraries (and DES) AC_DEFUN([SASL_DES_CHK], [ AC_ARG_WITH(des, [ --with-des=DIR with DES (look in DIR) [yes] ], with_des=$withval, with_des=yes) LIB_DES="" if test "$with_des" != no; then if test -d $with_des; then CPPFLAGS="$CPPFLAGS -I${with_des}/include" LDFLAGS="$LDFLAGS -L${with_des}/lib" fi if test "$with_openssl" != no; then dnl check for openssl installing -lcrypto, then make vanilla check AC_CHECK_LIB(crypto, des_cbc_encrypt, [ AC_CHECK_HEADER(openssl/des.h, [AC_DEFINE(WITH_SSL_DES,[],[Use OpenSSL DES Implementation]) LIB_DES="-lcrypto"; with_des=yes], with_des=no)], with_des=no, $LIB_RSAREF) dnl same test again, different symbol name if test "$with_des" = no; then AC_CHECK_LIB(crypto, DES_cbc_encrypt, [ AC_CHECK_HEADER(openssl/des.h, [AC_DEFINE(WITH_SSL_DES,[],[Use OpenSSL DES Implementation]) LIB_DES="-lcrypto"; with_des=yes], with_des=no)], with_des=no, $LIB_RSAREF) fi fi if test "$with_des" = no; then AC_CHECK_LIB(des, des_cbc_encrypt, [LIB_DES="-ldes"; with_des=yes], with_des=no) fi if test "$with_des" = no; then AC_CHECK_LIB(des425, des_cbc_encrypt, [LIB_DES="-ldes425"; with_des=yes], with_des=no) fi if test "$with_des" = no; then AC_CHECK_LIB(des524, des_cbc_encrypt, [LIB_DES="-ldes524"; with_des=yes], with_des=no) fi if test "$with_des" = no; then dnl if openssl is around, we might be able to use that for des dnl if openssl has been compiled with the rsaref2 libraries, dnl we need to include the rsaref libraries in the crypto check LIB_RSAREF="" AC_CHECK_LIB(rsaref, RSAPublicEncrypt, LIB_RSAREF="-lRSAglue -lrsaref"; cmu_have_rsaref=yes, cmu_have_rsaref=no) AC_CHECK_LIB(crypto, des_cbc_encrypt, [ AC_CHECK_HEADER(openssl/des.h, [AC_DEFINE(WITH_SSL_DES,[],[Use OpenSSL DES Implementation]) LIB_DES="-lcrypto"; with_des=yes], with_des=no)], with_des=no, $LIB_RSAREF) fi fi if test "$with_des" != no; then AC_DEFINE(WITH_DES,[],[Use DES]) fi AC_SUBST(LIB_DES) ]) AC_DEFUN([SASL_KERBEROS_V4_CHK], [ AC_REQUIRE([SASL_DES_CHK]) AC_ARG_ENABLE(krb4, [ --enable-krb4 enable KERBEROS_V4 authentication [[no]] ], krb4=$enableval, krb4=no) if test "$krb4" != no; then dnl In order to compile kerberos4, we need libkrb and libdes. dnl (We've already gotten libdes from SASL_DES_CHK) dnl we might need -lresolv for kerberos AC_CHECK_LIB(resolv,res_search) dnl if we were ambitious, we would look more aggressively for the dnl krb4 install if test -d ${krb4}; then AC_CACHE_CHECK(for Kerberos includes, cyrus_krbinclude, [ for krbhloc in include/kerberosIV include/kerberos include do if test -f ${krb4}/${krbhloc}/krb.h ; then cyrus_krbinclude=${krb4}/${krbhloc} break fi done ]) if test -n "${cyrus_krbinclude}"; then CPPFLAGS="$CPPFLAGS -I${cyrus_krbinclude}" fi LDFLAGS="$LDFLAGS -L$krb4/lib" fi if test "$with_des" != no; then AC_CHECK_HEADER(krb.h, [ AC_CHECK_LIB(com_err, com_err, [ AC_CHECK_LIB(krb, krb_mk_priv, [COM_ERR="-lcom_err"; SASL_KRB_LIB="-lkrb"; krb4lib="yes"], krb4lib=no, $LIB_DES -lcom_err)], [ AC_CHECK_LIB(krb, krb_mk_priv, [COM_ERR=""; SASL_KRB_LIB="-lkrb"; krb4lib="yes"], krb4lib=no, $LIB_DES)])], krb4="no") if test "$krb4" != "no" -a "$krb4lib" = "no"; then AC_CHECK_LIB(krb4, krb_mk_priv, [COM_ERR=""; SASL_KRB_LIB="-lkrb4"; krb4=yes], krb4=no, $LIB_DES) fi if test "$krb4" = no; then AC_WARN(No Kerberos V4 found) fi else AC_WARN(No DES library found for Kerberos V4 support) krb4=no fi fi if test "$krb4" != no; then cmu_save_LIBS="$LIBS" LIBS="$LIBS $SASL_KRB_LIB" AC_CHECK_FUNCS(krb_get_err_text) LIBS="$cmu_save_LIBS" fi AC_MSG_CHECKING(KERBEROS_V4) if test "$krb4" != no; then AC_MSG_RESULT(enabled) SASL_MECHS="$SASL_MECHS libkerberos4.la" SASL_STATIC_SRCS="$SASL_STATIC_SRCS ../plugins/kerberos4.c" SASL_STATIC_OBJS="$SASL_STATIC_OBJS kerberos4.o" AC_DEFINE(STATIC_KERBEROS4,[],[User KERBEROS_V4 Staticly]) AC_DEFINE(HAVE_KRB,[],[Do we have Kerberos 4 Support?]) SASL_KRB_LIB="$SASL_KRB_LIB $LIB_DES $COM_ERR" else AC_MSG_RESULT(disabled) fi AC_SUBST(SASL_KRB_LIB) ])