-dnl
-dnl AUTHOR: Francesco Chemolli
-dnl
-dnl SQUID Web Proxy Cache http://www.squid-cache.org/
-dnl ----------------------------------------------------------
-dnl Squid is the result of efforts by numerous individuals from
-dnl the Internet community; see the CONTRIBUTORS file for full
-dnl details. Many organizations have provided support for Squid's
-dnl development; see the SPONSORS file for full details. Squid is
-dnl Copyrighted (C) 2001 by the Regents of the University of
-dnl California; see the COPYRIGHT file for full details. Squid
-dnl incorporates software developed and/or copyrighted by other
-dnl sources; see the CREDITS file for full details.
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2 of the License, or
-dnl (at your option) any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+## Copyright (C) 1996-2017 The Squid Software Foundation and contributors
+##
+## Squid software is distributed under GPLv2+ license and includes
+## contributions from numerous individuals and organizations.
+## Please see the COPYING and CONTRIBUTORS files for details.
+##
dnl save main environment variables to variables to the namespace defined by the
dnl first argument (prefix)
dnl CFLAGS, CXXFLAGS, LDFLAGS, LIBS plus any variables specified as
dnl second argument
AC_DEFUN([SQUID_STATE_SAVE],[
+# save state, key is $1
$1_CFLAGS="${CFLAGS}"
$1_CXXFLAGS="${CXXFLAGS}"
$1_LDFLAGS="${LDFLAGS}"
$1_LIBS="${LIBS}"
-$1_CC="${LIBS}"
-$1_CXX="${LIBS}"
+$1_CC="${CC}"
+$1_CXX="${CXX}"
+$1_CPPFLAGS="${CPPFLAGS}"
$1_squid_saved_vars="$2"
-for squid_util_var_tosave in $2
+for squid_util_var_tosave in $$1_squid_saved_vars
do
squid_util_var_tosave2="$1_${squid_util_var_tosave}"
eval "${squid_util_var_tosave2}=\"${squid_util_var_tosave}\""
dnl with the same prefix. It's not necessary to specify the extra variables passed
dnl to SQUID_STATE_SAVE again, they will be automatically reclaimed.
AC_DEFUN([SQUID_STATE_COMMIT],[
+# commit state, key is $1
unset $1_CFLAGS
-unset $1_$CXXFLAGS
+unset $1_CXXFLAGS
unset $1_LDFLAGS
unset $1_LIBS
unset $1_CC
unset $1_CXX
+unset $1_CPPFLAGS
for squid_util_var_tosave in $$1_squid_saved_vars
do
- unset ${squid_util_var_tosave2}
+ unset ${squid_util_var_tosave}
done
])
dnl at call time. It's not necessary to explicitly name them, they will be automatically
dnl cleared.
AC_DEFUN([SQUID_STATE_ROLLBACK],[
+# rollback state, key is $1
CFLAGS="${$1_CFLAGS}"
CXXFLAGS="${$1_CXXFLAGS}"
LDFLAGS="${$1_LDFLAGS}"
LIBS="${$1_LIBS}"
CC="${$1_CC}"
CXX="${$1_CXX}"
+CPPFLAGS="${$1_CPPFLAGS}"
for squid_util_var_tosave in $$1_squid_saved_vars
do
- squid_util_var_tosave2="$1_${squid_util_var_tosave}"
- eval "${squid_util_var_tosave}=\$${squid_util_var_tosave2}"
+ squid_util_var_tosave2="\$$1_${squid_util_var_tosave}"
+ eval "$squid_util_var_tosave=\"${squid_util_var_tosave2}\""
done
SQUID_STATE_COMMIT($1)
])
dnl look for modules in the base-directory supplied as argument.
-dnl fill-in the variable pointed-to by the second argument with the space-separated
-dnl list of modules
+dnl fill-in the variable pointed-to by the second argument with the
+dnl space-separated list of modules
AC_DEFUN([SQUID_LOOK_FOR_MODULES],[
+$2=""
for dir in $1/*; do
module="`basename $dir`"
if test -d "$dir" && test "$module" != CVS; then
fi
done
])
+
+dnl lowercases the contents of the variable whose name is passed by argument
+AC_DEFUN([SQUID_TOLOWER_VAR_CONTENTS],[
+ $1=`echo $$1|tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+])
+
+dnl uppercases the contents of the variable whose name is passed by argument
+AC_DEFUN([SQUID_TOUPPER_VAR_CONTENTS],[
+ $1=`echo $$1|tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
+])
+
+dnl like AC_DEFINE, but it defines the value to 0 or 1 using well-known textual
+dnl conventions:
+dnl 1: "yes", "true", 1
+dnl 0: "no" , "false", 0, ""
+dnl aborts with an error for unknown values
+AC_DEFUN([SQUID_DEFINE_BOOL],[
+squid_tmp_define=""
+case "$2" in
+ yes|true|1) squid_tmp_define="1" ;;
+ no|false|0|"") squid_tmp_define="0" ;;
+ *) AC_MSG_ERROR([SQUID_DEFINE[]_BOOL: unrecognized value for $1: '$2']) ;;
+esac
+ifelse([$#],3,
+ [AC_DEFINE_UNQUOTED([$1], [$squid_tmp_define],[$3])],
+ [AC_DEFINE_UNQUOTED([$1], [$squid_tmp_define])]
+)
+unset squid_tmp_define
+])
+
+dnl aborts with an error specified as the second argument if the first argument doesn't
+dnl contain either "yes" or "no"
+AC_DEFUN([SQUID_YESNO],[
+if test "$1" != "yes" -a "$1" != "no" ; then
+ AC_MSG_ERROR([$2])
+fi
+])
+
+AC_DEFUN([SQUID_EMBED_BUILD_INFO],[
+ AC_ARG_ENABLE([build-info],
+ AS_HELP_STRING([--enable-build-info="build info string"],
+ [Add an additional string in the output of "squid -v".
+ Default is not to add anything. If the string is not specified,
+ tries to determine nick and revision number of the current
+ bazaar branch]),[
+ case "$enableval" in
+ no) ${TRUE}
+ ;;
+ yes)
+ if test -d "${srcdir}/.bzr"; then
+ AC_PATH_PROG(BZR,bzr,$FALSE)
+ squid_bzr_branch_nick=`cd ${srcdir} && ${BZR} nick 2>/dev/null`
+ if test $? -eq 0 -a "x$squid_bzr_branch_nick" != "x"; then
+ squid_bzr_branch_revno=`cd ${srcdir} && ${BZR} revno 2>/dev/null | sed 's/\"//g'`
+ fi
+ if test $? -eq 0 -a "x$squid_bzr_branch_revno" != "x"; then
+ sh -c "cd ${srcdir} && ${BZR} diff 2>&1 >/dev/null"
+ if test $? -eq 1; then
+ squid_bzr_branch_revno="$squid_bzr_branch_revno+changes"
+ fi
+ fi
+ if test "x$squid_bzr_branch_revno" != "x"; then
+ squid_build_info="Built branch: ${squid_bzr_branch_nick}-r${squid_bzr_branch_revno}"
+ fi
+ fi
+ ;;
+ *)
+ squid_build_info=$enableval
+ ;;
+ esac
+ ])
+ AC_DEFINE_UNQUOTED([SQUID_BUILD_INFO],["$squid_build_info"],
+ [Squid extended build info field for "squid -v" output])
+])
+
+dnl like AC_SEARCH_LIBS, with an extra argument which is
+dnl a prefix to the test program
+AC_DEFUN([SQUID_SEARCH_LIBS],
+[AS_VAR_PUSHDEF([ac_Search], [ac_cv_search_$1])dnl
+AC_CACHE_CHECK([for library containing $1], [ac_Search],
+[ac_func_search_save_LIBS=$LIBS
+AC_LANG_CONFTEST([AC_LANG_PROGRAM([$6], [$1()])])
+for ac_lib in '' $2; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $5 $ac_func_search_save_LIBS"
+ fi
+ AC_LINK_IFELSE([], [AS_VAR_SET([ac_Search], [$ac_res])])
+ AS_VAR_SET_IF([ac_Search], [break])
+done
+AS_VAR_SET_IF([ac_Search], , [AS_VAR_SET([ac_Search], [no])])
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS])
+ac_res=AS_VAR_GET([ac_Search])
+AS_IF([test "$ac_res" != no],
+ [test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+ $3],
+ [$4])
+AS_VAR_POPDEF([ac_Search])dnl
+])
+
+dnl Check for Cyrus SASL
+AC_DEFUN([SQUID_CHECK_SASL],[
+ squid_cv_check_sasl="auto"
+ AC_CHECK_HEADERS([sasl/sasl.h sasl.h])
+ AC_CHECK_LIB(sasl2,sasl_errstring,[LIBSASL="-lsasl2"],[
+ AC_CHECK_LIB(sasl,sasl_errstring,[LIBSASL="-lsasl"], [
+ squid_cv_check_sasl="no"
+ ])
+ ])
+ case "$squid_host_os" in
+ Darwin)
+ if test "$ac_cv_lib_sasl2_sasl_errstring" = "yes" ; then
+ AC_DEFINE(HAVE_SASL_DARWIN,1,[Define to 1 if Mac Darwin without sasl.h])
+ echo "checking for MAC Darwin without sasl.h ... yes"
+ squid_cv_check_sasl="yes"
+ else
+ echo "checking for MAC Darwin without sasl.h ... no"
+ squid_cv_check_sasl="no"
+ fi
+ ;;
+ esac
+ if test "x$squid_cv_check_sasl" = "xno"; then
+ AC_MSG_WARN([Neither SASL nor SASL2 found])
+ else
+ squid_cv_check_sasl="yes"
+ fi
+ AC_SUBST(LIBSASL)
+])