aboutsummaryrefslogblamecommitdiffstats
path: root/m4/evo_krb5_support.m4
blob: ba37e8196974d0196924ca706d29b0e373f8d2a2 (plain) (tree)
1
2
3
4
5
6
7
8
9



                                                                      



                                          
                    

                                                  
                                                      


                                                       
                                                    


                                                           
                                                  





                                          












                                            


                                              

















                                                                      




























































                                                                                                      
                                                                            




                                             
                                                                      







                                            
dnl EVO_KRB5_SUPPORT(default)
dnl Add --with-krb5, --with-krb5-libs and --with-krb5-include options.
dnl --with-krb5 defaults to the given value if not specified.
#serial 0.2
AC_DEFUN([EVO_KRB5_SUPPORT],[
    dnl ******************************
    dnl Kerberos
    dnl ******************************
    default="$1"
    AC_ARG_WITH([krb5],
        AS_HELP_STRING([--with-krb5=PATH],
        [Location of Kerberos 5 install dir]))

    AC_ARG_WITH([krb5-libs],
        AS_HELP_STRING([--with-krb5-libs=PATH],
        [Location of Kerberos 5 libraries]))

    AC_ARG_WITH([krb5-includes],
        AS_HELP_STRING([--with-krb5-includes=PATH],
        [Location of Kerberos 5 headers]))

    dnl ******************************
    dnl Kerberos 5
    dnl ******************************
    msg_krb5="no"
    AC_MSG_CHECKING([for Kerberos 5])
    with_krb5="${with_krb5:=$default}"
    case $with_krb5 in
        no|"")
            with_krb5=no
            ;;
        yes)
            with_krb5=/usr
            ;;
        *)
            with_krb5=$with_krb5
            ;;
    esac

    if test "x${with_krb5}" != "xno"; then
        LIBS_save="$LIBS"

        case $with_krb5_libs in
            yes|no|"")
                with_krb5_libs=$with_krb5/lib
                ;;
            *)
                with_krb5_libs=$with_krb5_libs
                ;;
        esac

        case $with_krb5_includes in
            yes|no|"")
                with_krb5_includes=$with_krb5/include
                ;;
            *)
                with_krb5_includes=$with_krb5_includes
                ;;
        esac

        mitlibs="-lkrb5 -lk5crypto -lcom_err -lgssapi_krb5"
        heimlibs="-lkrb5 -lcrypto -lasn1 -lcom_err -lroken -lgssapi"
        sunlibs="-lkrb5 -lgss"
        AC_CACHE_VAL([ac_cv_lib_kerberos5],
        [
            LIBS="$LIBS -L$with_krb5_libs $mitlibs"
            AC_LINK_IFELSE([AC_LANG_CALL([], [krb5_init_context])],
            [ac_cv_lib_kerberos5="$mitlibs"],
            [
                LIBS="$LIBS_save -L$with_krb5_libs $heimlibs"
                AC_LINK_IFELSE([AC_LANG_CALL([], [krb5_init_context])],
                [ac_cv_lib_kerberos5="$heimlibs"],
                [
                    LIBS="$LIBS_save -L$with_krb5_libs $sunlibs"
                    AC_LINK_IFELSE([AC_LANG_CALL([], [krb5_init_context])],
                    [ac_cv_lib_kerberos5="$sunlibs"], [ac_cv_lib_kerberos5="no"])
                ])
            ])
            LIBS="$LIBS_save"
        ])
        if test "$ac_cv_lib_kerberos5" != "no"; then
            AC_DEFINE(HAVE_KRB5,1,[Define if you have Krb5])
            if test "$ac_cv_lib_kerberos5" = "$mitlibs"; then
                AC_DEFINE(HAVE_MIT_KRB5,1,[Define if you have MIT Krb5])
                if test -z "$with_krb5_includes"; then
                    KRB5_CFLAGS="-I$with_krb5/include"
                else
                    KRB5_CFLAGS="-I$with_krb5_includes"
                fi
                msg_krb5="yes (MIT)"
            else
                if test "$ac_cv_lib_kerberos5" = "$heimlibs"; then
                    AC_DEFINE(HAVE_HEIMDAL_KRB5,1,[Define if you have Heimdal])
                    if test -z "$with_krb5_includes"; then
                        KRB5_CFLAGS="-I$with_krb5/include/heimdal"
                    else
                        KRB5_CFLAGS="-I$with_krb5_includes"
                    fi
                    msg_krb5="yes (Heimdal)"
                else
                    AC_DEFINE(HAVE_SUN_KRB5,1,[Define if you have Sun Kerberosv5])
                    if test -z "$with_krb5_includes"; then
                        KRB5_CFLAGS="-I$with_krb5/include/kerberosv5"
                    else
                        KRB5_CFLAGS="-I$with_krb5_includes"
                    fi
                    msg_krb5="yes (Sun)"
                fi
            fi
            KRB5_LIBS="-L$with_krb5_libs $ac_cv_lib_kerberos5"
        else
            AC_MSG_ERROR([You specified with krb5, but it was not found.])
        fi
    else
        msg_krb5="no"
    fi
    AC_MSG_RESULT([$msg_krb5])

    AM_CONDITIONAL(ENABLE_KRB5, [test "x$with_krb5" != "xno"])

    AC_CHECK_HEADER([et/com_err.h],
        [AC_DEFINE([HAVE_ET_COM_ERR_H], 1, [Have <et/com_err.h>])],,
        [[  #if HAVE_ET_COM_ERR_H
            #include <com_err.h>
            #endif
        ]])
    AC_CHECK_HEADER([com_err.h],
        [AC_DEFINE([HAVE_COM_ERR_H], 1, [Have <com_err.h>])],,
        [[  #if HAVE_COM_ERR_H
            #include <com_err.h>
            #endif
        ]])

    AC_SUBST(KRB5_CFLAGS)
    AC_SUBST(KRB5_LIBS)
])