1## Copyright (C) 1996-2021 The Squid Software Foundation and contributors
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
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
11# FIXME: de-duplicate $enable_auth_negotiate list containing double entries.
12
13#not specified. Inherit global
14if test "x$enable_auth_negotiate" = "x"; then
15    enable_auth_negotiate=$enable_auth
16fi
17#conflicts with global
18if test "x$enable_auth_negotiate" != "xno" -a "x$enable_auth" = "xno" ; then
19  AC_MSG_ERROR([Negotiate auth requested but auth disabled])
20fi
21#define list of modules to build
22auto_auth_negotiate_modules=no
23if test "x$enable_auth_negotiate" = "xyes" ; then
24  SQUID_LOOK_FOR_MODULES([$srcdir/src/auth/negotiate],[enable_auth_negotiate])
25  auto_auth_negotiate_modules=yes
26fi
27#handle the "none" special case
28if test "x$enable_auth_negotiate" = "xnone" ; then
29    enable_auth_negotiate=""
30fi
31
32NEGOTIATE_AUTH_HELPERS=""
33enable_auth_negotiate="`echo $enable_auth_negotiate| sed -e 's/,/ /g;s/  */ /g'`"
34if test "x$enable_auth_negotiate" != "xno" ; then
35    AUTH_MODULES="$AUTH_MODULES negotiate"
36    AC_DEFINE([HAVE_AUTH_MODULE_NEGOTIATE],1,[Negotiate auth module is built])
37    for helper in $enable_auth_negotiate; do
38      dir="$srcdir/src/auth/negotiate/$helper"
39
40      # modules converted to autoconf macros already
41      # NP: we only need this list because m4_include() does not accept variables
42      if test "x$helper" = "xSSPI" ; then
43        m4_include([src/auth/negotiate/SSPI/required.m4])
44
45      elif test "x$helper" = "xkerberos" ; then
46        m4_include([src/auth/negotiate/kerberos/required.m4])
47
48      elif test "x$helper" = "xwrapper" ; then
49        m4_include([src/auth/negotiate/wrapper/required.m4])
50
51      # modules not yet converted to autoconf macros (or third party drop-in's)
52      elif test -f "$dir/config.test" && sh "$dir/config.test" "$squid_host_os"; then
53        BUILD_HELPER="$helper"
54      fi
55
56      if test -d "$srcdir/src/auth/negotiate/$helper"; then
57        if test "$BUILD_HELPER" != "$helper"; then
58          if test "x$auto_auth_negotiate_modules" = "xyes"; then
59            AC_MSG_NOTICE([Negotiate auth helper $helper ... found but cannot be built])
60          else
61            AC_MSG_ERROR([Negotiate auth helper $helper ... found but cannot be built])
62          fi
63        else
64          NEGOTIATE_AUTH_HELPERS="$NEGOTIATE_AUTH_HELPERS $BUILD_HELPER"
65        fi
66      else
67        AC_MSG_ERROR([Negotiate auth helper $helper ... not found])
68      fi
69    done
70fi
71
72AC_MSG_NOTICE([Negotiate auth helpers to be built: $NEGOTIATE_AUTH_HELPERS])
73AM_CONDITIONAL(ENABLE_AUTH_NEGOTIATE, test "x$enable_auth_negotiate" != "xno")
74AC_SUBST(NEGOTIATE_AUTH_HELPERS)
75