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