]> git.ipfire.org Git - thirdparty/squid.git/blame - src/auth/ntlm/helpers.m4
Source Format Enforcement (#763)
[thirdparty/squid.git] / src / auth / ntlm / helpers.m4
CommitLineData
f70aedc4 1## Copyright (C) 1996-2021 The Squid Software Foundation and contributors
ca02e0ec
AJ
2##
3## Squid software is distributed under GPLv2+ license and includes
4## contributions from numerous individuals and organizations.
5## Please see the COPYING and CONTRIBUTORS files for details.
6##
7
5eabe4b4
AJ
8# This file is supposed to run all the tests required to identify which
9# configured modules are able to be built in this environment
10
9837567d 11# TODO: de-duplicate $enable_auth_ntlm list containing double entries.
5eabe4b4
AJ
12
13#not specified. Inherit global
14if test "x$enable_auth_ntlm" = "x"; then
15 enable_auth_ntlm=$enable_auth
16fi
17#conflicts with global
18if test "x$enable_auth_ntlm" != "xno" -a "x$enable_auth" = "xno" ; then
19 AC_MSG_ERROR([NTLM auth requested but auth disabled])
20fi
21#define list of modules to build
c1bbd56c 22auto_auth_ntlm_modules=no
5eabe4b4 23if test "x$enable_auth_ntlm" = "xyes" ; then
b817c20f 24 SQUID_LOOK_FOR_MODULES([$srcdir/src/auth/ntlm],[enable_auth_ntlm])
c1bbd56c 25 auto_auth_ntlm_modules=yes
5eabe4b4
AJ
26fi
27#handle the "none" special case
28if test "x$enable_auth_ntlm" = "xnone" ; then
29 enable_auth_ntlm=""
30fi
31
32NTLM_AUTH_HELPERS=""
33#enable_auth_ntlm contains either "no" or the list of modules to be built
34enable_auth_ntlm="`echo $enable_auth_ntlm| sed -e 's/,/ /g;s/ */ /g'`"
35if test "x$enable_auth_ntlm" != "xno" ; then
36 AUTH_MODULES="$AUTH_MODULES ntlm"
37 AC_DEFINE([HAVE_AUTH_MODULE_NTLM],1,[NTLM auth module is built])
38 for helper in $enable_auth_ntlm; do
b817c20f 39 dir="$srcdir/src/auth/ntlm/$helper"
5eabe4b4
AJ
40
41 # modules converted to autoconf macros already
42 # NP: we only need this list because m4_include() does not accept variables
43 if test "x$helper" = "xfake" ; then
b817c20f 44 m4_include([src/auth/ntlm/fake/required.m4])
5eabe4b4 45
b817c20f
AJ
46 elif test "x$helper" = "xSMB_LM" ; then
47 m4_include([src/auth/ntlm/SMB_LM/required.m4])
5eabe4b4 48
b817c20f
AJ
49 elif test "x$helper" = "xSSPI" ; then
50 m4_include([src/auth/ntlm/SSPI/required.m4])
5eabe4b4
AJ
51
52 # modules not yet converted to autoconf macros (or third party drop-in's)
53 elif test -f "$dir/config.test" && sh "$dir/config.test" "$squid_host_os"; then
54 BUILD_HELPER="$helper"
55 fi
56
b817c20f 57 if test -d "$srcdir/src/auth/ntlm/$helper"; then
5eabe4b4 58 if test "$BUILD_HELPER" != "$helper"; then
c1bbd56c
AJ
59 if test "x$auto_auth_ntlm_modules" = "xyes"; then
60 AC_MSG_NOTICE([NTLM auth helper $helper ... found but cannot be built])
61 else
62 AC_MSG_ERROR([NTLM auth helper $helper ... found but cannot be built])
63 fi
5eabe4b4
AJ
64 else
65 NTLM_AUTH_HELPERS="$NTLM_AUTH_HELPERS $BUILD_HELPER"
66 fi
67 else
68 AC_MSG_ERROR([NTLM auth helper $helper ... not found])
69 fi
70 done
71fi
72AC_MSG_NOTICE([NTLM auth helpers to be built: $NTLM_AUTH_HELPERS])
73AM_CONDITIONAL(ENABLE_AUTH_NTLM, test "x$enable_auth_ntlm" != "xno")
74AC_SUBST(NTLM_AUTH_HELPERS)
5fc112ea
AJ
75
76## NTLM requires some special Little-Endian conversion hacks
77if test "x$enable_auth_ntlm" != "xno"; then
78 AC_CHECK_HEADERS(machine/byte_swap.h sys/bswap.h endian.h sys/endian.h)
79 AC_CHECK_FUNCS(
80 bswap_16 bswap16 \
81 bswap_32 bswap32 \
82 htole16 __htole16 \
83 htole32 __htole32 \
84 le16toh __le16toh \
85 le32toh __le32toh \
86 )
87fi