# gssapi.m4: Find GSSAPI libraries in either Heimdal or MIT implementations # Brendan Cully 20010529 dnl MUTT_AM_PATH_GSSAPI(PREFIX) dnl Search for a GSSAPI implementation in the standard locations plus PREFIX, dnl if it is set and not "yes". dnl Defines GSSAPI_CFLAGS and GSSAPI_LIBS if found. dnl Defines GSSAPI_IMPL to "Heimdal", "MIT", or "OldMIT", or "none" if not found AC_DEFUN([MUTT_AM_PATH_GSSAPI], [ GSSAPI_PREFIX=[$]$1 GSSAPI_IMPL="none" saved_CPPFLAGS="$CPPFLAGS" saved_LDFLAGS="$LDFLAGS" saved_LIBS="$LIBS" dnl First try krb5-config if test "$GSSAPI_PREFIX" != "yes" then krb5_path="$GSSAPI_PREFIX/bin" else krb5_path="$PATH" fi AC_PATH_PROG(KRB5CFGPATH, krb5-config, none, $krb5_path) if test "$KRB5CFGPATH" != "none" then GSSAPI_CFLAGS="$CPPFLAGS `$KRB5CFGPATH --cflags gssapi`" GSSAPI_LIBS="$MUTTLIBS `$KRB5CFGPATH --libs gssapi`" case "`$KRB5CFGPATH --version`" in "Kerberos 5 "*) GSSAPI_IMPL="MIT";; ?eimdal*) GSSAPI_IMPL="Heimdal";; *) GSSAPI_IMPL="Unknown";; esac else dnl No krb5-config, run the old code if test "$GSSAPI_PREFIX" != "yes" then GSSAPI_CFLAGS="-I$GSSAPI_PREFIX/include" GSSAPI_LDFLAGS="-L$GSSAPI_PREFIX/lib" CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS" LDFLAGS="$LDFLAGS $GSSAPI_LDFLAGS" fi dnl New MIT kerberos V support AC_CHECK_LIB(gssapi_krb5, gss_init_sec_context, [ GSSAPI_IMPL="MIT", GSSAPI_LIBS="$GSSAPI_LDFLAGS -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err" ],, -lkrb5 -lk5crypto -lcom_err) dnl Heimdal kerberos V support if test "$GSSAPI_IMPL" = "none" then AC_CHECK_LIB(gssapi, gss_init_sec_context, [ GSSAPI_IMPL="Heimdal" GSSAPI_LIBS="$GSSAPI_LDFLAGS -lgssapi -lkrb5 -ldes -lasn1 -lroken" GSSAPI_LIBS="$GSSAPI_LIBS -lcrypt -lcom_err" ],, -lkrb5 -ldes -lasn1 -lroken -lcrypt -lcom_err) fi dnl Old MIT Kerberos V dnl Note: older krb5 distributions use -lcrypto instead of dnl -lk5crypto, which collides with OpenSSL. One way of dealing dnl with that is to extract all objects from krb5's libcrypto dnl and from openssl's libcrypto into the same directory, then dnl to create a new libcrypto from these. if test "$GSSAPI_IMPL" = "none" then AC_CHECK_LIB(gssapi_krb5, g_order_init, [ GSSAPI_IMPL="OldMIT", GSSAPI_LIBS="$GSSAPI_LDFLAGS -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err" ],, -lkrb5 -lcrypto -lcom_err) fi fi CPPFLAGS="$saved_CPPFLAGS" LDFLAGS="$saved_LDFLAGS" LIBS="$saved_LIBS" ])