X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=configure.in;h=fe09ca19c93bcdb4a429b67e7568e8dd4a735ea6;hp=c2b5d9971bdc476708a56b198340d8e92acfc946;hb=df2406dbb38aaf0210665014dde3b1cfc429d687;hpb=7b53d4ae6893f2633a471e0fb1a5d6f579360668 diff --git a/configure.in b/configure.in index c2b5d997..fe09ca19 100644 --- a/configure.in +++ b/configure.in @@ -1,8 +1,8 @@ dnl Process this file with autoconf to produce a configure script. dnl -dnl $Id: configure.in,v 1.80 2002/09/26 18:47:46 hal9 Exp $ +dnl $Id: configure.in,v 1.121 2008/08/30 12:03:07 fabiankeil Exp $ dnl -dnl Written by and Copyright (C) 2001, 2002 the SourceForge +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 @@ -28,52 +28,185 @@ 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.80 2002/09/26 18:47:46 hal9 -dnl This is most of Al's patch for --with-user and --with-group which tests that -dnl these are valid values, if specified. If not specified, they are left empty. +dnl Revision 1.121 2008/08/30 12:03:07 fabiankeil +dnl Remove FEATURE_COOKIE_JAR. dnl -dnl Revision 1.79 2002/09/07 02:11:06 hal9 -dnl Remove some testing stuff inadvertantly left in. +dnl Revision 1.120 2008/08/21 17:19:50 fabiankeil +dnl Change version to 3.0.11 UNRELEASED. 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 Revision 1.119 2008/08/13 16:53:50 fabiankeil +dnl Change version to 3.0.10 stable. dnl -dnl Revision 1.77 2002/09/06 13:23:03 oes -dnl Removed non-functional test for gcc support for -pthread +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.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 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.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 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.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 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.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 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.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 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.71 2002/06/04 14:51:49 jongfoster -dnl Updating for new paths: -dnl - Source files in src/ -dnl - Object files in obj/ +dnl Revision 1.68.2.16 2003/03/26 16:05:14 oes +dnl Marked as 0.0.0 UNRELEASED 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 Revision 1.68.2.15 2003/03/26 00:25:00 oes +dnl Bump version for 3.0.2 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 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. @@ -417,35 +550,58 @@ dnl ================================================================= dnl AutoConf Initialization dnl ================================================================= -AC_REVISION($Revision: 1.80 $) -AC_INIT(src/jcc.c) +AC_REVISION($Revision: 1.121 $) +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= + 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=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 @@ -455,26 +611,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 @@ -500,23 +652,21 @@ 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 ] @@ -526,12 +676,18 @@ dnl ================================================================= dnl Check for user and group validity dnl ================================================================= -$ID privoxy >/dev/null 2>/dev/null -if ! test $? -eq 0 ; then - AC_MSG_WARN(There is no user 'privoxy' on this system) -fi -AC_MSG_CHECKING([for user]) -AC_ARG_WITH(user, + +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 @@ -558,11 +714,11 @@ AC_ARG_WITH(user, USER=$with_user fi ] -) -AC_SUBST(USER) + ) + AC_SUBST(USER) -AC_MSG_CHECKING([for group]) -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 @@ -595,15 +751,19 @@ AC_ARG_WITH(group, 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 @@ -633,12 +793,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]) @@ -661,6 +832,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" @@ -680,24 +935,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 ], + [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 @@ -725,8 +990,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([ @@ -737,8 +1001,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([ @@ -750,8 +1013,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) @@ -772,8 +1034,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([ @@ -784,8 +1045,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([ @@ -796,8 +1056,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) @@ -818,8 +1077,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) ]) @@ -837,8 +1095,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) ]) @@ -850,9 +1107,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 ) +dnl (Moritz Barsnick ) dnl ================================================================= @@ -860,8 +1117,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 @@ -882,9 +1138,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 doesn't have it. ])) + AC_MSG_RESULT([no]) + AC_DEFINE(socklen_t,int, + [ Define to 'int' if doesn't have it. ])) dnl ================================================================= @@ -907,6 +1163,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 ================================================================= @@ -956,7 +1221,7 @@ 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 ================================================================= @@ -985,177 +1250,150 @@ 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 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(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 @@ -1168,144 +1406,34 @@ 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.]) +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 ================================================================= -dnl DocBook stuff -dnl ================================================================= - -AC_ARG_WITH(docbook, dnl - --with-docbook= - 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= -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) - -dnl Set doc status, used for conditional content inclusions -DOC_STATUS="" -if test $CODE_STATUS = alpha; then - DOC_STATUS="-ip-alpha -ip-not-stable" -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 Final cleanup and output dnl ================================================================= @@ -1317,5 +1445,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)