Conf file is now in source tree
[mod_auth_kerb.cvs/.git] / configure.in
1 AC_REVISION($Revision$)
2 AC_PREREQ(2.57)
3 AC_INIT(mod_auth_gssapi, 1.0, modauthkerb-developers@lists.sourceforge.net)
4 AC_CONFIG_SRCDIR([mod_auth_gssapi.c])
5 AC_CONFIG_HEADER([config.h])
6
7 # Checks for programs.
8 AC_PROG_CC
9 AC_PROG_MAKE_SET
10 AC_PROG_INSTALL
11
12 # Checks for header files.
13 AC_HEADER_STDC
14 AC_CHECK_HEADERS([limits.h netdb.h stddef.h stdlib.h string.h unistd.h])
15
16 # Checks for typedefs, structures, and compiler characteristics.
17 #AC_C_CONST
18 AC_TYPE_SIZE_T
19 AC_STRUCT_TM
20
21 #
22 # GSS-API enviroment
23 #
24 SPNEGO_SRCS=""
25
26 AC_ARG_WITH(gss,
27   AC_HELP_STRING([--with-gss=dir],[use gss in dir]),
28   [ with_gss="$withval" ])
29 if test "x$with_gss" = "xyes" ; then
30   with_gss=""
31 fi
32
33 ac_save_CPPFLAGS="$CPPFLAGS"
34 ac_save_LDFLAGS="$LDFLAGS"
35 ac_save_LIBS="$LIBS"
36    
37 if test -z "$GSS_CPPFLAGS"; then
38    TMP_GSS_CPPFLAGS=""
39    if test -n "with_gss"; then
40       TMP_GSS_CPPFLAGS="-I$with_gss/include"
41    fi
42    CPPFLAGS="$CPPFLAGS $TMP_GSS_CPPFLAGS"
43    AC_CHECK_HEADERS(gssapi.h, 
44                     [ GSS_CPPFLAGS="$TMP_GSS_CPPFLAGS" ])
45    if test -z "$GSS_CPPFLAGS"; then
46       AC_CHECK_HEADERS(gssapi/gssapi.h, 
47                        [ GSS_CPPFLAGS="$TMP_GSS_CPPFLAGS" ])
48    fi
49    CPPFLAGS="$ac_save_CPPFLAGS" 
50 fi
51
52 #if test "x$with_gss"="x"; then
53 #      tmp_lf_inc=""
54 #   else
55 #      tmp_lf_inc="-L"
56 #fi
57 if test -z "$GSS_LDFLAGS"; then
58    TMP_GSS_LDFLAGS=""
59    if test -n "$with_gss"; then
60 # XXX think about lib64, etc
61       TMP_GSS_LDFLAGS="-L $with_gss/lib"
62    fi
63 fi
64 LIBS="$LIBS $TMP_GSS_LDFLAGS"
65 AC_CHECK_LIB(
66         [gssapi_krb5], gss_accept_sec_context,
67         [found_gssapi=yes
68                 LIBS="-lgssapi_krb5 $LIBS"],
69         [AC_CHECK_LIB(gssapi, gss_accept_sec_context, [ found_gssapi=yes
70                 LIBS="$LIBS -lgssapi"],
71                 [LIBS="$ac_save_LIBS"])])
72 if test -z "$found_gssapi"; then
73    AC_MSG_ERROR([failed to find a GSS-API library])
74 fi
75
76 # If SPNEGO is supported by the gssapi libraries, we shouln't build our support.
77 # SPNEGO is supported as of Heimdal 0.7, and MIT 1.5.
78 gssapi_supports_spnego=""
79 AC_MSG_CHECKING(whether the GSSAPI libraries support SPNEGO)
80
81 ac_save_CFLAGS="$CFLAGS"
82 CFLAGS="$GSS_CPPFLAGS"
83
84 ac_save_LDFLAGS=$LDFLAGS
85 LDFLAGS="$GSS_LDFLAGS"
86 # to make sure the testing binary can be launched:
87 if test -n "$with_gss"; then
88    LDFLAGS="$LDFLAGS -Wl,-rpath -Wl,$with_gss/lib"
89 fi
90      AC_TRY_RUN([
91 #include <string.h>
92 #include <gssapi.h>
93 int main(int argc, char** argv)
94 {
95        OM_uint32 major_status, minor_status;
96        gss_OID_set mech_set;
97        gss_OID_desc spnego_oid_desc = {6, (void *)"\x2b\x06\x01\x05\x05\x02"};
98        int SPNEGO = 0;
99                                                                                
100        major_status = gss_indicate_mechs(&minor_status, &mech_set);
101        if (GSS_ERROR(major_status))
102                return 1;
103        else {
104                unsigned int i;
105                for (i=0; i < mech_set->count && !SPNEGO; i++) {
106                        gss_OID tmp_oid = &mech_set->elements[i];
107                       if (tmp_oid->length == spnego_oid_desc.length &&
108                            !memcmp(tmp_oid->elements, spnego_oid_desc.elements, 
109                                    tmp_oid->length)) {
110                                SPNEGO = 1;
111                                break;
112                        }
113                }
114                gss_release_oid_set(&minor_status, &mech_set);
115                return (!SPNEGO);
116        }
117 }],
118      [ if test $? -eq 0; then 
119          AC_MSG_RESULT(yes)
120          AC_DEFINE(GSSAPI_SUPPORTS_SPNEGO,1,[GSS-API implementation has its own SPNEGO])
121          gssapi_supports_spnego=yes 
122        else
123          AC_MSG_RESULT(no)
124        fi],
125      [ AC_MSG_RESULT(no)]
126      )
127
128 CFLAGS="$ac_save_CFLAGS"
129 LDFLAGS="$ac_save_LDFLAGS"
130
131 if test -z "$gssapi_supports_spnego"; then
132    SPNEGO_SRCS="\
133                 spnegokrb5/asn1_MechType.c         \
134                 spnegokrb5/asn1_MechTypeList.c     \
135                 spnegokrb5/asn1_ContextFlags.c     \
136                 spnegokrb5/asn1_NegTokenInit.c     \
137                 spnegokrb5/asn1_NegTokenTarg.c     \
138                 spnegokrb5/der_get.c               \
139                 spnegokrb5/der_put.c               \
140                 spnegokrb5/der_free.c              \
141                 spnegokrb5/der_length.c            \
142                 spnegokrb5/der_copy.c              \
143                 spnegokrb5/timegm.c                \
144                 spnegokrb5/init_sec_context.c      \
145                 spnegokrb5/accept_sec_context.c    \
146                 spnegokrb5/encapsulate.c           \
147                 spnegokrb5/decapsulate.c           \
148                 spnegokrb5/external.c"
149 fi
150 AC_SUBST(GSS_CPPFLAGS)
151 AC_SUBST(GSS_LDFLAGS)
152 AC_SUBST(SPNEGO_SRCS)
153
154 #
155 # Apache enviroment
156 #
157 AC_ARG_WITH(apache,
158   AC_HELP_STRING([--with-apache=dir],[use apache in dir]),
159   [ with_apache="$withval" ])
160
161 AC_PATH_PROG([APXS], [apxs], [], [$with_apache/bin:$with_apache/sbin:$PATH])
162 if test -z "$APXS"; then
163    AC_PATH_PROG([APXS], [apxs2], [], [$with_apache/bin:$with_apache/sbin:$PATH])
164    if test -z "$APXS"; then
165       AC_MSG_ERROR([failed to find apache apxs executable])
166    fi
167 fi
168 AC_SUBST(APXS)
169 AC_SUBST(PACKAGE_VERSION)
170 AC_SUBST(PACKAGE_TARNAME)
171
172
173 AC_CONFIG_FILES([Makefile])
174
175 AC_OUTPUT