dnl Process this file with autoconf to produce a configure script.
-dnl
-dnl $Id: configure.in,v 1.93 2006/09/22 01:26:20 hal9 Exp $
-dnl
-dnl Written by and Copyright (C) 2001 - 2004 the SourceForge
+dnl
+dnl $Id: configure.in,v 1.184 2014/06/02 06:19:05 fabiankeil Exp $
+dnl
+dnl Written by and Copyright (C) 2001-2014 the
dnl Privoxy team. http://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.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.93 $)
+AC_REVISION($Revision: 1.184 $)
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=5
-CODE_STATUS="BETA"
+VERSION_POINT=22
+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 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_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 "$EMXOS2" = yes || 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
- CFLAGS="-pipe $CFLAGS"
+ if test "$host" != "powerpc-unknown-amigaos"; then
+ CFLAGS="-pipe $CFLAGS"
+ fi
fi
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
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])
if test $target_type = mingw; then
WIN_ONLY=
+ CFLAGS="$CFLAGS -DWINVER=0x501"
SPECIAL_CFLAGS="-mwindows -mno-cygwin"
PTHREAD_LIB=-lpthreadGC
echo "Using mingw32 (Win32 GUI)"
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
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])
+
dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
old_CFLAGS_nospecial=$CFLAGS
CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
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])
dnl =================================================================
dnl Mac OSX specific
dnl =================================================================
-
+
case "$host" in
-*-apple-darwin*) SPECIAL_CFLAGS="-Dunix -DOSX_DARWIN"
-;;
+*-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
+;;
esac
dnl =================================================================
AC_SUBST(AMIGAOS_ONLY)
+dnl =================================================================
+dnl Haiku specific
+dnl =================================================================
+
+if test "$host_os" = haiku; then
+ # Omit the "-pthread" flag to gcc, even when building with gcc 2.95
+ SPECIAL_CFLAGS=
+
+ # 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
+
+ # 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
dnl =================================================================
AC_CHECK_SIZEOF(size_t, 4)
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([atexit getcwd gethostbyaddr gethostbyaddr_r gethostbyname gethostbyname_r inet_ntoa localtime_r memchr memmove memset random regcomp select setlocale socket strchr strdup strerror strftime strptime strstr strtoul timegm])
+AC_CHECK_FUNCS([ \
+ access \
+ atexit \
+ getcwd \
+ gethostbyaddr \
+ gethostbyaddr_r \
+ gethostbyname \
+ gethostbyname_r \
+ gettimeofday \
+ inet_ntoa \
+ memchr \
+ memmove \
+ memset \
+ 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<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<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)
-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_ARG_ENABLE(toggle,
-[ --disable-toggle Don't support temporary disable],
+[ --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],
+[ --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],
+[ --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(killpopup,
-[ --disable-killpopup Never block popups],
-[if test $enableval = yes; then
- AC_DEFINE(FEATURE_KILL_POPUPS)
-fi],AC_DEFINE(FEATURE_KILL_POPUPS))
-
AC_ARG_ENABLE(stats,
-[ --disable-stats Don't keep statistics],
+[ --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 Enable a quick but not always reliable auto-detect whether requests from
- MS Internet Explorer are for an image or not.],
+[ --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.],
+[ --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.],
+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_ACL))
AC_ARG_ENABLE(trust-files,
-[ --disable-trust-files Prevents the use of trust files.],
+[ --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(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.],
+[ --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.],
+[ --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(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])
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 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
+ 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 we have libpcre and either we also have pcreposix or
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
-# 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(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 =================================================
+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=
-fi
+dnl fi
AC_SUBST(STATIC_PCRE_ONLY)
AC_SUBST(STATIC_PCRS_ONLY)
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)