Add optional support for FreeBSD's accf_http(9).
[privoxy.git] / configure.in
index ba95b32..2658be0 100644 (file)
@@ -1,8 +1,8 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl 
-dnl $Id: configure.in,v 1.79 2002/09/07 02:11:06 hal9 Exp $
+dnl $Id: configure.in,v 1.140 2009/11/07 13:44:43 fabiankeil Exp $
 dnl 
-dnl Written by and Copyright (C) 2001, 2002 the SourceForge
+dnl Written by and Copyright (C) 2001-2009 the
 dnl Privoxy team. http://www.privoxy.org/
 dnl
 dnl Based on the Internet Junkbuster originally written
@@ -27,421 +27,63 @@ 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.79  2002/09/07 02:11:06  hal9
-dnl Remove some testing stuff inadvertantly left in.
-dnl
-dnl Revision 1.78  2002/09/06 23:18:08  hal9
-dnl Migrate PCRE_H_IN_SUBDIR from 3.0 branch for pcre/pcre.h on RH, etc.
-dnl
-dnl Revision 1.77  2002/09/06 13:23:03  oes
-dnl Removed non-functional test for gcc support for -pthread
-dnl
-dnl Revision 1.76  2002/09/05 14:52:17  oes
-dnl Synced in some changes fromm the stable branch:
-dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
-dnl
-dnl Revision 1.75  2002/09/04 12:19:33  oes
-dnl Resurrected acconfig.h and removed double quotes from AC_DEFINE params to enable build on older systems
-dnl
-dnl Revision 1.74  2002/09/03 17:31:33  oes
-dnl Added workaround for very strange behaviour of AC_PROG_CC, which sets CFLAGS to -g -O2 if empty
-dnl
-dnl Revision 1.73  2002/06/05 00:26:21  hal9
-dnl Move all doc build stuff to doc/source/GNUmakefile, leaving a 'make dok'
-dnl target only in toplevel. Add DOC_STATUS variable so docs can be built without
-dnl touching sgml source.
-dnl
-dnl Revision 1.72  2002/06/04 15:52:25  jongfoster
-dnl Removing need for acconfig.h (apparently using acconfig.h is an
-dnl obsolete coding style).
-dnl Moving the DocBook stuff together
-dnl
-dnl Revision 1.71  2002/06/04 14:51:49  jongfoster
-dnl Updating for new paths:
-dnl - Source files in src/
-dnl - Object files in obj/
-dnl
-dnl Revision 1.70  2002/05/27 23:26:34  mal0rd
-dnl Made doc-generation configuration automatic.
-dnl References to DB2HTML were removed, not used.
-dnl --with-docbook now only needed if in odd path.
-dnl
-dnl Revision 1.69  2002/05/25 18:11:49  jongfoster
-dnl Wahay!!! 3.0.x has branched!
-dnl New development version is 3.1.1 alpha
-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.79 $)
-AC_INIT(src/jcc.c)
+AC_REVISION($Revision: 1.140 $)
+AC_INIT(jcc.c)
 
-if test ! -f src/config.h.in; then
+if test ! -f config.h.in; then
    echo "You need to run autoheader first. "
    echo -n "Shall I do this for you now? (y/n) "
    read answer
-   if test $answer != "y"; then
+   if test "$answer" != "y"; then
       exit 1
    else
       autoheader
   fi
 fi  
 
-AC_CONFIG_HEADER([src/config.h])
+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 
+                          (default = yes, for gnu and linux),[dnl
+case "$with_docbook" in
+yes) dodk=yes;;
+no) dodk=no;;
+*) 
+       dodk=yes
+       DKPREFIX=$withval
+       ;;
+esac
+])
+DB2HTML=false
+AC_ARG_WITH(db2html, dnl
+  --with-db2html=<path/executable>
+                          Set the location of the docbook to html converter
+                          (default = search),[dnl
+DB2HTML=$withval
+])
 
 dnl =================================================================
 dnl Application version number
 dnl =================================================================
 
 VERSION_MAJOR=3
-VERSION_MINOR=1
-VERSION_POINT=1
-CODE_STATUS="alpha"
+VERSION_MINOR=0
+VERSION_POINT=16
+CODE_STATUS="UNRELEASED"
 
 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
-dnl used for CGI output
+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 =================================================================
 dnl Substitute the version numbers
@@ -451,26 +93,22 @@ AC_SUBST(VERSION_MAJOR)
 AC_SUBST(VERSION_MINOR)
 AC_SUBST(VERSION_POINT)
 AC_SUBST(CODE_STATUS)
-AC_SUBST(SYSCONFDIR)
 
 dnl
-AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR},
-  [Version number - Major (X._._).])
-AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR},
-  [Version number - Minor (_.X._).])
-AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT},
-  [Version number - Point (_._.X).])
-AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}",
-  [Version number, as a string.])
-AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}",
-  [Status of the code: "alpha", "beta" or "stable".])
+AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
+AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
+AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
+AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
+AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
 
 dnl =================================================================
 dnl Checks for programs needed to build.
 dnl =================================================================
 
 dnl Keep AC_PROG_CC from setting its own defaults:
-CFLAGS=" "
+if test "X$CFLAGS" = "X"; then
+   CFLAGS=" "
+fi
 
 AC_PROG_CC
 AC_PROG_CPP
@@ -480,8 +118,8 @@ AC_PROG_MAKE_SET
 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)
 
@@ -496,35 +134,49 @@ AC_ARG_WITH(debug,
                     if test $ac_cv_prog_cc_g = yes; then
                       if test "$GCC" = yes; then
                         if test "$GDB"; then
-                          CFLAGS="-ggdb"
+                          CFLAGS="$CFLAGS -ggdb"
                         else
-                          CFLAGS="-g"
+                          CFLAGS="$CFLAGS -g"
                         fi
                         CFLAGS="$CFLAGS -Wshadow  -Wconversion"
                       else
-                        CFLAGS="-g"
+                        CFLAGS="$CFLAGS -g"
                       fi
                    fi
                 fi
         ],
         [
-            if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
+            if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
               if test "$GCC" = yes; then
                 CFLAGS="-O2"
-              else
-                CFLAGS=
               fi
             fi
         ]
 )
 
-AC_ARG_WITH(user,
+dnl =================================================================
+dnl Check for user and group validity
+dnl =================================================================
+
+
+if test "$EMXOS2" = yes; then
+  echo "Skipping user and group validity stuff.";
+
+else
+
+  $ID privoxy >/dev/null 2>/dev/null
+  if test $? -ne 0 ; then
+   AC_MSG_WARN(There is no user 'privoxy' on this system)
+  fi
+  AC_MSG_CHECKING([for user])
+  AC_ARG_WITH(user,
         [  --with-user=privoxy          Set user under which privoxy will run],
         [
                 if test "x$withval" != "xyes"; then
                   if test $ID = no ; then
                     AC_MSG_ERROR(There is no 'id' program on this system)
                   else
+                    AC_MSG_RESULT($with_user)
                     $ID $with_user 2>/dev/null >/dev/null
                     if test $? -eq 0 ; then
                       USER=$with_user;
@@ -540,30 +192,27 @@ AC_ARG_WITH(user,
           if test $ID = no ; then
             AC_MSG_ERROR(There is no 'id' programm on this system)
           else
-            $ID privoxy >/dev/null
-            if test $? -eq 0 ; then
-              USER=privoxy;
-            else
-              AC_MSG_WARN(There is no user 'privoxy' on this system)
-              USER=$with_user
-            fi
+            AC_MSG_RESULT(none specified)
+            USER=$with_user
           fi
         ]
-)
-AC_SUBST(USER)
+  )
+  AC_SUBST(USER)
 
-AC_ARG_WITH(group,
+  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)
                   else
+                    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 2>/dev/null |$AWK '{print $3}'`" ; then
+                      if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
                         AC_MSG_ERROR(The given value '$withval' does not match group entry)
                       else
                         GROUP=$with_group;
@@ -580,27 +229,23 @@ AC_ARG_WITH(group,
           if test $BGROUPS = no ; then
             AC_MSG_ERROR(There is no 'groups' programm on this system)
           else
-            $BGROUPS $USER >/dev/null
-            if test $? -eq 0 ; then
-              if test "$with_group" != "`$BGROUPS $USER 2>/dev/null |$AWK '{print $3}'`" -a "$with_group" != "" ; then
-                AC_MSG_ERROR('$USER' isn't a member of '$with_group' group)
-              else
-                GROUP=$with_group;
-              fi
-            else
-              AC_MSG_ERROR(There is no group entry for user '$USER')
-            fi
+            AC_MSG_RESULT(none specified)
+            GROUP=$with_group;
           fi
         ]
-)
-AC_SUBST(GROUP)
+  )
+  AC_SUBST(GROUP)
+
+fi
 
 dnl =================================================================
 dnl additional gcc flags
 dnl =================================================================
 dnl 
 if test "$GCC"; then
-  CFLAGS="-pipe $CFLAGS"
+  if test "$host" != "powerpc-unknown-amigaos"; then
+    CFLAGS="-pipe $CFLAGS"
+  fi
 fi
 
 
@@ -630,12 +275,23 @@ else
   fi
 fi
 
+if test $dodk = auto; then
+       dodk=no
+       if test $target_type = unix; then
+               case "$host_os" in
+               linux* | gnu*)
+                       dodk=yes
+               ;;
+               esac
+       fi
+fi
+
 dnl Decide what to do based on target_type
 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
 dnl This is because we don't know yet whether pthread is enabled.
 
 AC_ARG_ENABLE(mingw32,
-[  --enable-mingw32        Use mingw32 for a Windows GUI],
+[  --enable-mingw32                Use mingw32 for a Windows GUI],
 [if test $enableval = yes; then
   target_type=mingw
 fi])
@@ -658,6 +314,90 @@ else
 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\))
+       fi
+       if test $DB2HTML = false; then
+               dnl We need to clean the variable, otherwise AC_CHECK_PROGS
+               dnl will fail   
+               DB2HTML=""
+               AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
+       fi
+fi
+AC_SUBST(WDUMP)
+AC_SUBST(DB2HTML)
+
+dnl If we use rpm, we need to check where %_topdir is
+AC_CHECK_PROGS(RPMBIN,rpm,false)
+if test $RPMBIN != false; then
+               RPM_BASE=`rpm --eval "%{_topdir}"`
+               if test "$RPM_BASE" = ""; then
+                       RPM_BASE=/usr/src/redhat
+               fi
+fi
+AC_SUBST(RPM_BASE)
+
+dnl Check for jade, so we can build the documentation
+AC_CHECK_PROGS(JADEBIN,jade openjade,false)
+AC_SUBST(JADEBIN)
+
+dnl Check for man2html for docs.
+AC_CHECK_PROGS(MAN2HTML,man2html,false)
+AC_SUBST(MAN2HTML)
+
+dnl Set doc status flag for conditional content inclusions
+DOC_STATUS=p-not-stable
+if  test $CODE_STATUS = stable; then
+     DOC_STATUS="p-stable"
+fi
+AC_SUBST(DOC_STATUS)
+
+dnl Checking for the docbook.dsl stylesheet file
+dnl It is still not portable (directory slash)
+JADECAT=""
+if test $dodk = yes; then
+  if test $DKPREFIX = none; then
+    for i in /usr/share/sgml/docbook/dsssl-stylesheets \
+             /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl \
+             /usr/local/share/sgml/docbook/dsssl/modular \
+             /usr/share/sgml/docbook/stylesheet/dsssl/modular/ \
+             ; do
+dnl  echo -n does not fly with /bin/sh.
+dnl      echo -n "checking for $i/html/docbook.dsl..."
+      AC_MSG_CHECKING([for $i])
+      if test -f $i/html/docbook.dsl; then
+        echo "yes"
+        DKPREFIX=$i
+        break
+      else
+        echo "no"
+      fi
+    done
+# where are the catalogs?
+    for i in /usr/share/sgml/CATALOG.docbk30 \
+             /usr/share/sgml/CATALOG.docbk31 \
+             /usr/share/sgml/CATALOG.docbk31 \
+             /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 \
+             ; do
+dnl     echo -n "checking for $i..."
+      AC_MSG_CHECKING([for $i])
+      if test -f $i; then
+        echo "yes"
+        JADECAT="$JADECAT -c $i"
+      else
+        echo "no"
+      fi
+    done
+  fi
+fi
+AC_SUBST(JADECAT)
+AC_SUBST(DKPREFIX)
+
 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
 old_CFLAGS_nospecial=$CFLAGS
 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
@@ -677,24 +417,34 @@ dnl =================================================================
 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
 
 AC_ARG_ENABLE(pthread,
-[  --disable-pthread       Don't use POSIX threads (pthreads)],
+[  --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])
 
 if test $have_pthread = yes; then
   PTHREAD_ONLY=
-  AC_DEFINE(FEATURE_PTHREAD,1,
-  [Define to use POSIX threads instead of native threads.])
+  AC_DEFINE(FEATURE_PTHREAD)
   echo Using POSIX threads
   if test "$GCC" = "yes"; then
     # Set a GCC specific switch:
     if test "$target_type" = "unix"; then
-      # This compiler switch makes GCC on Linux thread-safe
-      # However, it's not supported on most other OS.
-      PTHREAD_LIB=
-      SPECIAL_CFLAGS="-pthread"
+      ac_jgf_save_CFLAGS=$CFLAGS
+      CFLAGS="$CFLAGS -pthread"
+      AC_TRY_LINK([#include <pthread.h>],
+        [void *p = pthread_create;],
+        [
+          # This compiler switch makes GCC on Linux thread-safe
+          # However, it's not supported on most other OS.
+          PTHREAD_LIB=
+          SPECIAL_CFLAGS="-pthread"
+        ])
+      CFLAGS=$ac_jgf_save_CFLAGS
     fi
   fi
 else
@@ -722,8 +472,7 @@ AC_CHECK_FUNC(gethostbyaddr_r, [
     int l, bl, t, e;
     (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
   ], [
-    AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS,1,
-      [Define if gethostbyaddr_r() exists and takes 8 arguments])
+    AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
     AC_MSG_RESULT([8 args])
   ], [
     AC_TRY_COMPILE([
@@ -734,8 +483,7 @@ AC_CHECK_FUNC(gethostbyaddr_r, [
       int l, bl, t, e;
       (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
     ], [
-      AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS,1,
-      [Define if gethostbyaddr_r() exists and takes 7 arguments])
+      AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
       AC_MSG_RESULT([7 args])
     ], [
       AC_TRY_COMPILE([
@@ -747,8 +495,7 @@ AC_CHECK_FUNC(gethostbyaddr_r, [
         int l, t;
         (void) gethostbyaddr_r(a, l, t, h, d)
       ], [
-        AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS,1,
-      [Define if gethostbyaddr_r() exists and takes 5 arguments])
+        AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
         AC_MSG_RESULT([5 args])
       ], [
         AC_MSG_RESULT(unrecognised)
@@ -769,8 +516,7 @@ AC_CHECK_FUNC(gethostbyname_r, [
     int bl, e;
     (void) gethostbyname_r(n, h, b, bl, &r, &e)
   ], [
-    AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS,1,
-      [Define if gethostbyname_r() exists and takes 6 arguments])
+    AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
     AC_MSG_RESULT([6 args])
   ], [
     AC_TRY_COMPILE([
@@ -781,8 +527,7 @@ AC_CHECK_FUNC(gethostbyname_r, [
       int bl, e;
       (void) gethostbyname_r(n, h, b, bl, &e)
     ], [
-      AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS,1,
-      [Define if gethostbyname_r() exists and takes 5 arguments])
+      AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
       AC_MSG_RESULT([5 args])
     ], [
       AC_TRY_COMPILE([
@@ -793,8 +538,7 @@ AC_CHECK_FUNC(gethostbyname_r, [
         char *n,
         (void) gethostbyname_r(n, h, d)
       ], [
-        AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS,1,
-      [Define if gethostbyname_r() exists and takes 3 arguments])
+        AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
         AC_MSG_RESULT([3 args])
       ], [
         AC_MSG_RESULT(unrecognised)
@@ -815,8 +559,7 @@ AC_CHECK_FUNC(gmtime_r, [
     (void) gmtime_r(t, tm)
   ], [
     AC_MSG_RESULT(ok)
-    AC_DEFINE(HAVE_GMTIME_R,1,
-      [Define if gmtime_r(struct time *, struct tm *) exists])
+    AC_DEFINE(HAVE_GMTIME_R)
   ], [
     AC_MSG_RESULT(unrecognised)
   ])
@@ -834,8 +577,7 @@ AC_CHECK_FUNC(localtime_r, [
     (void) localtime_r(t, tm)
   ], [
     AC_MSG_RESULT(ok)
-    AC_DEFINE(HAVE_LOCALTIME_R,1,
-      [Define if localtime_r(struct time *, struct tm *) exists])
+    AC_DEFINE(HAVE_LOCALTIME_R)
   ], [
     AC_MSG_RESULT(unrecognised)
   ])
@@ -847,9 +589,9 @@ dnl =================================================================
 dnl Solaris specific
 dnl FIXME: Not tested on Solaris yet...
 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
-dnl     make these checks generic, e.g.:
+dnl    make these checks generic, e.g.:
 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
-dnl     (Moritz Barsnick <moritz@barsnick.net>)
+dnl    (Moritz Barsnick <moritz@barsnick.net>)
 dnl =================================================================
 
 
@@ -857,8 +599,7 @@ SOCKET_LIB=
 
 case "$host" in
 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
-            AC_DEFINE(__EXTENSIONS__,1,
-              [Define to 1 on Solaris.  Do not define on other platforms.])
+            AC_DEFINE(__EXTENSIONS__)
             if test "$GCC" = "yes"; then
               # Set a GCC specific switch:
               # This compiler switch makes Solaris thread-safe
@@ -879,9 +620,9 @@ dnl =================================================================
 
 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. ]))
+       AC_MSG_RESULT([no])
+       AC_DEFINE(socklen_t,int,
+               [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
 
 
 dnl =================================================================
@@ -904,6 +645,15 @@ case "$host" in
 ;;  
 esac
 
+dnl =================================================================
+dnl OpenBSD specific
+dnl =================================================================
+
+case "$host" in
+*-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
+;;
+esac
+
 dnl =================================================================
 dnl AmigaOS specific
 dnl =================================================================
@@ -953,8 +703,16 @@ AC_FUNC_SETPGRP
 AC_TYPE_SIGNAL
 dnl uncommenting does not work for swa. suse linux
 dnl AC_FUNC_STAT
-AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
-
+AC_CHECK_FUNCS([access atexit getcwd gethostbyaddr gethostbyaddr_r gethostbyname gethostbyname_r gettimeofday inet_ntoa localtime_r memchr memmove memset poll putenv random regcomp select setlocale snprintf socket strchr strdup strerror strftime strlcat strlcpy strptime strstr strtoul timegm tzset])
+
+dnl Checks for RFC 2553 resolver and socket functions
+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])
+      ])
+])
 
 dnl =================================================================
 dnl Checks for libraries.
@@ -982,177 +740,156 @@ AC_CHECK_LIB(pcreposix, regcomp, [
    ])
 ], [have_pcreposix=no], -lpcre) 
 
-AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
+dnl ================================================================
+dnl libpcrs is temporarily disabled.
+dnl
+dnl Privoxy's own pcrs version fixes some problems that
+dnl are present in libpcrs 0.3, the last pcrs release we
+dnl know of, and as libpcrs seems to be currently unmaintained
+dnl we can't send these fixes upstream.
+dnl ================================================================
+dnl
+dnl AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
 
 dnl =================================================================
 dnl Always defined
 dnl =================================================================
 
-AC_DEFINE(__MT__,1,
-  [Always define this, for thread safety on some platforms.])
+AC_DEFINE(__MT__)
 
 dnl =================================================================
 dnl Features
 dnl =================================================================
 
 AC_ARG_ENABLE(toggle,
-[  --disable-toggle         Don't support temporary disable],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_TOGGLE,1,
-    [ Allow Privoxy to be "disabled" so it is just a normal non-blocking
-      non-anonymizing proxy.  This is useful if you're trying to access a
-      blocked or broken site - just change the setting in the config file,
-      or use the handy "Disable" menu option in the Windows GUI. ])
-fi
+[  --disable-toggle                Don't support temporary disable],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_TOGGLE)
+fi],AC_DEFINE(FEATURE_TOGGLE))
 
 AC_ARG_ENABLE(force,
-[  --disable-force          Don't allow single-page disable],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_FORCE_LOAD,1,
-    [ Bypass filtering for 1 page only. ])
-fi
+[  --disable-force                 Don't allow single-page disable],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_FORCE_LOAD)
+fi],AC_DEFINE(FEATURE_FORCE_LOAD))
 
 AC_ARG_ENABLE(fast-redirects,
-[  --disable-fast-redirects Don't support fast redirects],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_FAST_REDIRECTS,1,
-    [ Locally redirect remote script-redirect URLs. ])
-fi
-
-AC_ARG_ENABLE(killpopup,
-[  --disable-killpopup      Never block popups],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_KILL_POPUPS,1,
-    [ Kills JavaScript popups - window.open, onunload, etc. ])
-fi
+[  --disable-fast-redirects        Don't support fast redirects],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_FAST_REDIRECTS)
+fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
 
 AC_ARG_ENABLE(stats,
-[  --disable-stats          Don't keep statistics],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_STATISTICS,1,
-    [ Enables statistics function. ])
-fi
+[  --disable-stats                 Don't keep statistics],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_STATISTICS)
+fi],AC_DEFINE(FEATURE_STATISTICS))
 
 AC_ARG_ENABLE(ie-images,
-[  --enable-ie-images      Don't auto-detect whether a request from MS Internet
-                           Explorer is for an image or HTML.],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE,1,
-    [ Detect image requests automatically for MSIE.  Will fall back to
-      other image-detection methods (i.e. ´´+image´´ action) for other
-      browsers.
-
-      You must also define FEATURE_IMAGE_BLOCKING to use this feature.
-
-      It detects the following header pair as an image request:
-      ´´User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)´´,
-      ´´Accept: * / *´´.
-
-      And the following as a HTML request:
-      User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0),
-      Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, * / *.
-
-      And no, I haven't got that backwards - IE is being wierd.
-
-      Known limitations: 
-      1) If you press shift-reload on a blocked HTML page, you get
-         the image blocked page, not the HTML ´´blocked´´ page.
-      2) Once an image ´´blocked´´ page has been sent, viewing it 
-         in it's own browser window *should* bring up the HTML
-         ´´blocked´´ page, but it doesn't.  You need to clear the 
-         browser cache to get the HTML version again.
-
-      These limitations are due to IE making inconsistent choices
-      about which ´´Accept:´´ header to send. ])
-fi
+[  --enable-ie-images              Enable a quick but not always reliable auto-detect whether requests from
+                                  MS Internet Explorer are for an image or not.],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
+fi],)
 
 AC_ARG_ENABLE(image-blocking,
-[  --disable-image-blocking Don't try to figure out whether a request is 
-                           for an image or HTML - assume HTML.],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_IMAGE_BLOCKING,1,
-    [ Allow blocking using images as well as HTML.
-      If you do not define this then everything is blocked as HTML.
-      Note that this is required if you want to use FEATURE_IMAGE_DETECT_MSIE. ])
-fi
+[  --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
-                           the proxy by IP address.],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_ACL,1,
-    [ Define to 1 to allow the use of an ACL to control access to the proxy by IP address. ])
-fi
+[  --disable-acl-files             Prevents the use of ACL files to control access to
+                                  Privoxy by IP address.],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_ACL)
+fi],
+AC_DEFINE(FEATURE_ACL))
 
 AC_ARG_ENABLE(trust-files,
-[  --disable-trust-files    Prevents the use of trust files.],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_TRUST,1,
-    [ Define to 1 to allow the use of trust files. ])
-fi
-
-AC_ARG_ENABLE(jar-files,
-[  --disable-jar-files      Prevents the use of jar files to capture cookies.],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_COOKIE_JAR,1,
-    [ Define to 1 to allow the user to capture cookies. ])
-fi
+[  --disable-trust-files           Prevents the use of trust files.],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_TRUST)
+fi],
+AC_DEFINE(FEATURE_TRUST))
 
 AC_ARG_ENABLE(editor,
-[  --disable-editor         Prevents the use of the web-based actions file
-                           editor and web-based temporary disable setting.],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS,1,
-    [ Define to 1 to enable the web-based configuration (actions file) editor.
-      If you have a shared proxy, you might want to turn this off. ])
-fi
+[  --disable-editor                Prevents the use of the web-based actions file
+                                  editor and web-based temporary disable setting.],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
+fi],
+AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
 
 AC_ARG_ENABLE(no-gifs,
-[  --enable-no-gifs         Use politically correct PNG format instead of GIF
-                           for built-in images. May not work with all browsers.],
-[enableval2=$enableval],
-[enableval2=no])
-if test $enableval2 = yes; then
-  AC_DEFINE(FEATURE_NO_GIFS,1,
-    [ Deine to 1 to use PNG instead of GIF for built-in images. ])
-fi
+[  --enable-no-gifs                Use politically correct PNG format instead of GIF
+                                  for built-in images. May not work with all browsers.],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_NO_GIFS)
+fi])
 
+AC_ARG_ENABLE(graceful-termination,
+[  --enable-graceful-termination   Allow to shutdown Privoxy through the webinterface.],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_GRACEFUL_TERMINATION)
+fi])
+
+AC_ARG_ENABLE(extended-host-patterns,
+[  --enable-extended-host-patterns Enable and require PCRE syntax in host patterns. This feature hasn't
+                                  been announced yet and it's not clear if it's a good idea. It's expected
+                                  to work, but undocumented. You should only enable it if you know what
+                                  PCRE is and are sure that you need it for your host patterns. You can
+                                  use tools/url-pattern-translator.pl to convert existing action files to
+                                  use PCRE host patterns. Please don't enable this option when creating
+                                  packages for others that may not be expecting it.],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_EXTENDED_HOST_PATTERNS)
+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])
 
 dnl pcre/pcrs is needed for CGI anyway, so
 dnl the choice is only between static and
 dnl dynamic:
 
 AC_ARG_ENABLE(dynamic-pcre,
-[  --disable-dynamic-pcre        Use the built-in, static pcre, even if
-                                libpcre is available],
+[  --disable-dynamic-pcre          Use the built-in, static pcre, even if libpcre is available],
 [ if test $enableval = "no"; then have_pcre=no; fi ])
 
-AC_ARG_ENABLE(dynamic-pcrs,
-[  --disable-dynamic-pcrs        Use the built-in, static pcrs, even if
-                                libpcrs is available],
-[ if test $enableval = "no"; then have_pcrs=no; fi ])
+dnl =================================================
+dnl libpcrs is temporarily disabled,
+dnl see comment above for the reason.
+dnl =================================================
+dnl AC_ARG_ENABLE(dynamic-pcrs,
+dnl [  --disable-dynamic-pcrs          Use the built-in, static pcrs, even if libpcrs is available],
+dnl [ if test $enableval = "no"; then have_pcrs=no; fi ])
+
+
+dnl ====================================================
+dnl This check is incomplete. For mingw32 zlib is found
+dnl by configure, but not necessarily by the compiler.
+dnl ====================================================
+AC_ARG_ENABLE(zlib,
+[  --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 compression through the zlib library.])
+  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
 
 
 # If we have libpcre and either we also have pcreposix or
@@ -1165,143 +902,40 @@ if test $have_pcre = "yes"; then
   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 scheduled for removal, for details see: 
+    https://sourceforge.net/mailarchive/message.php?msg_id=20080511195555.2dc6cfdc%40fabiankeil.de])
   pcre_dyn=no
-  AC_DEFINE(STATIC_PCRE,1,
-    [Define to 1 if PCRE should be statically built in instead of linking
-     with libpcre.
-     (This is determined by configure depending on the availiability of
-     libpcre and user preferences). The name is ugly, but pcre needs it.
-     Don't try to change this here! Use configure instead.])
+  AC_DEFINE(STATIC_PCRE)
   STATIC_PCRE_ONLY=
 fi
 
-# If we have libpcrs and pcre is linked dynamically
-# then also link pcrs dynamically, else build and link
-# pcrs statically
-#
-if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
-  echo "using libpcrs"
-  STATIC_PCRS_ONLY=#
-  LIBS="$LIBS -lpcrs"
-else
-  echo "using built-in static pcrs"
-  AC_DEFINE(STATIC_PCRS,1,
-    [Define to 1 if PCRS should be statically built in instead of linking
-     with libpcrs.
-     (This is determined by configure depending on the availiability of
-     libpcrs and user preferences).
-     Don't try to change this here! Use configure instead.])
-  STATIC_PCRS_ONLY=
-fi
-
-AC_SUBST(STATIC_PCRE_ONLY)
-AC_SUBST(STATIC_PCRS_ONLY)
-
-dnl =================================================================
-dnl DocBook stuff
-dnl =================================================================
-
-AC_ARG_WITH(docbook, dnl
-  --with-docbook=<directory>    
-                           Set the location of the dsssl stylesheet
-                           (default = search),[dnl
-DKPREFIX=$withval
-])
-
-dnl Check for jade, so we can build the documentation
-dnl Openjade is preferred according to docs, but jade
-dnl is *much* faster.
-AC_CHECK_PROGS(JADEBIN,jade openjade,false)
-AC_SUBST(JADEBIN)
-
-dnl Checking for the docbook.dsl stylesheet file
-dnl It is still not portable (directory slash)
-dnl   ^ Why not?  All systems use / don't they?
-dnl   Windows certainly can.  Is this a Mac or
-dnl   Amiga issue?  -- Jon  /dsssl/docbook/html/docbook.dsl
-DKPREFIXCOPY=$DKPREFIX
-DKPREFIX=false
-for i in $DKPREFIXCOPY /usr/share/sgml/docbook/stylesheet/dsssl/modular \
-        /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl \
-        /usr/share/sgml/docbook-dsssl; do
-        echo -n "checking for $i/html/docbook.dsl..."
-        if test -f $i/html/docbook.dsl; then
-                echo "yes"
-                DKPREFIX=$i
-                break 
-        else
-                echo "no"
-        fi
-done
-AC_SUBST(DKPREFIX)
-
-JADECAT=""
-dnl where are the catalogs?
-for i in /usr/share/sgml/CATALOG.docbk30 \
-         /usr/share/sgml/CATALOG.docbk31; do
-        echo -n "checking for $i..."
-        if test -f $i; then
-                echo "yes"
-                JADECAT="$JADECAT -c $i"
-        else
-                echo "no"
-        fi
-done
-AC_SUBST(JADECAT)
-
-dnl NOT USED?
-dnl DB2HTML=false
-dnl AC_ARG_WITH(db2html, dnl
-dnl  --with-db2html=<path/executable>
-dnl                          Set the location of the docbook to html converter
-dnl                           (default = search),[dnl
-dnl DB2HTML=$withval
-dnl ])
-dnl if ! test -x $DB2HTML; then
-dnl     DB2HTML=""
-dnl fi
-dnl 
-dnl Check for a docbook -> HTML converter
-dnl AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
-dnl AC_SUBST(DB2HTML)
-
-dnl Check for a text browser that supports -dump
-AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
-AC_SUBST(WDUMP)
-
-dnl Check for man2html for docs.
-AC_CHECK_PROGS(MAN2HTML,man2html,false)
-AC_SUBST(MAN2HTML)
+AC_DEFINE(FEATURE_CONNECTION_KEEP_ALIVE)
 
-dnl Set doc status, used for conditional content inclusions
-DOC_STATUS=""
-if  test $CODE_STATUS = alpha; then
-     DOC_STATUS="-ip-alpha -ip-not-stable"
+if test $have_pthread = "yes" -o $target_type = "mingw"; then
+  echo Enabling connection-sharing support.
+  AC_DEFINE(FEATURE_CONNECTION_SHARING)
 fi
-if  test $CODE_STATUS = beta; then
-     DOC_STATUS="-ip-beta -ip-not-stable"
-fi
-if  test $CODE_STATUS = stable; then
-     DOC_STATUS="-ip-stable"
-fi
-echo "checking for doc status flags... $DOC_STATUS"
-AC_SUBST(DOC_STATUS)
 
-dnl =================================================================
-dnl RPM stuff
-dnl =================================================================
-
-dnl If we use rpm, we need to check where %_topdir is
-AC_CHECK_PROGS(RPMBIN,rpm,false)
-if test $RPMBIN != false; then
-                RPM_BASE=`rpm --eval "%{_topdir}"`
-                if test "$RPM_BASE" = ""; then
-                        RPM_BASE=/usr/src/redhat
-                fi
-fi
-AC_SUBST(RPM_BASE)
+dnl =================================================
+dnl libpcrs is temporarily disabled,
+dnl see comment above for the reason.
+dnl =================================================
+dnl # If we have libpcrs and pcre is linked dynamically
+dnl # then also link pcrs dynamically, else build and link
+dnl # pcrs statically
+dnl
+dnl if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
+dnl  echo "using libpcrs"
+dnl  STATIC_PCRS_ONLY=#
+dnl  LIBS="$LIBS -lpcrs"
+dnl else
+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)
 
 dnl =================================================================
 dnl Final cleanup and output
@@ -1314,5 +948,4 @@ AC_SUBST(SPECIAL_CFLAGS)
 
 AC_SUBST(PTHREAD_LIB)
 
-AC_OUTPUT(GNUmakefile doc/source/ldp.dsl doc/source/GNUmakefile)
-
+AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)