dnl Process this file with autoconf to produce a configure script.
-dnl
-dnl $Id: configure.in,v 1.111 2008/02/03 14:40:47 fabiankeil Exp $
-dnl
-dnl Written by and Copyright (C) 2001 - 2007 the SourceForge
-dnl Privoxy team. http://www.privoxy.org/
+dnl
+dnl Written by and Copyright (C) 2001-2020 the
+dnl Privoxy team. https://www.privoxy.org/
dnl
dnl Based on the Internet Junkbuster originally written
-dnl by and Copyright (C) 1997 Anonymous Coders and
+dnl by and Copyright (C) 1997 Anonymous Coders and
dnl Junkbusters Corporation. http://www.junkbusters.com
dnl
-dnl This program is free software; you can redistribute it
+dnl This program is free software; you can redistribute it
dnl and/or modify it under the terms of the GNU General
dnl Public License as published by the Free Software
dnl Foundation; either version 2 of the License, or (at
dnl your option) any later version.
-dnl
+dnl
dnl This program is distributed in the hope that it will
dnl be useful, but WITHOUT ANY WARRANTY; without even the
dnl implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE. See the GNU General Public
dnl License for more details.
-dnl
+dnl
dnl The GNU General Public License should be included with
dnl this file. If not, you can view it at
dnl http://www.gnu.org/copyleft/gpl.html
dnl or write to the Free Software Foundation, Inc., 59
dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-dnl
-dnl $Log: configure.in,v $
-dnl Revision 1.111 2008/02/03 14:40:47 fabiankeil
-dnl Remove unused OSX_DARWIN macro. Reported by Mark Miller in #1852529.
-dnl
-dnl Revision 1.110 2008/01/26 10:52:13 fabiankeil
-dnl Change version to 3.0.9 UNRELEASED.
-dnl
-dnl Revision 1.109 2008/01/20 14:07:09 fabiankeil
-dnl Set CODE_STATUS to stable.
-dnl
-dnl Revision 1.108 2007/12/10 02:30:00 hal9
-dnl Change versioning for > 3.0.7 && < 3.0.8
-dnl
-dnl Revision 1.107 2007/11/15 02:50:14 hal9
-dnl Setting to "beta" (for doc builds, etc).
-dnl
-dnl Revision 1.106 2007/05/11 11:49:41 fabiankeil
-dnl Check for strlcat().
-dnl
-dnl Revision 1.105 2007/04/09 17:34:58 fabiankeil
-dnl Check for snprintf().
-dnl
-dnl Revision 1.104 2007/03/31 13:35:11 fabiankeil
-dnl Add checks for gettimeofday() and strlcpy().
-dnl
-dnl Revision 1.103 2007/01/20 16:29:38 fabiankeil
-dnl Suppress edit buttons for action files if Privoxy has
-dnl no write access. Suggested by Roland in PR 1564026.
-dnl
-dnl Revision 1.102 2007/01/18 14:55:45 fabiankeil
-dnl Check for tzset() and putenv() to make sure the
-dnl replacement timegm() isn't included on systems
-dnl where it fails to compile.
-dnl
-dnl Revision 1.101 2007/01/12 15:20:17 fabiankeil
-dnl Temporarily ignore external libpcrs to prevent
-dnl problems that are fixed in Privoxy's own version.
-dnl
-dnl Revision 1.100 2007/01/07 07:38:10 joergs
-dnl Disabled -pipe for AmigaOS4.
-dnl
-dnl Revision 1.99 2007/01/01 19:36:37 fabiankeil
-dnl Integrate a modified version of Wil Mahan's
-dnl zlib patch (PR #895531).
-dnl
-dnl Revision 1.98 2006/12/17 19:15:26 fabiankeil
-dnl Added ./configure switch for FEATURE_GRACEFUL_TERMINATION.
-dnl
-dnl Revision 1.97 2006/11/21 18:32:46 hal9
-dnl Setting version to 3.0.7 UNRELEASED for lack of a better setting.
-dnl
-dnl Revision 1.96 2006/11/18 14:42:51 fabiankeil
-dnl Mark as stable.
-dnl
-dnl Revision 1.95 2006/11/14 02:08:59 hal9
-dnl Setting version string to 3.0.6 UNRELEASED. This needs to be reset to 3.0.6
-dnl stable just before CVS is tagged for release.
-dnl
-dnl Revision 1.94 2006/11/13 19:05:50 fabiankeil
-dnl Make pthread mutex locking more generic. Instead of
-dnl checking for OSX and OpenBSD, check for FEATURE_PTHREAD
-dnl and use mutex locking unless there is an _r function
-dnl available. Better safe than sorry.
-dnl
-dnl Fixes "./configure --disable-pthread" and should result
-dnl in less threading-related problems on pthread-using platforms,
-dnl but it still doesn't fix BR#1122404.
-dnl
-dnl Revision 1.93 2006/09/22 01:26:20 hal9
-dnl Set version to 3.0.5 BETA for hopefully release this weekend.
-dnl
-dnl Revision 1.92 2006/08/17 17:09:49 fabiankeil
-dnl Added check for timegm().
-dnl
-dnl Revision 1.91 2006/08/13 22:01:51 fabiankeil
-dnl Added checks for strptime() and random()
-dnl
-dnl Revision 1.90 2006/07/18 14:48:45 david__schmidt
-dnl Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
-dnl with what was really the latest development (the v_3_0_branch branch)
-dnl
-dnl Revision 1.68.2.20 2004/01/31 16:31:46 oes
-dnl Resetting version info to 0.0.0 UNRELEASED
-dnl
-dnl Revision 1.68.2.19 2004/01/30 09:26:03 oes
-dnl Added docbook paths for debian sarge; set status for release
-dnl
-dnl Revision 1.68.2.18 2003/12/08 15:10:29 oes
-dnl Bugfix: --with-docbook now correctly accepts its path parameter. Thanks, Roland!
-dnl
-dnl Revision 1.68.2.17 2003/10/18 18:41:26 david__schmidt
-dnl Update to remain buildable on OS/2 - remove the failures
-dnl due to missing unixisms
-dnl
-dnl Revision 1.68.2.16 2003/03/26 16:05:14 oes
-dnl Marked as 0.0.0 UNRELEASED
-dnl
-dnl Revision 1.68.2.15 2003/03/26 00:25:00 oes
-dnl Bump version for 3.0.2
-dnl
-dnl Revision 1.68.2.14 2003/03/25 13:27:12 hal9
-dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl.
-dnl
-dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes
-dnl Set version info for 3.0.1 release
-dnl
-dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt
-dnl Wrapping all *_r functions (the non-_r versions of them) with mutex semaphores for OSX. Hopefully this will take care of all of those pesky crash reports.
-dnl
-dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes
-dnl Fixed minor shell syntax bug
-dnl
-dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes
-dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs
-dnl
-dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9
-dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org
-dnl
-dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes
-dnl Fixed broken handling of pre-set CFLAGS
-dnl
-dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9
-dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
-dnl support, and other related changes. Update related docs.
-dnl
-dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes
-dnl Marking as non-release
-dnl
-dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9
-dnl Getting ready for 3.0 release.
-dnl
-dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes
-dnl - Set Version to 2.9.20 (beta)
-dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
-dnl are located in a pcre/ subdir to the include path.
-dnl
-dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
-dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
-dnl
-dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
-dnl Bump version to 2.9.17.
-dnl
-dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
-dnl Bumped version number for 2.9.16 freeze
-dnl
-dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
-dnl Detect if the compiler supports -pthread.
-dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
-dnl machine to test this!)
-dnl
-dnl Revision 1.67 2002/05/03 14:33:59 oes
-dnl Generate doc/soucre/ldp.dsl
-dnl
-dnl Revision 1.66 2002/05/03 00:41:56 oes
-dnl Set version to 2.9.15 to comply with new versioning scheme
-dnl
-dnl Revision 1.65 2002/04/25 19:13:57 morcego
-dnl Removed RPM release number declaration on configure.in
-dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
-dnl targets (will produce an error, explaining who to do it, if no value
-dnl if provided).
-dnl
-dnl Revision 1.64 2002/04/22 16:32:31 morcego
-dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
-dnl -rh.spec: uid and gid are now macros
-dnl -suse.spec: Changing the header Copyright to License (Copyright is
-dnl deprecable)
-dnl
-dnl Revision 1.63 2002/04/11 11:00:21 oes
-dnl Applied Moritz' fix for socklen_t on Solaris
-dnl
-dnl Revision 1.62 2002/04/11 10:09:20 oes
-dnl Version 2.9.14
-dnl
-dnl Revision 1.61 2002/04/10 18:14:45 morcego
-dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
-dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
-dnl
-dnl Revision 1.60 2002/04/09 16:38:49 oes
-dnl Added detection of missing config.h.in
-dnl
-dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
-dnl Removing unnessacery tests (C++, ranlib)
-dnl
-dnl Revision 1.58 2002/04/04 20:49:20 swa
-dnl attempt to consolidate the
-dnl different dokbook versions.
-dnl
-dnl Revision 1.57 2002/04/04 00:36:36 gliptak
-dnl always use pcre for matching
-dnl
-dnl Revision 1.56 2002/04/03 22:28:03 gliptak
-dnl Removed references to gnu_regex
-dnl
-dnl Revision 1.55 2002/04/03 03:54:38 gliptak
-dnl Checking pcre version
-dnl
-dnl Revision 1.54 2002/04/01 00:54:24 gliptak
-dnl More changes needed around regex support.
-dnl
-dnl Revision 1.53 2002/03/29 20:09:01 swa
-dnl al's patch
-dnl
-dnl Revision 1.52 2002/03/29 19:51:40 gliptak
-dnl Correcting compile problem with Debian
-dnl
-dnl Revision 1.51 2002/03/28 20:43:00 swa
-dnl set make correctly
-dnl
-dnl Revision 1.50 2002/03/27 03:03:45 hal9
-dnl Add test for man2html
-dnl
-dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
-dnl More Mac OSX support:
-dnl - Get rid of extraneous, noisy -pthread warnings
-dnl - Define unix so we get oes' unix-tagged changes
-dnl
-dnl Revision 1.48 2002/03/26 22:29:54 swa
-dnl we have a new homepage!
-dnl
-dnl Revision 1.47 2002/03/26 16:41:00 hal9
-dnl Upped RPM Release to 3 (need to build new RH packages)
-dnl
-dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
-dnl Making Docbook work under Windows
-dnl
-dnl Revision 1.45 2002/03/24 14:19:55 swa
-dnl set rpm package release in configure.in. nowhere else.
-dnl
-dnl Revision 1.44 2002/03/24 13:25:43 swa
-dnl name change related issues
-dnl
-dnl Revision 1.43 2002/03/24 12:56:21 swa
-dnl name change related issues.
-dnl
-dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
-dnl Bumping version number to 2.9.12
-dnl
-dnl Revision 1.41 2002/03/19 19:30:04 morcego
-dnl - Fixing stylesheet checking on configure. If it is found, no further checks
-dnl should be done
-dnl
-dnl - configure will now check for db2html or docbook2html (should work now
-dnl on SuSe without the docbktls package)
-dnl
-dnl Revision 1.40 2002/03/09 14:33:30 oes
-dnl Fixing the (harmless) AC_CHECK_FILE warnings
-dnl
-dnl Revision 1.39 2002/03/08 16:46:13 oes
-dnl Added --enable-no-gifs
-dnl
-dnl Revision 1.38 2002/03/08 14:13:50 morcego
-dnl Fixing configure, to remove a command not found error.
-dnl
-dnl Revision 1.37 2002/03/08 12:58:21 oes
-dnl Tiny bugfix in AC_ARG_WITH(debug)
-dnl
-dnl Revision 1.36 2002/03/06 23:50:36 morcego
-dnl Will not test for a text browser if we are not using docbook.
-dnl
-dnl Revision 1.35 2002/03/06 21:55:52 morcego
-dnl New configure option: --with-docbook=(yes|no|directory)
-dnl Preliminary new platform detection code included. Will work with the
-dnl old one for now. No use just trowing it away
-dnl
-dnl Revision 1.34 2002/03/06 20:57:00 morcego
-dnl Fixing detection of stylesheets on SuSe.
-dnl
-dnl Revision 1.33 2002/03/05 17:31:11 morcego
-dnl Search for docbook.dsl. Should solve portability problems for SuSe.
-dnl
-dnl Revision 1.32 2002/03/05 14:07:43 morcego
-dnl configure now detects rpm topdir, and change GNUmakefile acordingly
-dnl (based on sugestion by Sarantis Paskalis)
-dnl
-dnl Revision 1.31 2002/03/05 13:43:28 morcego
-dnl Checking for text browser, so redhat-dok can work.
-dnl
-dnl Revision 1.30 2002/03/04 17:58:01 oes
-dnl Deleted _DEBUG and PID_FILE_PATH
-dnl
-dnl Revision 1.29 2002/02/28 14:20:53 oes
-dnl Fixed detection of gethost*_r functions on Solaris
-dnl
-dnl Revision 1.28 2002/02/27 15:02:38 oes
-dnl Incremented version number
-dnl
-dnl Revision 1.27 2002/01/10 12:35:18 oes
-dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
-dnl to silence autoconf warnings. Numbers are for Intel/Linux.
-dnl Is there a better way?
-dnl
-dnl Revision 1.26 2002/01/09 14:29:49 oes
-dnl - Added AC_CHECK_FUNC tests for the availability of
-dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
-dnl localtime_r, as well as AC_TRY_COMPILE tests to
-dnl determine their signatures.
-dnl
-dnl - Fixed a bug with the init of CFLAGS that was
-dnl reported by barsnick
-dnl
-dnl Revision 1.25 2002/01/04 15:27:18 oes
-dnl Changed quoting of CODE_STATUS for use in make
-dnl
-dnl Revision 1.24 2001/12/30 14:07:31 steudten
-dnl - Add signal handling (unix)
-dnl - Add SIGHUP handler (unix)
-dnl - Add creation of pidfile (unix)
-dnl - Add action 'top' in rc file (RH)
-dnl - Add entry 'SIGNALS' to manpage
-dnl - Add exit message to logfile (unix)
-dnl
-dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
-dnl Change from "alpha" to "beta" in configure.in
-dnl
-dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
-dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
-dnl make break in a more obvious way.
-dnl
-dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
-dnl Bumping version number to 2.9.10
-dnl
-dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
-dnl Support for FEATURE_CGI_EDIT_ACTIONS
-dnl
-dnl Revision 1.19 2001/10/07 15:33:14 oes
-dnl Removed FEATURE_DENY_GZIP
-dnl Bumped up version number
-dnl
-dnl Revision 1.18 2001/09/13 13:10:24 steudten
-dnl
-dnl PreWork for Debug Interface.
-dnl Add new option "--with-debug" to enable debugging (flags aso.)
-dnl
-dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
-dnl Mac OSX (Darwin) support added.
-dnl
-dnl Revision 1.16 2001/09/12 22:55:45 joergs
-dnl AmigaOS support added.
-dnl
-dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
-dnl
-dnl OS/2 port: update autoconf'd support for the platform.
-dnl
-dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
-dnl Fixing Solaris build (I hope) and tidying up #defines:
-dnl - All feature #defines are now of the form FEATURE_xxx
-dnl - Permanently turned off WIN_GUI_EDIT
-dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
-dnl
-dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
-dnl Major changes to build system in order to fix these bugs:
-dnl - pthreads under Linux was broken - changed -lpthread to -pthread
-dnl - Compiling in MinGW32 mode under CygWin now correctly detects
-dnl which shared libraries are available
-dnl - Solaris support (?) (Not tested under Solaris yet)
-dnl
-dnl Revision 1.12 2001/07/25 19:16:27 oes
-dnl Bumping version number to 2.9.8
-dnl
-dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
-dnl Bumping version number to 2.9.7
-dnl
-dnl Revision 1.10 2001/07/18 17:25:04 oes
-dnl Fixed a typo
-dnl
-dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
-dnl Added support for linking with POSIX threads library
-dnl
-dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
-dnl Renaming #define STATIC to STATIC_PCRE
-dnl Adding new #define FEATURE_PTHREAD that will be used to enable
-dnl POSIX threads support.
-dnl
-dnl Revision 1.7 2001/07/13 13:58:05 oes
-dnl Completely reorganized the selection scheme for
-dnl pcre, pcreposix, pcrs and gnu_regex:
-dnl
-dnl The presence of shared pcre, pcreposix or pcrs
-dnl libraried is now autodetected. Additionally, the
-dnl user can enforce using the built-in static variants
-dnl by specifying --disable-dynamic-(pcre|pcrs).
-dnl Care is taken to avoid that pcre is dyn, while pcreposix
-dnl is static, if both are used and that pcrs is static if
-dnl pcrs is.
dnl
-dnl The choice between pcre, gnu or no regex for actionsfile
-dnl URL matching is now via
-dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
-dnl default being pcre.
-dnl
-dnl Revision 1.6 2001/06/29 21:56:40 oes
-dnl Version -> 2.9.5
-dnl
-dnl Revision 1.5 2001/06/29 13:26:27 oes
-dnl Introduced #define CODE_STATUS
-dnl
-dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
-dnl Unified blocklist/imagelist/permissionslist.
-dnl File format is still under discussion, but the internal changes
-dnl are (mostly) done.
-dnl
-dnl Also modified interceptor behaviour:
-dnl - We now intercept all URLs beginning with one of the following
-dnl prefixes (and *only* these prefixes):
-dnl * http://i.j.b/
-dnl * http://ijbswa.sf.net/config/
-dnl * http://ijbswa.sourceforge.net/config/
-dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
-dnl - Internal changes so that intercepted and fast redirect pages
-dnl are not replaced with an image.
-dnl - Interceptors now have the option to send a binary page direct
-dnl to the client. (i.e. ijb-send-banner uses this)
-dnl - Implemented show-url-info interceptor. (Which is why I needed
-dnl the above interceptors changes - a typical URL is
-dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
-dnl The previous mechanism would not have intercepted that, and
-dnl if it had been intercepted then it then it would have replaced
-dnl it with an image.)
-dnl
-dnl Revision 1.3 2001/05/22 18:46:04 oes
-dnl
-dnl - Enabled filtering banners by size rather than URL
-dnl by adding patterns that replace all standard banner
-dnl sizes with the "Junkbuster" gif to the re_filterfile
-dnl
-dnl - Enabled filtering WebBugs by providing a pattern
-dnl which kills all 1x1 images
-dnl
-dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
-dnl which is selected by the (nonstandard and therefore
-dnl capital) letter 'U' in the option string.
-dnl It causes the quantifiers to be ungreedy by default.
-dnl Appending a ? turns back to greedy (!).
-dnl
-dnl - Added a new interceptor ijb-send-banner, which
-dnl sends back the "Junkbuster" gif. Without imagelist or
-dnl MSIE detection support, or if tinygif = 1, or the
-dnl URL isn't recognized as an imageurl, a lame HTML
-dnl explanation is sent instead.
-dnl
-dnl - Added new feature, which permits blocking remote
-dnl script redirects and firing back a local redirect
-dnl to the browser.
-dnl The feature is conditionally compiled, i.e. it
-dnl can be disabled with --disable-fast-redirects,
-dnl plus it must be activated by a "fast-redirects"
-dnl line in the config file, has its own log level
-dnl and of course wants to be displayed by show-proxy-args
-dnl Note: Boy, all the #ifdefs in 1001 locations and
-dnl all the fumbling with configure.in and acconfig.h
-dnl were *way* more work than the feature itself :-(
-dnl
-dnl - Because a generic redirect template was needed for
-dnl this, tinygif = 3 now uses the same.
-dnl
-dnl - Moved GIFs, and other static HTTP response templates
-dnl to project.h
-dnl
-dnl - Some minor fixes
-dnl
-dnl - Removed some >400 CRs again (Jon, you really worked
-dnl a lot! ;-)
-dnl
-dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
-dnl Version 2.9.4 checkin.
-dnl - Merged popupfile and cookiefile, and added control over PCRS
-dnl filtering, in new "permissionsfile".
-dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
-dnl file error you now get a message box (in the Win32 GUI) rather
-dnl than the program exiting with no explanation.
-dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
-dnl skipping.
-dnl - Removed tabs from "config"
-dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
-dnl - Bumped up version number.
-dnl
-dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
-dnl Initial import of version 2.9.3 source tree
-dnl
-dnl
-
dnl =================================================================
dnl AutoConf Initialization
dnl =================================================================
-AC_REVISION($Revision: 1.111 $)
+AC_REVISION($Revision: 1.213 $)
AC_INIT(jcc.c)
if test ! -f config.h.in; then
else
autoheader
fi
-fi
+fi
AC_CONFIG_HEADER([config.h])
AC_CANONICAL_HOST
dodk=auto
DKPREFIX=none
AC_ARG_WITH(docbook, dnl
- --with-docbook=[[yes|no|directory]]
- Enable docbook documentation creation
+ --with-docbook=[[yes|no|directory]]
+ Enable docbook documentation creation
(default = yes, for gnu and linux),[dnl
case "$with_docbook" in
yes) dodk=yes;;
no) dodk=no;;
-*)
+*)
dodk=yes
DKPREFIX=$withval
;;
VERSION_MAJOR=3
VERSION_MINOR=0
-VERSION_POINT=9
+VERSION_POINT=29
CODE_STATUS="UNRELEASED"
-dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
-dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
-dnl whenever CVS in a stable branch differs from the last release.
+dnl Timestamp (date +%s) used by the mtree-spec target.
+dnl Should be updated before releases but forgetting it isn't critical.
+SOURCE_DATE_EPOCH=1545411710
+
+dnl CODE_STATUS can be "alpha", "beta", "stable" or "UNRELEASED",
+dnl and will be used for CGI output. Increment version number and
+dnl set status to "UNRELEASED" whenever CVS differs from the last
+dnl release and no new release is near.
dnl =================================================================
dnl Substitute the version numbers
AC_SUBST(VERSION_MINOR)
AC_SUBST(VERSION_POINT)
AC_SUBST(CODE_STATUS)
+AC_SUBST(SOURCE_DATE_EPOCH)
dnl
AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
AC_PROG_AWK
AC_CHECK_PROG(GDB,gdb,yes,no)
-AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
-AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
+AC_PATH_PROG(BGROUPS,groups,no,$PATH:/bin:/usr/bin:/usr/local/bin)
+AC_PATH_PROG(ID,id,no,$PATH:/bin:/usr/bin:/usr/local/bin)
AC_SUBST(ID)
AC_SUBST(BGROUPS)
dnl =================================================================
-dnl debug, gcc and gdb support
+dnl debug, gcc and gdb support
dnl =================================================================
AC_ARG_WITH(debug,
dnl =================================================================
-if test "$EMXOS2" = yes; then
+if test "$host_os" = haiku; then
echo "Skipping user and group validity stuff.";
else
AC_MSG_CHECKING([for group])
AC_ARG_WITH(group,
[ --with-group=privoxy Set group for privoxy],
- [
+ [
if test "x$withval" != "xyes"; then
if test $BGROUPS = no ; then
AC_MSG_ERROR(There is no 'groups' program on this system)
AC_MSG_RESULT($with_group)
$BGROUPS $USER >/dev/null
if test $? -eq 0 ; then
- # FIXME: this fails if valid group, but not first group
- # listed.
- if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
+ for i in `$BGROUPS $USER | sed 's/.*: //' 2>/dev/null`; do
+ if test "x$i" = "x$with_group" ; then
+ GROUP=$with_group
+ break
+ fi
+ done
+ if test "x$GROUP" != "x$with_group" ; then
AC_MSG_ERROR(The given value '$withval' does not match group entry)
- else
- GROUP=$with_group;
fi
else
AC_MSG_ERROR(There is no group entry for user '$USER')
dnl =================================================================
dnl additional gcc flags
dnl =================================================================
-dnl
+dnl
if test "$GCC"; then
if test "$host" != "powerpc-unknown-amigaos"; then
CFLAGS="-pipe $CFLAGS"
dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
dnl the compiler will use completely different sets of library
dnl and include files.
-dnl
+dnl
dnl =================================================================
AC_MINGW32
dodk=no
if test $target_type = unix; then
case "$host_os" in
- linux* | gnu*)
+ linux* | gnu* | *bsd*)
dodk=yes
;;
esac
if test $target_type = mingw; then
WIN_ONLY=
- SPECIAL_CFLAGS="-mwindows -mno-cygwin"
- PTHREAD_LIB=-lpthreadGC
+ CFLAGS="$CFLAGS -DWINVER=0x501"
+ SPECIAL_CFLAGS="-mwindows"
+dnl from the cygwin FAQ: The regular setup allows you to use the -mwindows option
+dnl to include a set of the basic libraries user32, gdi32 and comdlg32.
+dnl (and also make your program a GUI program instead of a console program)
+ PTHREAD_LIB=-lpthread
echo "Using mingw32 (Win32 GUI)"
else
WIN_ONLY=#
fi
AC_SUBST(WIN_ONLY)
-dnl Checking which text html browser we have avaliable
if test $dodk != no; then
- AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
- if test "$WDUMP" = false; then
- AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\))
+ AC_CHECK_PROGS(W3M, w3m, false)
+ if test "$W3M" = false; then
+ AC_MSG_WARN(You need w3m to build text documentation.)
fi
if test $DB2HTML = false; then
dnl We need to clean the variable, otherwise AC_CHECK_PROGS
- dnl will fail
+ dnl will fail
DB2HTML=""
AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
fi
fi
-AC_SUBST(WDUMP)
+AC_SUBST(W3M)
AC_SUBST(DB2HTML)
dnl If we use rpm, we need to check where %_topdir is
fi
AC_SUBST(RPM_BASE)
+dnl prefer openjade to jade
dnl Check for jade, so we can build the documentation
-AC_CHECK_PROGS(JADEBIN,jade openjade,false)
+AC_CHECK_PROGS(JADEBIN,openjade jade,false)
AC_SUBST(JADEBIN)
+dnl Prefer OpenSP to SP
+dnl ref: https://lists.privoxy.org/pipermail/privoxy-devel/2018-November/000293.html
+AC_CHECK_PROGS(NSGMLS,onsgmls nsgmls,false)
+AC_SUBST(NSGMLS)
+
dnl Check for man2html for docs.
AC_CHECK_PROGS(MAN2HTML,man2html,false)
AC_SUBST(MAN2HTML)
for i in /usr/share/sgml/CATALOG.docbk30 \
/usr/share/sgml/CATALOG.docbk31 \
/usr/share/sgml/CATALOG.docbk31 \
+ /usr/local/share/sgml/docbook/2.4.1/docbook.cat \
/usr/local/share/sgml/docbook/3.0/docbook.cat \
/usr/local/share/sgml/docbook/3.1/docbook.cat \
/usr/share/sgml/docbook/dtd/3.1/docbook.cat \
AC_SUBST(JADECAT)
AC_SUBST(DKPREFIX)
+AC_ARG_ENABLE(large-file-support,
+[ --enable-large-file-support Define _LARGE_FILES and friends.
+ Required by some systems to support files larger then 2GB.],
+[if test $enableval = yes; then
+ CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1"
+fi])
+
+AC_ARG_ENABLE(static-linking,
+[ --enable-static-linking Use static linking instead of dynamic linking (ie. LDFLAGS=-static)],
+[ if test $enableval = yes; then LDFLAGS="$LDFLAGS -static"; fi ])
+
dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
old_CFLAGS_nospecial=$CFLAGS
CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
[ --disable-pthread Don't use POSIX threads (pthreads)],
[if test $enableval = no; then
# Disable pthreads
+ if test $have_pthread = yes; then
+ AC_MSG_WARN([pthreads seem to be available but you are using --disable-pthread.])
+ AC_MSG_WARN([This is almost always a mistake and can render Privoxy unacceptable slow.])
+ fi
have_pthread=no
fi])
AC_SUBST(PTHREAD_ONLY)
+dnl =================================================================
+dnl On most platforms select() does not support fd numbers above
+dnl FD_SETSIZE, as a result Privoxy can't handle more than
+dnl approximately FD_SETSIZE/2 client connections.
+dnl On some platforms the value can be changed at compile time,
+dnl on others it's hardcoded and requires recompilation of the OS.
+dnl Only relevant if select() is actually being used.
+dnl =================================================================
+AC_ARG_WITH(fdsetsize,
+ [ --with-fdsetsize=n Optimistically redefine FD_SETSIZE with the intend to change the number of connections Privoxy can handle. Dangerous if the platform doesn't support this. Pointless if Privoxy can use poll() instead of select().],
+ [
+ if test "x$withval" != "xyes"; then
+ AC_DEFINE_UNQUOTED(FD_SETSIZE,$with_fdsetsize,[Relevant for select(). Not honoured by all OS.])
+ echo "Redefining FD_SETSIZE to $with_fdsetsize."
+ AC_MSG_WARN(On platforms that don't support FD_SETSIZE redefinition it may cause memory corruption.)
+ else
+ AC_MSG_ERROR(--with-fdsetsize used without value)
+ fi
+ ]
+)
+
dnl =================================================================
dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
dnl gmtime and localtime
dnl Solaris problem, and others perhaps (socklen_t is undefined)
dnl =================================================================
+if test $target_type != mingw; then
+# i686-w64-mingw32-gcc gets socklen_t define from ws2tcpip.h
+
AC_MSG_CHECKING([for socklen_t])
AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
AC_MSG_RESULT([no])
AC_DEFINE(socklen_t,int,
[ Define to 'int' if <sys/socket.h> doesn't have it. ]))
+fi
dnl =================================================================
dnl OS/2 specific
dnl =================================================================
dnl Mac OSX specific
dnl =================================================================
-
+
case "$host" in
*-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
-;;
+;;
esac
dnl =================================================================
esac
dnl =================================================================
-dnl AmigaOS specific
+dnl Haiku specific
dnl =================================================================
-AMIGAOS_ONLY=#
+if test "$host_os" = haiku; then
+ # Omit the "-pthread" flag to gcc, even when building with gcc 2.95
+ SPECIAL_CFLAGS=
-case "$host" in
-*-amigaos) AMIGAOS_ONLY=
-;;
-esac
+ # Haiku's pthreads implementation exists in its system library,
+ # libroot, not in a separate pthreads library
+ PTHREAD_LIB=
+
+ # Networking code exists in libnetwork
+ SOCKET_LIB=-lnetwork
-AC_SUBST(AMIGAOS_ONLY)
+ # Search Haiku's common-library folder to find its pcre and
+ # pcreposix libraries
+ LIBS="-L/boot/common/lib $LIBS"
+fi
dnl =================================================================
dnl Check for standard compiler stuff
AC_CHECK_SIZEOF(long, 4)
AC_CHECK_SIZEOF(long long, 8)
AC_CHECK_SIZEOF(size_t, 4)
+AC_CHECK_SIZEOF(time_t, 8)
dnl Checks for header files.
-dnl AC_HEADER_SYS_WAIT
-dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
-AC_CHECK_HEADERS([OS.h arpa/inet.h errno.h fcntl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h sys/timeb.h sys/wait.h unistd.h])
+AC_CHECK_HEADERS([ \
+ OS.h \
+ arpa/inet.h \
+ errno.h \
+ fcntl.h \
+ limits.h \
+ locale.h \
+ netdb.h \
+ netinet/in.h \
+ stddef.h \
+ stdlib.h \
+ string.h \
+ sys/ioctl.h \
+ sys/socket.h \
+ sys/time.h \
+ sys/timeb.h \
+ sys/wait.h \
+ unistd.h \
+])
dnl Checks for library functions.
-dnl AC_TYPE_SIGNAL
-dnl AC_CHECK_FUNC(strstr)
-dnl bcopy and memmove are for PCRE
-AC_CHECK_FUNCS([strerror bcopy memmove])
+dnl bcopy is for PCRE
+AC_CHECK_FUNCS([bcopy])
AC_PROG_GCC_TRADITIONAL
-dnl uncommenting does not work for swa. suse linux
-dnl AC_FUNC_MALLOC
-AC_FUNC_SETPGRP
AC_TYPE_SIGNAL
-dnl uncommenting does not work for swa. suse linux
-dnl AC_FUNC_STAT
-AC_CHECK_FUNCS([access atexit getcwd gethostbyaddr gethostbyaddr_r gethostbyname gethostbyname_r gettimeofday inet_ntoa localtime_r memchr memmove memset putenv random regcomp select setlocale snprintf socket strchr strdup strerror strftime strlcat strlcpy strptime strstr strtoul timegm tzset])
+AC_CHECK_FUNCS([ \
+ access \
+ arc4random \
+ atexit \
+ calloc \
+ getcwd \
+ gethostbyaddr \
+ gethostbyaddr_r \
+ gethostbyname \
+ gethostbyname_r \
+ gettimeofday \
+ inet_ntoa \
+ memchr \
+ memmove \
+ memset \
+ nanosleep \
+ poll \
+ putenv \
+ random \
+ regcomp \
+ select \
+ setlocale \
+ shutdown \
+ snprintf \
+ socket \
+ strchr \
+ strdup \
+ strerror \
+ strftime \
+ strlcat \
+ strlcpy \
+ strptime \
+ strtoul \
+ timegm \
+ tzset \
+])
+
+dnl Checks for RFC 2553 resolver and socket functions
+AC_ARG_ENABLE(ipv6-support,
+[ --disable-ipv6-support Disable IPv6 support and other RFC-2554-related improvements],
+[if test $enableval = yes; then
+ enable_ipv6_support=yes
+fi], enable_ipv6_support=yes)
+
+if test $enable_ipv6_support != yes; then
+ AC_MSG_WARN([Skipping checks for IPv6 support and other RFC-2554-related improvements.
+ Due to lock contention, this may result in slower DNS resolution for IPv4 setups, too.])
+elif test $target_type = mingw; then
+ AC_CHECK_LIB(ws2_32, main)
+
+ AC_MSG_CHECKING(getaddrinfo in ws2_32)
+ AC_TRY_LINK(
+ [
+ #include<winsock2.h>
+ #include<windows.h>
+ #include<ws2tcpip.h>
+ ],
+ [getaddrinfo(0,0,0,0)],
+ have_ws2_32_getaddrinfo=yes
+ )
+ AC_MSG_RESULT($have_ws2_32_getaddrinfo)
+
+ AC_MSG_CHECKING(getnameinfo in ws2_32)
+ AC_TRY_LINK(
+ [
+ #include<winsock2.h>
+ #include<windows.h>
+ #include<ws2tcpip.h>
+ ],
+ [getnameinfo(0,0,0,0,0,0,0)],
+ have_ws2_32_getnameinfo=yes
+ )
+ AC_MSG_RESULT($have_ws2_32_getnameinfo)
+ if test $have_ws2_32_getaddrinfo ; then
+ if test $have_ws2_32_getnameinfo ; then
+ AC_DEFINE([HAVE_RFC2553], [1],
+ [Define if RFC 2553 resolver functions like getaddrinfo(3) and
+ getnameinfo(3) present])
+ fi
+ fi
+else
+ AC_CHECK_FUNC([getaddrinfo],
+ [AC_CHECK_FUNC([getnameinfo],
+ [AC_DEFINE([HAVE_RFC2553], [1],
+ [Define if RFC 2553 resolver functions like getaddrinfo(3) and
+ getnameinfo(3) present])
+ ])
+ ])
+fi
dnl =================================================================
dnl Checks for libraries.
], [have_pcre=no])
])
], [have_pcre=no])
-
+
AC_CHECK_LIB(pcreposix, regcomp, [
AC_CHECK_HEADER(pcreposix.h, [
AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)])
], [have_pcreposix=no])
])
-], [have_pcreposix=no], -lpcre)
+], [have_pcreposix=no], -lpcre)
dnl ================================================================
dnl libpcrs is temporarily disabled.
AC_DEFINE(FEATURE_STATISTICS)
fi],AC_DEFINE(FEATURE_STATISTICS))
-AC_ARG_ENABLE(ie-images,
-[ --enable-ie-images Enable a quick but not always reliable auto-detect whether requests from
- MS Internet Explorer are for an image or not.],
+AC_ARG_ENABLE(extended-statistics,
+[ --enable-extended-statistics Gather extended statistics.],
[if test $enableval = yes; then
- AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
-fi],)
+ AC_DEFINE(FEATURE_EXTENDED_STATISTICS)
+fi])
AC_ARG_ENABLE(image-blocking,
-[ --disable-image-blocking Don't try to figure out whether a request is
+[ --disable-image-blocking Don't try to figure out whether a request is
for an image or HTML - assume HTML.],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_IMAGE_BLOCKING)
fi],
AC_DEFINE(FEATURE_IMAGE_BLOCKING))
-AC_ARG_ENABLE(acl-files,
-[ --disable-acl-files Prevents the use of ACL files to control access to
+AC_ARG_ENABLE(acl-support,
+[ --disable-acl-support Prevents the use of ACLs to control access to
Privoxy by IP address.],
[if test $enableval = yes; then
AC_DEFINE(FEATURE_ACL)
fi],
AC_DEFINE(FEATURE_TRUST))
-AC_ARG_ENABLE(jar-files,
-[ --disable-jar-files Prevents the use of jar files to capture cookies.],
-[if test $enableval = yes; then
- AC_DEFINE(FEATURE_COOKIE_JAR)
-fi],
-AC_DEFINE(FEATURE_COOKIE_JAR))
-
AC_ARG_ENABLE(editor,
[ --disable-editor Prevents the use of the web-based actions file
editor and web-based temporary disable setting.],
AC_DEFINE(FEATURE_GRACEFUL_TERMINATION)
fi])
+AC_ARG_ENABLE(pcre-host-patterns,
+[ --enable-pcre-host-patterns Allow to use PCRE syntax in host patterns by prefixing the pattern with
+ "PCRE-HOST-PATTERN:". You can use tools/url-pattern-translator.pl to
+ convert existing action files to use PCRE host patterns.],
+[if test $enableval = yes; then
+ AC_DEFINE(FEATURE_PCRE_HOST_PATTERNS)
+fi])
+
+AC_ARG_ENABLE(external-filters,
+[ --enable-external-filters Allow to filter content with scripts and programs. Experimental.],
+[if test $enableval = yes; then
+ AC_DEFINE(FEATURE_EXTERNAL_FILTERS,1,[Define to 1 to allow to filter content with scripts and programs.])
+fi])
+
+AC_ARG_ENABLE(accept-filter,
+[ --enable-accept-filter Try to use accf_http(9) if supported.],
+[if test $enableval = yes; then
+ AC_DEFINE(FEATURE_ACCEPT_FILTER)
+fi])
+
+AC_ARG_ENABLE(strptime-sanity-checks,
+[ --enable-strptime-sanity-checks Only trust strptime() results if an additional strftime()/strptime()
+ conversion doesn't change the result. Can be useful if strptime() is
+ known or suspected to be broken.],
+[if test $enableval = yes; then
+ AC_DEFINE(FEATURE_STRPTIME_SANITY_CHECKS)
+fi])
+
+AC_ARG_ENABLE(client-tags,
+[ --disable-client-tags Disable support for client-specific tags],
+[ if test $enableval = "no"; then have_client_tags=no; fi ])
+if test "${have_client_tags}" = "no"; then
+ echo "Disabling support for client-specific tags."
+ FEATURE_CLIENT_TAGS_ONLY="#"
+else
+ echo "Enabling support for client-specific tags."
+ AC_DEFINE(FEATURE_CLIENT_TAGS,1,[Define to enable support for client-specific tags.])
+ FEATURE_CLIENT_TAGS_ONLY=""
+fi
+AC_SUBST(FEATURE_CLIENT_TAGS_ONLY)
+
+FUZZ_ONLY="#"
+AC_ARG_ENABLE(fuzz,
+[ --enable-fuzz Enable code that makes fuzzing more convenient],
+[if test $enableval = yes; then
+ FUZZ_ONLY=""
+ AC_DEFINE(FUZZ,1,[Define to make fuzzing more convenient.])
+fi])
+AC_SUBST(FUZZ_ONLY)
+
dnl pcre/pcrs is needed for CGI anyway, so
dnl the choice is only between static and
dnl dynamic:
dnl by configure, but not necessarily by the compiler.
dnl ====================================================
AC_ARG_ENABLE(zlib,
-[ --enable-zlib Use an external zlib library to allow decompressing
- data on the fly.],
+[ --disable-zlib Don't use zlib to decompress data before filtering.],
+[enableval2=$enableval],
+[enableval2=yes])
+if test $enableval2 = yes; then
+ AC_CHECK_LIB(z, zlibVersion, [have_zlib="yes"], [have_zlib="no"])
+ if test $have_zlib = "yes"; then
+ LIBS="$LIBS -lz"
+ AC_DEFINE(FEATURE_ZLIB,1,[Define to 1 to use zlib to decompress data before filtering.])
+ else
+ AC_MSG_WARN([No zlib found.
+ Privoxy will not be able to filter compressed content.
+ This may become a fatal error in the future.])
+ fi
+fi
+
+AC_ARG_ENABLE(compression,
+[ --enable-compression Allow Privoxy to compress buffered content if the client supports it. Requires zlib support.],
[enableval2=$enableval],
[enableval2=no])
if test $enableval2 = yes; then
- AC_CHECK_LIB(z, zlibVersion, , [
- AC_MSG_ERROR([Unable to find a copy of zlib. The zlib library
-is necessary to enable compresion support. ])
- ])
- AC_DEFINE(FEATURE_ZLIB,1,
- [ Define to 1 to use compression through the zlib library. ])
+ if test $have_zlib = "yes"; then
+ echo Enabling compression support.
+ AC_DEFINE(FEATURE_COMPRESSION,1,[Define to 1 to use compression through the zlib library.])
+ else
+ AC_MSG_WARN([No zlib found. Privoxy will not be able to (re-)compressed buffered content.])
+ fi
fi
if test $have_pcre = "yes"; then
echo "using libpcre"
pcre_dyn=yes
+ AC_DEFINE(FEATURE_DYNAMIC_PCRE,1,[Define to dynamically link to pcre.])
STATIC_PCRE_ONLY=#
LIBS="$LIBS -lpcre -lpcreposix"
else
- echo "using built-in static pcre"
+ AC_MSG_WARN([You are using the static PCRE code which is out of date and scheduled for removal, for details see:
+ http://sourceforge.net/mailarchive/forum.php?thread_name=20080511195555.2dc6cfdc%40fabiankeil.de&forum_name=ijbswa-developers])
pcre_dyn=no
- AC_DEFINE(STATIC_PCRE)
+ # STATIC_PCRE is a name pcre needs to statically link on Windows.
+ # Privoxy itself no longer uses it.
+ AC_DEFINE(STATIC_PCRE,1,[Define to statically link to internal outdated pcre on Windows.])
STATIC_PCRE_ONLY=
fi
+AC_DEFINE(FEATURE_CONNECTION_KEEP_ALIVE)
+
+if test $have_pthread = "yes" -o $target_type = "mingw"; then
+ echo Enabling connection-sharing support.
+ AC_DEFINE(FEATURE_CONNECTION_SHARING)
+fi
+
dnl =================================================
dnl libpcrs is temporarily disabled,
dnl see comment above for the reason.
dnl STATIC_PCRS_ONLY=#
dnl LIBS="$LIBS -lpcrs"
dnl else
- echo "using built-in static pcrs"
+dnl echo "using built-in static pcrs"
AC_DEFINE(STATIC_PCRS)
STATIC_PCRS_ONLY=
dnl fi
AC_SUBST(STATIC_PCRE_ONLY)
AC_SUBST(STATIC_PCRS_ONLY)
+FEATURE_HTTPS_INSPECTION_ONLY=#
+dnl ========================================================
+dnl check for mbedTLS which is required for https inspection
+dnl ========================================================
+FEATURE_HTTPS_INSPECTION_ONLY_MBEDTLS=#
+OPT_MBEDTLS=no
+AC_ARG_WITH(mbedtls,dnl
+AC_HELP_STRING([--with-mbedtls], [Enable mbedTLS detection for https inspection.])
+AC_HELP_STRING([--without-mbedtls], [Disable mbedTLS detection]),
+ OPT_MBEDTLS=$withval)
+
+if test X"$OPT_MBEDTLS" != Xno; then
+
+ AC_CHECK_LIB(mbedtls, mbedtls_ssl_init,
+ [
+ AC_DEFINE(FEATURE_HTTPS_INSPECTION, 1, [if SSL/TLS is enabled])
+ AC_DEFINE(FEATURE_HTTPS_INSPECTION_MBEDTLS, 1, [if mbedTLS is enabled])
+ AC_SUBST(FEATURE_HTTPS_INSPECTION_MBEDTLS, [1])
+ FEATURE_HTTPS_INSPECTION_MBEDTLS="yes"
+ ], [], -lmbedx509 -lmbedcrypto)
+
+ if test "x$FEATURE_HTTPS_INSPECTION_MBEDTLS" = "xyes"; then
+ AC_MSG_NOTICE([Detected mbedTLS. Enabling https inspection.])
+
+ LIBS="-lmbedtls -lmbedx509 -lmbedcrypto $LIBS"
+ old_CFLAGS_nospecial="-Imbedtls/include $old_CFLAGS_nospecial"
+
+ FEATURE_HTTPS_INSPECTION_ONLY=
+ FEATURE_HTTPS_INSPECTION_ONLY_MBEDTLS=
+ fi
+fi
+AC_SUBST(FEATURE_HTTPS_INSPECTION_ONLY_MBEDTLS)
+
+dnl ========================================================
+dnl check for OpenSSL which is required for https inspection
+dnl ========================================================
+FEATURE_HTTPS_INSPECTION_ONLY_OPENSSL=#
+OPT_OPENSSL=no
+AC_ARG_WITH(openssl,dnl
+AC_HELP_STRING([--with-openssl], [Enable OpenSSL detection for https inspection.])
+AC_HELP_STRING([--without-openssl], [Disable OpenSSL detection]),
+ OPT_OPENSSL=$withval)
+
+if test X"$OPT_OPENSSL" != Xno; then
+ if test "$PORTNAME" != "win32"; then
+ AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])])
+ FOUND_SSL_LIB="no"
+ AC_CHECK_LIB(ssl, OPENSSL_init_ssl, [FOUND_SSL_LIB="yes"])
+ AC_CHECK_LIB(ssl, SSL_library_init, [FOUND_SSL_LIB="yes"])
+ AS_IF([test "x$FOUND_SSL_LIB" = xno], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])])
+ else
+ AC_SEARCH_LIBS(CRYPTO_new_ex_data, eay32 crypto, [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])])
+ FOUND_SSL_LIB="no"
+ AC_SEARCH_LIBS(OPENSSL_init_ssl, ssleay32 ssl, [FOUND_SSL_LIB="yes"])
+ AC_SEARCH_LIBS(SSL_library_init, ssleay32 ssl, [FOUND_SSL_LIB="yes"])
+ AS_IF([test "x$FOUND_SSL_LIB" = xno], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])])
+ fi
+
+ if test "x$FOUND_SSL_LIB" = xyes; then
+ AC_DEFINE(FEATURE_HTTPS_INSPECTION, 1, [if SSL/TLS is enabled])
+ AC_DEFINE(FEATURE_HTTPS_INSPECTION_OPENSSL, 1, [if OpenSSL is enabled])
+ AC_SUBST(FEATURE_HTTPS_INSPECTION_OPENSSL, [1])
+ FEATURE_HTTPS_INSPECTION="yes"
+ FEATURE_HTTPS_INSPECTION_OPENSSL="yes"
+ fi
+
+ if test "x$FEATURE_HTTPS_INSPECTION_OPENSSL" = "xyes"; then
+ AC_MSG_NOTICE([Detected OpenSSL. Enabling https inspection.])
+
+ LIBS="$LIBS -lssl -lcrypto"
+ old_CFLAGS_nospecial="$old_CFLAGS_nospecial"
+
+ FEATURE_HTTPS_INSPECTION_ONLY=
+ FEATURE_HTTPS_INSPECTION_ONLY_OPENSSL=
+ fi
+fi
+AC_SUBST(FEATURE_HTTPS_INSPECTION_ONLY_OPENSSL)
+
+AC_SUBST(FEATURE_HTTPS_INSPECTION_ONLY)
+
+dnl ========================================================
+dnl Check for Brotli which can be used for decompression
+dnl ========================================================
+WITH_BROTLI=no
+AC_ARG_WITH(brotli,
+AC_HELP_STRING([--with-brotli], [Enable Brotli detection])
+AC_HELP_STRING([--without-brotli], [Disable Brotli detection]),
+ WITH_BROTLI=$withval)
+
+if test X"$WITH_BROTLI" != Xno; then
+
+ LIBS="$LIBS -lbrotlidec"
+
+ AC_CHECK_LIB(brotlidec, BrotliDecoderDecompress)
+
+ AC_CHECK_HEADERS(brotli/decode.h,
+ FEATURE_BROTLI=1
+ AC_DEFINE(FEATURE_BROTLI, 1, [If Brotli is used for decompression])
+ AC_SUBST(FEATURE_BROTLI, [1])
+ )
+fi
+
+
dnl =================================================================
dnl Final cleanup and output
dnl =================================================================
-dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
+dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it separately
dnl in the Makefile
CFLAGS=$old_CFLAGS_nospecial
AC_SUBST(SPECIAL_CFLAGS)