Merge branch 'windows'
[mech_eap.orig] / acinclude.m4
1 dnl Based on the one from the Boinc project by Reinhard
2
3 AC_DEFUN([AX_CHECK_WINDOWS],
4 [AC_MSG_CHECKING(for windows)
5 target_windows="no"
6 AC_CHECK_HEADER(windows.h,[target_windows="yes"],[target_windows="no"])
7 AC_MSG_RESULT($target_windows)
8 AM_CONDITIONAL(TARGET_WINDOWS,test "x$target_windows" = "xyes")
9 ])dnl
10
11 AC_DEFUN([AX_CHECK_KRB5],
12 [AC_MSG_CHECKING(for GSS-API and Kerberos implementation)
13 KRB5_DIR=
14 found_krb5="no"
15 AC_ARG_WITH(krb5,
16     AC_HELP_STRING([--with-krb5],
17        [Use krb5 (in specified installation directory)]),
18     [check_krb5_dir="$withval"],
19     [check_krb5_dir=])
20 for dir in $check_krb5_dir $prefix /usr /usr/local ; do
21    krb5dir="$dir"
22    if test -x "$dir/bin/krb5-config"; then
23      found_krb5="yes";
24      if test "x$target_windows" = "xyes"; then
25         KRB5_CFLAGS=-I"$check_krb5_dir/include";
26         KRB5_LIBS="-L$check_krb5_dir/lib/ -lkrb5_32 -lgssapi32";
27         COMPILE_ET="$check_krb5_dir/bin/compile_et";
28      else
29         KRB5_CFLAGS=`$dir/bin/krb5-config gssapi --cflags`;
30         KRB5_LIBS=`$dir/bin/krb5-config gssapi --libs`;
31         COMPILE_ET="$dir/bin/compile_et";
32      fi
33      break;
34    fi
35 done
36 AC_MSG_RESULT($found_krb5)
37 if test x_$found_krb5 != x_yes; then
38    AC_MSG_ERROR([
39 ----------------------------------------------------------------------
40   Cannot find GSS-API/Kerberos libraries.
41
42   Please install MIT or Heimdal or specify installation directory with
43   --with-krb5=(dir).
44 ----------------------------------------------------------------------
45 ])
46 else
47         printf "Kerberos found in $krb5dir\n";
48         AC_SUBST(KRB5_CFLAGS)
49         AC_SUBST(KRB5_LIBS)
50         AC_SUBST(COMPILE_ET)
51         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")
52         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")
53         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")
54         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")
55         AM_CONDITIONAL(HEIMDAL, test "x$heimdal" != "xno")
56 fi
57 ])dnl
58
59 AC_DEFUN([AX_CHECK_EAP],
60 [AC_MSG_CHECKING(for EAP implementation)
61 EAP_DIR=
62 found_eap="no"
63 AC_ARG_WITH(eap,
64     AC_HELP_STRING([--with-eap],
65        [Use eap (in specified installation directory)]),
66     [check_eap_dir="$withval"],
67     [check_eap_dir=])
68 for dir in $check_eap_dir $prefix /usr /usr/local ../libeap ; do
69    eapdir="$dir"
70    if test -f "$dir/src/eap_peer/eap.h"; then
71      found_eap="yes";
72      EAP_DIR="${eapdir}"
73      EAP_CFLAGS="-I$eapdir/src/common -I$eapdir/src -I$eapdir/src/utils";
74      break;
75    fi
76 done
77 AC_MSG_RESULT($found_eap)
78 if test x_$found_eap != x_yes; then
79    AC_MSG_ERROR([
80 ----------------------------------------------------------------------
81   Cannot find EAP libraries.
82
83   Please install wpa_supplicant or specify installation directory with
84   --with-eap=(dir).
85 ----------------------------------------------------------------------
86 ])
87 else
88         printf "EAP found in $eapdir\n";
89         EAP_CFLAGS="$EAP_CFLAGS \
90 -DEAP_TLS \
91 -DEAP_PEAP \
92 -DEAP_TTLS \
93 -DEAP_MD5 \
94 -DEAP_MSCHAPv2 \
95 -DEAP_GTC \
96 -DEAP_OTP \
97 -DEAP_LEAP \
98 -DEAP_PSK \
99 -DEAP_PAX \
100 -DEAP_SAKE \
101 -DEAP_GPSK \
102 -DEAP_GPSK_SHA256 \
103 -DEAP_SERVER_IDENTITY \
104 -DEAP_SERVER_TLS \
105 -DEAP_SERVER_PEAP \
106 -DEAP_SERVER_TTLS \
107 -DEAP_SERVER_MD5 \
108 -DEAP_SERVER_MSCHAPV2 \
109 -DEAP_SERVER_GTC \
110 -DEAP_SERVER_PSK \
111 -DEAP_SERVER_PAX \
112 -DEAP_SERVER_SAKE \
113 -DEAP_SERVER_GPSK \
114 -DEAP_SERVER_GPSK_SHA256 \
115 -DIEEE8021X_EAPOL";
116         EAP_LIBS="-leap -lutils -lcrypto -ltls";
117         EAP_LDFLAGS="-L$eapdir/eap_example -L$eapdir/src/utils -L$eapdir/src/crypto -L$eapdir/src/tls";
118         AC_SUBST(EAP_CFLAGS)
119         AC_SUBST(EAP_LDFLAGS)
120         AC_SUBST(EAP_LIBS)
121 fi
122 ])dnl
123
124 AC_DEFUN([AX_CHECK_SHIBSP],
125 [AC_MSG_CHECKING(for Shibboleth implementation)
126 SHIBSP_DIR=
127 found_shibsp="no"
128 AC_ARG_WITH(shibsp,
129     AC_HELP_STRING([--with-shibsp],
130        [Use shibspboleth (in specified installation directory)]),
131     [check_shibsp_dir="$withval"],
132     [check_shibsp_dir=])
133 for dir in $check_shibsp_dir $prefix /usr /usr/local ; do
134    shibspdir="$dir"
135    if test -f "$dir/include/shibsp/SPConfig.h"; then
136      found_shibsp="yes";
137      SHIBSP_DIR="${shibspdir}"
138      SHIBSP_CXXFLAGS="-I$shibspdir/include";
139      break;
140    fi
141 done
142 AC_MSG_RESULT($found_shibsp)
143 if test x_$found_shibsp != x_yes; then
144    AC_MSG_ERROR([
145 ----------------------------------------------------------------------
146   Cannot find Shibboleth libraries.
147
148   Please install Shibboleth or specify installation directory with
149   --with-shibsp=(dir).
150 ----------------------------------------------------------------------
151 ])
152 else
153         printf "Shibboleth found in $shibspdir\n";
154         SHIBSP_LIBS="-lshibsp -lsaml -lxml-security-c -lxmltooling -lxerces-c";
155         SHIBSP_LDFLAGS="-L$shibspdir/lib";
156         AC_SUBST(SHIBSP_CXXFLAGS)
157         AC_SUBST(SHIBSP_LDFLAGS)
158         AC_SUBST(SHIBSP_LIBS)
159         AC_DEFINE_UNQUOTED([HAVE_SHIBSP], 1, [Define is Shibboleth SP is available])
160 fi
161 ])dnl
162
163 AC_DEFUN([AX_CHECK_SHIBRESOLVER],
164 [AC_MSG_CHECKING(for Shibboleth resolver implementation)
165 SHIBRESOLVER_DIR=
166 found_shibresolver="no"
167 AC_ARG_WITH(shibresolver,
168     AC_HELP_STRING([--with-shibresolver],
169        [Use Shibboleth resolver (in specified installation directory)]),
170     [check_shibresolver_dir="$withval"],
171     [check_shibresolver_dir=])
172 if test x_$check_shibresolver_dir != x_no; then
173 for dir in $check_shibresolver_dir $prefix /usr /usr/local ; do
174    shibresolverdir="$dir"
175    if test -f "$dir/include/shibresolver/resolver.h"; then
176      found_shibresolver="yes";
177      SHIBRESOLVER_DIR="${shibresolverdir}"
178      SHIBRESOLVER_CXXFLAGS="-I$shibresolverdir/include";
179      break;
180    fi
181 done
182 fi
183 AC_MSG_RESULT($found_shibresolver)
184 if test x_$check_shibresolver_dir != x_no; then
185 if test x_$found_shibresolver != x_yes; then
186    AC_MSG_WARN([
187 ----------------------------------------------------------------------
188   Cannot find Shibboleth resolver libraries, building without
189   Shibboleth support.
190
191   Please install Shibboleth or specify installation directory with
192   --with-shibresolver=(dir).
193 ----------------------------------------------------------------------
194 ])
195 else
196         printf "Shibboleth resolver found in $shibresolverdir\n";
197         SHIBRESOLVER_LIBS="-lshibresolver";
198         SHIBRESOLVER_LDFLAGS="-L$shibresolverdir/lib";
199         AC_SUBST(SHIBRESOLVER_CXXFLAGS)
200         AC_SUBST(SHIBRESOLVER_LDFLAGS)
201         AC_SUBST(SHIBRESOLVER_LIBS)
202         AC_DEFINE_UNQUOTED([HAVE_SHIBRESOLVER], 1, [Define is Shibboleth resolver is available])
203 fi
204 fi
205 ])dnl
206
207 AC_DEFUN([AX_CHECK_OPENSAML],
208 [AC_MSG_CHECKING(for OpenSAML implementation)
209 OPENSAML_DIR=
210 found_opensaml="no"
211 AC_ARG_WITH(opensaml,
212     AC_HELP_STRING([--with-opensaml],
213        [Use OpenSAML (in specified installation directory)]),
214     [check_opensaml_dir="$withval"],
215     [check_opensaml_dir=])
216 if test x_$check_opensaml_dir != x_no; then
217 for dir in $check_opensaml_dir $prefix /usr /usr/local ; do
218    opensamldir="$dir"
219    if test -f "$dir/include/saml/Assertion.h"; then
220      found_opensaml="yes";
221      OPENSAML_DIR="${opensamldir}"
222      OPENSAML_CXXFLAGS="-I$opensamldir/include";
223      break;
224    fi
225 done
226 fi
227 AC_MSG_RESULT($found_opensaml)
228 if test x_$check_opensaml_dir != x_no; then
229 if test x_$found_opensaml != x_yes; then
230    AC_MSG_WARN([
231 ----------------------------------------------------------------------
232   Cannot find OpenSAML libraries, building without OpenSAML support.
233
234   Please install OpenSAML or specify installation directory with
235   --with-opensaml=(dir).
236 ----------------------------------------------------------------------
237 ])
238 else
239         printf "OpenSAML found in $opensamldir\n";
240         OPENSAML_LIBS="-lsaml -lxml-security-c -lxmltooling -lxerces-c";
241         OPENSAML_LDFLAGS="-L$opensamldir/lib";
242         AC_SUBST(OPENSAML_CXXFLAGS)
243         AC_SUBST(OPENSAML_LDFLAGS)
244         AC_SUBST(OPENSAML_LIBS)
245         AC_DEFINE_UNQUOTED([HAVE_OPENSAML], 1, [Define is OpenSAML is available])
246 fi
247 fi
248 ])dnl
249
250 AC_DEFUN([AX_CHECK_RADSEC],
251 [AC_MSG_CHECKING(for radsec)
252 RADSEC_DIR=
253 found_radsec="no"
254 AC_ARG_WITH(radsec,
255     AC_HELP_STRING([--with-radsec],
256        [Use radsec (in specified installation directory)]),
257     [check_radsec_dir="$withval"],
258     [check_radsec_dir=])
259 for dir in $check_radsec_dir $prefix /usr /usr/local ; do
260    radsecdir="$dir"
261    if test -f "$dir/include/radsec/radsec.h"; then
262      found_radsec="yes";
263      RADSEC_DIR="${radsecdir}"
264      RADSEC_CFLAGS="-I$radsecdir/include";
265      break;
266    fi
267 done
268 AC_MSG_RESULT($found_radsec)
269 if test x_$found_radsec != x_yes; then
270    AC_MSG_ERROR([
271 ----------------------------------------------------------------------
272   Cannot find radsec libraries.
273
274   Please install libradsec or specify installation directory with
275   --with-radsec=(dir).
276 ----------------------------------------------------------------------
277 ])
278 else
279         printf "radsec found in $radsecdir\n";
280         RADSEC_LIBS="-lradsec";
281         RADSEC_LDFLAGS="-L$radsecdir/lib";
282         AC_SUBST(RADSEC_CFLAGS)
283         AC_SUBST(RADSEC_LDFLAGS)
284         AC_SUBST(RADSEC_LIBS)
285 fi
286 ])dnl
287
288 AC_DEFUN([AX_CHECK_JANSSON],
289 [AC_MSG_CHECKING(for jansson)
290 JANSSON_DIR=
291 found_jansson="no"
292 AC_ARG_WITH(jansson,
293     AC_HELP_STRING([--with-jansson],
294        [Use jansson (in specified installation directory)]),
295     [check_jansson_dir="$withval"],
296     [check_jansson_dir=])
297 for dir in $check_jansson_dir $prefix /usr /usr/local ; do
298    janssondir="$dir"
299    if test -f "$dir/include/jansson.h"; then
300      found_jansson="yes";
301      JANSSON_DIR="${janssondir}"
302      JANSSON_CFLAGS="-I$janssondir/include";
303      break;
304    fi
305 done
306 AC_MSG_RESULT($found_jansson)
307 if test x_$found_jansson != x_yes; then
308    AC_MSG_ERROR([
309 ----------------------------------------------------------------------
310   Cannot find jansson libraries.
311
312   Please install libjansson or specify installation directory with
313   --with-jansson=(dir).
314 ----------------------------------------------------------------------
315 ])
316 else
317         printf "jansson found in $janssondir\n";
318         JANSSON_LIBS="-ljansson";
319         JANSSON_LDFLAGS="-L$janssondir/lib";
320         AC_SUBST(JANSSON_CFLAGS)
321         AC_SUBST(JANSSON_LDFLAGS)
322         AC_SUBST(JANSSON_LIBS)
323 fi
324 ])dnl
325
326 AC_DEFUN([AX_CHECK_LIBMOONSHOT],
327 [AC_MSG_CHECKING(for Moonshot identity selector implementation)
328 LIBMOONSHOT_DIR=
329 found_libmoonshot="no"
330 AC_ARG_WITH(libmoonshot,
331     AC_HELP_STRING([--with-libmoonshot],
332        [Use libmoonshot (in specified installation directory)]),
333     [check_libmoonshot_dir="$withval"],
334     [check_libmoonshot_dir=])
335 for dir in $check_libmoonshot_dir $prefix /usr /usr/local ../../moonshot-ui/libmoonshot ; do
336    libmoonshotdir="$dir"
337    if test -f "$dir/include/libmoonshot.h"; then
338      found_libmoonshot="yes";
339      LIBMOONSHOT_DIR="${libmoonshotdir}"
340      LIBMOONSHOT_CFLAGS="-I$libmoonshotdir/include";
341      break;
342    fi
343 done
344 AC_MSG_RESULT($found_libmoonshot)
345 if test x_$found_libmoonshot != x_yes; then
346    AC_MSG_ERROR([
347 ----------------------------------------------------------------------
348   Cannot find Moonshot identity selector libraries.
349
350   Please install wpa_supplicant or specify installation directory with
351   --with-libmoonshot=(dir).
352 ----------------------------------------------------------------------
353 ])
354 else
355         printf "libmoonshot found in $libmoonshotdir\n";
356         LIBMOONSHOT_LIBS="-lmoonshot";
357         LIBMOONSHOT_LDFLAGS="-L$libmoonshot/lib";
358         AC_SUBST(LIBMOONSHOT_CFLAGS)
359         AC_SUBST(LIBMOONSHOT_LDFLAGS)
360         AC_SUBST(LIBMOONSHOT_LIBS)
361         AC_CHECK_LIB(moonshot, moonshot_get_identity, [AC_DEFINE_UNQUOTED([HAVE_MOONSHOT_GET_IDENTITY], 1, [Define if Moonshot identity selector is available])], [], "$LIBMOONSHOT_LIBS")
362 fi
363 ])dnl
364