dnl Process this file with autoconf to produce a configure script.
dnl
-dnl $Id: configure.in,v 1.44 2002/03/24 13:25:43 swa Exp $
+dnl $Id: configure.in,v 1.121 2008/08/30 12:03:07 fabiankeil Exp $
dnl
-dnl Written by and Copyright (C) 2001 the SourceForge
-dnl Privoxy team. http://ijbswa.sourceforge.net
+dnl Written by and Copyright (C) 2001-2008 the SourceForge
+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 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
dnl
dnl $Log: configure.in,v $
+dnl Revision 1.121 2008/08/30 12:03:07 fabiankeil
+dnl Remove FEATURE_COOKIE_JAR.
+dnl
+dnl Revision 1.120 2008/08/21 17:19:50 fabiankeil
+dnl Change version to 3.0.11 UNRELEASED.
+dnl
+dnl Revision 1.119 2008/08/13 16:53:50 fabiankeil
+dnl Change version to 3.0.10 stable.
+dnl
+dnl Revision 1.118 2008/06/27 12:50:44 fabiankeil
+dnl Here's looking at you, Gentoo Linux: Show a warning if
+dnl --disable-pthread is used even though pthreads are available.
+dnl
+dnl Revision 1.117 2008/06/14 12:47:30 fabiankeil
+dnl Set CODE_STATUS to beta.
+dnl
+dnl Revision 1.116 2008/06/08 11:55:09 fabiankeil
+dnl - Show a warning if the soon-to-be-removed static PCRE code is used.
+dnl - Hide the "using built-in static pcrs" message. With dynamic linking
+dnl against PCRS disabled, the message isn't particularly useful.
+dnl
+dnl Revision 1.115 2008/05/25 15:50:14 fabiankeil
+dnl Try to use zlib by default, but just show a warning if it's
+dnl unavailable. Remove --enable-zlib, add --disable-zlib.
+dnl
+dnl Revision 1.114 2008/04/06 15:18:33 fabiankeil
+dnl Oh well, rename the --enable-pcre-host-patterns option to
+dnl --enable-extended-host-patterns as it's not really PCRE syntax.
+dnl
+dnl Revision 1.113 2008/04/06 14:54:26 fabiankeil
+dnl Use PCRE syntax in host patterns when configured
+dnl with --enable-pcre-host-patterns.
+dnl
+dnl Revision 1.112 2008/03/27 18:27:22 fabiankeil
+dnl Remove kill-popups action.
+dnl
+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 AutoConf Initialization
dnl =================================================================
-AC_REVISION($Revision: 1.44 $)
+AC_REVISION($Revision: 1.121 $)
AC_INIT(jcc.c)
-AC_CONFIG_HEADER(config.h)
+
+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
+ exit 1
+ else
+ autoheader
+ fi
+fi
+
+AC_CONFIG_HEADER([config.h])
AC_CANONICAL_HOST
dodk=auto
yes) dodk=yes;;
no) dodk=no;;
*)
- dodk=no
+ dodk=yes
DKPREFIX=$withval
;;
esac
dnl Application version number
dnl =================================================================
-VERSION_MAJOR=2
-VERSION_MINOR=9
-VERSION_POINT=13
-VERSION_RPM_PACKAGE=1
-CODE_STATUS="beta"
+VERSION_MAJOR=3
+VERSION_MINOR=0
+VERSION_POINT=11
+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
AC_SUBST(VERSION_MAJOR)
AC_SUBST(VERSION_MINOR)
AC_SUBST(VERSION_POINT)
-AC_SUBST(VERSION_RPM_PACKAGE)
AC_SUBST(CODE_STATUS)
dnl
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_RPM_PACKAGE,${VERSION_RPM_PACKAGE})
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:
+if test "X$CFLAGS" = "X"; then
+ CFLAGS=" "
+fi
+
AC_PROG_CC
AC_PROG_CPP
-dnl AC_PROG_CXX
-dnl AC_PROG_INSTALL
-dnl AC_PROG_LN_S
-dnl AC_PROG_MAKE_SET
-dnl RANLIB is for PCRE:
-dnl AC_PROG_RANLIB
+AC_PROG_INSTALL
+AC_PROG_LN_S
+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_SUBST(ID)
+AC_SUBST(BGROUPS)
dnl =================================================================
dnl debug, gcc and gdb support
[ --with-debug Enable debug mode],
[
if test "x$withval" != "xno" ; then
- if test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- if test "$GDB"; then
- CFLAGS="-ggdb"
- else
- CFLAGS="-g"
- fi
- CFLAGS="$CFLAGS -Wshadow -Wconversion"
- else
- CFLAGS="-g"
- fi
- fi
+ if test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ if test "$GDB"; then
+ CFLAGS="$CFLAGS -ggdb"
+ else
+ CFLAGS="$CFLAGS -g"
+ fi
+ CFLAGS="$CFLAGS -Wshadow -Wconversion"
+ else
+ CFLAGS="$CFLAGS -g"
+ fi
+ fi
fi
],
- [
- if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
- fi
- ]
+ [
+ if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ fi
+ fi
+ ]
)
+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;
+ else
+ AC_MSG_ERROR(There is no user '$with_user' on this system)
+ fi
+ fi
+ else
+ AC_MSG_ERROR(We need a user if you give me this parameter)
+ fi
+ ],
+ [
+ if test $ID = no ; then
+ AC_MSG_ERROR(There is no 'id' programm on this system)
+ else
+ AC_MSG_RESULT(none specified)
+ USER=$with_user
+ fi
+ ]
+ )
+ AC_SUBST(USER)
+
+ 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 | 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;
+ fi
+ else
+ AC_MSG_ERROR(There is no group entry for user '$USER')
+ fi
+ fi
+ else
+ AC_MSG_ERROR(We need a group if you give me this parameter)
+ fi
+ ],
+ [
+ if test $BGROUPS = no ; then
+ AC_MSG_ERROR(There is no 'groups' programm on this system)
+ else
+ AC_MSG_RESULT(none specified)
+ GROUP=$with_group;
+ fi
+ ]
+ )
+ 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
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 $dodk != no; then
AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
if test "$WDUMP" = false; then
- AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
+ 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
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; do
- echo -n "checking for $i/html/docbook.dsl..."
+ 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
+ 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
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 "$GCC" = "yes"; then
# Set a GCC specific switch:
if test "$target_type" = "unix"; then
- # This compiler switch makes Linux thread-safe
- # Don't know about other OS's? Is this switch
- # supported?
- 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
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 AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
+dnl (Moritz Barsnick <moritz@barsnick.net>)
dnl =================================================================
AC_SUBST(SOCKET_LIB)
+dnl =================================================================
+dnl Solaris problem, and others perhaps (socklen_t is undefined)
+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. ]))
+
+
dnl =================================================================
dnl OS/2 specific
dnl =================================================================
AC_SUBST(SOCKET_LIB)
+dnl =================================================================
+dnl Mac OSX specific
+dnl =================================================================
+
+case "$host" in
+*-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
+;;
+esac
+
+dnl =================================================================
+dnl OpenBSD specific
+dnl =================================================================
+
+case "$host" in
+*-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
+;;
+esac
+
dnl =================================================================
dnl AmigaOS specific
dnl =================================================================
AC_EXEEXT
AC_OBJEXT
AC_HEADER_STDC
+AC_HEADER_DIRENT
AC_C_CONST
AC_TYPE_SIZE_T
+AC_TYPE_PID_T
+AC_HEADER_TIME
+AC_STRUCT_TM
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(char *, 4)
AC_CHECK_SIZEOF(long, 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])
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)
+AC_CHECK_FUNCS([strerror bcopy memmove])
+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 poll putenv random regcomp select setlocale snprintf socket strchr strdup strerror strftime strlcat strlcpy strptime strstr strtoul timegm tzset])
dnl =================================================================
dnl =================================================================
dnl Note: Some systems may have the library but not the system header
dnl file, so we must check for both.
-AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
-AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
-AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
-
+dnl Also check for correct version
+AC_CHECK_LIB(pcre, pcre_compile, [
+ AC_CHECK_HEADER(pcre.h, [
+ AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
+ ], [
+ AC_CHECK_HEADER(pcre/pcre.h, [
+ AC_EGREP_HEADER(pcre_fullinfo, pcre/pcre.h, [have_pcre=yes]; [AC_DEFINE(PCRE_H_IN_SUBDIR)], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
+ ], [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_CHECK_HEADER(pcre/pcreposix.h, [
+ 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)
+
+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,
-[ --disable-ie-images Don't auto-detect whether a request from MS Internet
- Explorer is for an image or HTML.],
+[ --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_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.],
+[ --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.],
+[ --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 Allow extended regular expressions in host patterns.],
+[if test $enableval = yes; then
+ AC_DEFINE(FEATURE_EXTENDED_HOST_PATTERNS)
+fi])
+
+AC_ARG_ENABLE(connection-keep-alive,
+[ --enable-connection-keep-alive Keep outgoing connections alive if possible. Experimental.],
+[if test $enableval = yes; then
+ AC_DEFINE(FEATURE_CONNECTION_KEEP_ALIVE)
+fi])
dnl pcre/pcrs is needed for CGI anyway, so
dnl the choice is only between static and
dnl dynamic:
-AC_ARG_ENABLE(regex-matching,
-[ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
- pattern matching (default)
- --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
- matching (-> bigger binary)
- --disable-regex-matching Don't use regex matching, compare URL
- prefix instead (won't shrink birary)],
-[ regex_matching=$enableval ],
-[ regex_matching=pcre ])
-
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 ])
-
-
-# Is the regex URL matching based on libpcreposix, but we
-# don't have that library?
-#
-if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
- dont_miss_pcreposix=yes
-else
- dont_miss_pcreposix=no
+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
# we don't need pcreposix, then link pcre dynamically; else
# build it and link statically
#
-if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
+if test $have_pcre = "yes"; then
echo "using libpcre"
pcre_dyn=yes
STATIC_PCRE_ONLY=#
- LIBS="$LIBS -lpcre"
+ 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)
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"
+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
-
-# Which method should be used for URL matching?
-# pcre, gnu regex or prefix matching?
-#
-if test $regex_matching = "gnu"; then
- echo "using gnu regex for URL matching"
- AC_DEFINE(REGEX_GNU)
- GNU_REGEX_ONLY=
- PCRE_REGEX_ONLY=#
-elif test $regex_matching = "pcre"; then
- echo "using pcre regex for URL matching"
- AC_DEFINE(REGEX_PCRE)
- GNU_REGEX_ONLY=#
- PCRE_REGEX_ONLY=
- if test $pcre_dyn = "yes"; then
- LIBS="$LIBS -lpcreposix"
- fi
-else
- echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
- GNU_REGEX_ONLY=#
- PCRE_REGEX_ONLY=#
-fi
+dnl fi
-AC_SUBST(GNU_REGEX_ONLY)
-AC_SUBST(PCRE_REGEX_ONLY)
AC_SUBST(STATIC_PCRE_ONLY)
AC_SUBST(STATIC_PCRS_ONLY)
AC_SUBST(PTHREAD_LIB)
-AC_OUTPUT(GNUmakefile)
+AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)