fool gssapi symbol tests into working with Heimdal and MIT
[mech_eap.git] / acinclude.m4
1 dnl Based on the one from the Boinc project by Reinhard
2
3 AC_DEFUN([AX_CHECK_KRB5],
4 [AC_MSG_CHECKING(for GSS-API and Kerberos implementation)
5 KRB5_DIR=
6 found_krb5="no"
7 AC_ARG_WITH(krb5,
8     AC_HELP_STRING([--with-krb5],
9        [Use krb5 (in specified installation directory)]),
10     [check_krb5_dir="$withval"],
11     [check_krb5_dir=])
12 for dir in $check_krb5_dir $prefix /usr /usr/local ; do
13    krb5dir="$dir"
14    if test -x "$dir/bin/krb5-config"; then
15      found_krb5="yes";
16      KRB5_CFLAGS=`$dir/bin/krb5-config gssapi --cflags`;
17      KRB5_LIBS=`$dir/bin/krb5-config gssapi --libs`;
18      COMPILE_ET="$dir/bin/compile_et";
19      break;
20    fi
21 done
22 AC_MSG_RESULT($found_krb5)
23 if test x_$found_krb5 != x_yes; then
24    AC_MSG_ERROR([
25 ----------------------------------------------------------------------
26   Cannot find GSS-API/Kerberos libraries.
27
28   Please install MIT or Heimdal or specify installation directory with
29   --with-krb5=(dir).
30 ----------------------------------------------------------------------
31 ])
32 else
33         printf "Kerberos found in $krb5dir\n";
34         AC_SUBST(KRB5_CFLAGS)
35         AC_SUBST(KRB5_LIBS)
36         AC_SUBST(COMPILE_ET)
37         AC_CHECK_LIB(krb5, GSS_C_NT_COMPOSITE_EXPORT, [AC_DEFINE_UNQUOTED([HAVE_GSS_C_NT_COMPOSITE_EXPORT], 1, [Define if GSS-API library supports recent naming extensions draft])], [], "$KRB5_LIBS")
38         AC_CHECK_LIB(krb5, gss_inquire_attrs_for_mech, [AC_DEFINE_UNQUOTED([HAVE_GSS_INQUIRE_ATTRS_FOR_MECH], 1, [Define if GSS-API library supports RFC 5587])], [], "$KRB5_LIBS")
39         AC_CHECK_LIB(krb5, gss_krb5_import_cred, [AC_DEFINE_UNQUOTED([HAVE_GSS_KRB5_IMPORT_CRED], 1, [Define if GSS-API library supports gss_krb5_import_cred])], [], "$KRB5_LIBS")
40         AC_CHECK_LIB(krb5, heimdal_version, [AC_DEFINE_UNQUOTED([HAVE_HEIMDAL_VERSION], 1, [Define if building against Heimdal Kerberos implementation]), heimdal=yes], [heimdal=no], "$KRB5_LIBS")
41         AM_CONDITIONAL(HEIMDAL, test "x$heimdal" != "xno")
42 fi
43 ])dnl
44
45 AC_DEFUN([AX_CHECK_EAP],
46 [AC_MSG_CHECKING(for EAP implementation)
47 EAP_DIR=
48 found_eap="no"
49 AC_ARG_WITH(eap,
50     AC_HELP_STRING([--with-eap],
51        [Use eap (in specified installation directory)]),
52     [check_eap_dir="$withval"],
53     [check_eap_dir=])
54 for dir in $check_eap_dir $prefix /usr /usr/local ../libeap ; do
55    eapdir="$dir"
56    if test -f "$dir/src/eap_peer/eap.h"; then
57      found_eap="yes";
58      EAP_DIR="${eapdir}"
59      EAP_CFLAGS="-I$eapdir/src/common -I$eapdir/src -I$eapdir/src/utils";
60      break;
61    fi
62 done
63 AC_MSG_RESULT($found_eap)
64 if test x_$found_eap != x_yes; then
65    AC_MSG_ERROR([
66 ----------------------------------------------------------------------
67   Cannot find EAP libraries.
68
69   Please install wpa_supplicant or specify installation directory with
70   --with-eap=(dir).
71 ----------------------------------------------------------------------
72 ])
73 else
74         printf "EAP found in $eapdir\n";
75         EAP_CFLAGS="$EAP_CFLAGS \
76 -DEAP_TLS \
77 -DEAP_PEAP \
78 -DEAP_TTLS \
79 -DEAP_MD5 \
80 -DEAP_MSCHAPv2 \
81 -DEAP_GTC \
82 -DEAP_OTP \
83 -DEAP_LEAP \
84 -DEAP_PSK \
85 -DEAP_PAX \
86 -DEAP_SAKE \
87 -DEAP_GPSK \
88 -DEAP_GPSK_SHA256 \
89 -DEAP_SERVER_IDENTITY \
90 -DEAP_SERVER_TLS \
91 -DEAP_SERVER_PEAP \
92 -DEAP_SERVER_TTLS \
93 -DEAP_SERVER_MD5 \
94 -DEAP_SERVER_MSCHAPV2 \
95 -DEAP_SERVER_GTC \
96 -DEAP_SERVER_PSK \
97 -DEAP_SERVER_PAX \
98 -DEAP_SERVER_SAKE \
99 -DEAP_SERVER_GPSK \
100 -DEAP_SERVER_GPSK_SHA256 \
101 -DIEEE8021X_EAPOL";
102         EAP_LIBS="-leap -lutils -lcrypto -ltls";
103         EAP_LDFLAGS="-L$eapdir/eap_example -L$eapdir/src/utils -L$eapdir/src/crypto -L$eapdir/src/tls";
104         AC_SUBST(EAP_CFLAGS)
105         AC_SUBST(EAP_LDFLAGS)
106         AC_SUBST(EAP_LIBS)
107 fi
108 ])dnl
109
110 AC_DEFUN([AX_CHECK_SHIBSP],
111 [AC_MSG_CHECKING(for Shibboleth implementation)
112 SHIBSP_DIR=
113 found_shibsp="no"
114 AC_ARG_WITH(shibsp,
115     AC_HELP_STRING([--with-shibsp],
116        [Use shibspboleth (in specified installation directory)]),
117     [check_shibsp_dir="$withval"],
118     [check_shibsp_dir=])
119 for dir in $check_shibsp_dir $prefix /usr /usr/local ; do
120    shibspdir="$dir"
121    if test -f "$dir/include/shibsp/SPConfig.h"; then
122      found_shibsp="yes";
123      SHIBSP_DIR="${shibspdir}"
124      SHIBSP_CXXFLAGS="-I$shibspdir/include";
125      break;
126    fi
127 done
128 AC_MSG_RESULT($found_shibsp)
129 if test x_$found_shibsp != x_yes; then
130    AC_MSG_ERROR([
131 ----------------------------------------------------------------------
132   Cannot find Shibboleth/OpenSAML libraries.
133
134   Please install Shibboleth or specify installation directory with
135   --with-shibsp=(dir).
136 ----------------------------------------------------------------------
137 ])
138 else
139         printf "Shibboleth found in $shibspdir\n";
140         SHIBSP_LIBS="-lshibsp  -lsaml -lxml-security-c -lxmltooling -lxerces-c";
141         SHIBSP_LDFLAGS="-L$shibspdir/lib";
142         AC_SUBST(SHIBSP_CXXFLAGS)
143         AC_SUBST(SHIBSP_LDFLAGS)
144         AC_SUBST(SHIBSP_LIBS)
145 fi
146 ])dnl
147
148 AC_DEFUN([AX_CHECK_SHIBRESOLVER],
149 [AC_MSG_CHECKING(for Shibboleth resolver implementation)
150 SHIBRESOLVER_DIR=
151 found_shibresolver="no"
152 AC_ARG_WITH(shibresolver,
153     AC_HELP_STRING([--with-shibresolver],
154        [Use Shibboleth resolver (in specified installation directory)]),
155     [check_shibresolver_dir="$withval"],
156     [check_shibresolver_dir=])
157 for dir in $check_shibresolver_dir $prefix /usr /usr/local ; do
158    shibresolverdir="$dir"
159    if test -f "$dir/include/shibresolver/resolver.h"; then
160      found_shibresolver="yes";
161      SHIBRESOLVER_DIR="${shibresolverdir}"
162      SHIBRESOLVER_CXXFLAGS="-I$shibresolverdir/include";
163      break;
164    fi
165 done
166 AC_MSG_RESULT($found_shibresolver)
167 if test x_$found_shibresolver != x_yes; then
168    AC_MSG_ERROR([
169 ----------------------------------------------------------------------
170   Cannot find Shibboleth resolver libraries.
171
172   Please install Shibboleth or specify installation directory with
173   --with-shibresolver=(dir).
174 ----------------------------------------------------------------------
175 ])
176 else
177         printf "Shibboleth resolver found in $shibresolverdir\n";
178         SHIBRESOLVER_LIBS="-lshibresolver";
179         SHIBRESOLVER_LDFLAGS="-L$shibresolverdir/lib";
180         AC_SUBST(SHIBRESOLVER_CXXFLAGS)
181         AC_SUBST(SHIBRESOLVER_LDFLAGS)
182         AC_SUBST(SHIBRESOLVER_LIBS)
183 fi
184 ])dnl
185
186 AC_DEFUN([AX_CHECK_RADSEC],
187 [AC_MSG_CHECKING(for radsec)
188 RADSEC_DIR=
189 found_radsec="no"
190 AC_ARG_WITH(radsec,
191     AC_HELP_STRING([--with-radsec],
192        [Use radsec (in specified installation directory)]),
193     [check_radsec_dir="$withval"],
194     [check_radsec_dir=])
195 for dir in $check_radsec_dir $prefix /usr /usr/local ; do
196    radsecdir="$dir"
197    if test -f "$dir/include/radsec/radsec.h"; then
198      found_radsec="yes";
199      RADSEC_DIR="${radsecdir}"
200      RADSEC_CFLAGS="-I$radsecdir/include";
201      break;
202    fi
203 done
204 AC_MSG_RESULT($found_radsec)
205 if test x_$found_radsec != x_yes; then
206    AC_MSG_ERROR([
207 ----------------------------------------------------------------------
208   Cannot find radsec libraries.
209
210   Please install libradsec or specify installation directory with
211   --with-radsec=(dir).
212 ----------------------------------------------------------------------
213 ])
214 else
215         printf "radsec found in $radsecdir\n";
216         RADSEC_LIBS="-lradsec";
217         RADSEC_LDFLAGS="-L$radsecdir/lib";
218         AC_SUBST(RADSEC_CFLAGS)
219         AC_SUBST(RADSEC_LDFLAGS)
220         AC_SUBST(RADSEC_LIBS)
221 fi
222 ])dnl
223
224 AC_DEFUN([AX_CHECK_JANSSON],
225 [AC_MSG_CHECKING(for jansson)
226 JANSSON_DIR=
227 found_jansson="no"
228 AC_ARG_WITH(jansson,
229     AC_HELP_STRING([--with-jansson],
230        [Use jansson (in specified installation directory)]),
231     [check_jansson_dir="$withval"],
232     [check_jansson_dir=])
233 for dir in $check_jansson_dir $prefix /usr /usr/local ; do
234    janssondir="$dir"
235    if test -f "$dir/include/jansson.h"; then
236      found_jansson="yes";
237      JANSSON_DIR="${janssondir}"
238      JANSSON_CFLAGS="-I$janssondir/include";
239      break;
240    fi
241 done
242 AC_MSG_RESULT($found_jansson)
243 if test x_$found_jansson != x_yes; then
244    AC_MSG_ERROR([
245 ----------------------------------------------------------------------
246   Cannot find jansson libraries.
247
248   Please install libjansson or specify installation directory with
249   --with-jansson=(dir).
250 ----------------------------------------------------------------------
251 ])
252 else
253         printf "jansson found in $janssondir\n";
254         JANSSON_LIBS="-ljansson";
255         JANSSON_LDFLAGS="-L$janssondir/lib";
256         AC_SUBST(JANSSON_CFLAGS)
257         AC_SUBST(JANSSON_LDFLAGS)
258         AC_SUBST(JANSSON_LIBS)
259 fi
260 ])dnl