aboutsummaryrefslogtreecommitdiffstats
path: root/m4/evo_krb5_support.m4
blob: fd27581313e952caa741fca88acde1ec52c48e42 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#serial 0.1
AC_DEFUN([EVO_KRB5_SUPPORT],[
    dnl ******************************
    dnl Kerberos
    dnl ******************************
    AC_ARG_WITH([krb5],
        AS_HELP_STRING([--with-krb5=PATH],
        [Location of Kerberos 5 install dir]),
        [with_krb5="$withval"], [with_krb5="no"])

    AC_ARG_WITH([krb5-libs],
        AS_HELP_STRING([--with-krb5-libs=PATH],
        [Location of Kerberos 5 libraries]),
        [with_krb5_libs="$withval"], [with_krb5_libs="$with_krb5/lib"])

    AC_ARG_WITH([krb5-includes],
        AS_HELP_STRING([--with-krb5-includes=PATH],
        [Location of Kerberos 5 headers]),
        [with_krb5_includes="$withval"], [with_krb5_includes="$with_krb5/include"])

    dnl ******************************
    dnl Kerberos 5
    dnl ******************************
    msg_krb5="no"
    AC_MSG_CHECKING([for Kerberos 5])
    if test "x${with_krb5}" != "xno"; then
        LIBS_save="$LIBS"

        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/comm_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 <comm_err.h>])],,
        [[  #if HAVE_COM_ERR_H
            #include <com_err.h>
            #endif
        ]])

    AC_SUBST(KRB5_CFLAGS)
    AC_SUBST(KRB5_LIBS)
])