X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=configure.in;h=dbd2ec200519ba847f0f738ba4bfb565e0ad0d9e;hp=d225683e2c6ad35eb7117f6b00d851c005e01133;hb=f4107f65b676b63a199fe4230e58695757f9f199;hpb=4b3c9b925e5be187be35cb31f797dcd34ee2d255 diff --git a/configure.in b/configure.in index d225683e..dbd2ec20 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.56 2002/04/03 22:28:03 gliptak Exp $ +dnl $Id: configure.in,v 1.111 2008/02/03 14:40:47 fabiankeil Exp $ dnl -dnl Written by and Copyright (C) 2001, 2002 the SourceForge +dnl Written by and Copyright (C) 2001 - 2007 the SourceForge dnl Privoxy team. http://www.privoxy.org/ dnl dnl Based on the Internet Junkbuster originally written @@ -28,6 +28,196 @@ dnl or write to the Free Software Foundation, Inc., 59 dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA. dnl dnl $Log: configure.in,v $ +dnl Revision 1.111 2008/02/03 14:40:47 fabiankeil +dnl Remove unused OSX_DARWIN macro. Reported by Mark Miller in #1852529. +dnl +dnl Revision 1.110 2008/01/26 10:52:13 fabiankeil +dnl Change version to 3.0.9 UNRELEASED. +dnl +dnl Revision 1.109 2008/01/20 14:07:09 fabiankeil +dnl Set CODE_STATUS to stable. +dnl +dnl Revision 1.108 2007/12/10 02:30:00 hal9 +dnl Change versioning for > 3.0.7 && < 3.0.8 +dnl +dnl Revision 1.107 2007/11/15 02:50:14 hal9 +dnl Setting to "beta" (for doc builds, etc). +dnl +dnl Revision 1.106 2007/05/11 11:49:41 fabiankeil +dnl Check for strlcat(). +dnl +dnl Revision 1.105 2007/04/09 17:34:58 fabiankeil +dnl Check for snprintf(). +dnl +dnl Revision 1.104 2007/03/31 13:35:11 fabiankeil +dnl Add checks for gettimeofday() and strlcpy(). +dnl +dnl Revision 1.103 2007/01/20 16:29:38 fabiankeil +dnl Suppress edit buttons for action files if Privoxy has +dnl no write access. Suggested by Roland in PR 1564026. +dnl +dnl Revision 1.102 2007/01/18 14:55:45 fabiankeil +dnl Check for tzset() and putenv() to make sure the +dnl replacement timegm() isn't included on systems +dnl where it fails to compile. +dnl +dnl Revision 1.101 2007/01/12 15:20:17 fabiankeil +dnl Temporarily ignore external libpcrs to prevent +dnl problems that are fixed in Privoxy's own version. +dnl +dnl Revision 1.100 2007/01/07 07:38:10 joergs +dnl Disabled -pipe for AmigaOS4. +dnl +dnl Revision 1.99 2007/01/01 19:36:37 fabiankeil +dnl Integrate a modified version of Wil Mahan's +dnl zlib patch (PR #895531). +dnl +dnl Revision 1.98 2006/12/17 19:15:26 fabiankeil +dnl Added ./configure switch for FEATURE_GRACEFUL_TERMINATION. +dnl +dnl Revision 1.97 2006/11/21 18:32:46 hal9 +dnl Setting version to 3.0.7 UNRELEASED for lack of a better setting. +dnl +dnl Revision 1.96 2006/11/18 14:42:51 fabiankeil +dnl Mark as stable. +dnl +dnl Revision 1.95 2006/11/14 02:08:59 hal9 +dnl Setting version string to 3.0.6 UNRELEASED. This needs to be reset to 3.0.6 +dnl stable just before CVS is tagged for release. +dnl +dnl Revision 1.94 2006/11/13 19:05:50 fabiankeil +dnl Make pthread mutex locking more generic. Instead of +dnl checking for OSX and OpenBSD, check for FEATURE_PTHREAD +dnl and use mutex locking unless there is an _r function +dnl available. Better safe than sorry. +dnl +dnl Fixes "./configure --disable-pthread" and should result +dnl in less threading-related problems on pthread-using platforms, +dnl but it still doesn't fix BR#1122404. +dnl +dnl Revision 1.93 2006/09/22 01:26:20 hal9 +dnl Set version to 3.0.5 BETA for hopefully release this weekend. +dnl +dnl Revision 1.92 2006/08/17 17:09:49 fabiankeil +dnl Added check for timegm(). +dnl +dnl Revision 1.91 2006/08/13 22:01:51 fabiankeil +dnl Added checks for strptime() and random() +dnl +dnl Revision 1.90 2006/07/18 14:48:45 david__schmidt +dnl Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch) +dnl with what was really the latest development (the v_3_0_branch branch) +dnl +dnl Revision 1.68.2.20 2004/01/31 16:31:46 oes +dnl Resetting version info to 0.0.0 UNRELEASED +dnl +dnl Revision 1.68.2.19 2004/01/30 09:26:03 oes +dnl Added docbook paths for debian sarge; set status for release +dnl +dnl Revision 1.68.2.18 2003/12/08 15:10:29 oes +dnl Bugfix: --with-docbook now correctly accepts its path parameter. Thanks, Roland! +dnl +dnl Revision 1.68.2.17 2003/10/18 18:41:26 david__schmidt +dnl Update to remain buildable on OS/2 - remove the failures +dnl due to missing unixisms +dnl +dnl Revision 1.68.2.16 2003/03/26 16:05:14 oes +dnl Marked as 0.0.0 UNRELEASED +dnl +dnl Revision 1.68.2.15 2003/03/26 00:25:00 oes +dnl Bump version for 3.0.2 +dnl +dnl Revision 1.68.2.14 2003/03/25 13:27:12 hal9 +dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl. +dnl +dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes +dnl Set version info for 3.0.1 release +dnl +dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt +dnl Wrapping all *_r functions (the non-_r versions of them) with mutex semaphores for OSX. Hopefully this will take care of all of those pesky crash reports. +dnl +dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes +dnl Fixed minor shell syntax bug +dnl +dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes +dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs +dnl +dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9 +dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org +dnl +dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes +dnl Fixed broken handling of pre-set CFLAGS +dnl +dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9 +dnl Port of make install, etc from main trunk. Needs testing! Add Slackware +dnl support, and other related changes. Update related docs. +dnl +dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes +dnl Marking as non-release +dnl +dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9 +dnl Getting ready for 3.0 release. +dnl +dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes +dnl - Set Version to 2.9.20 (beta) +dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers +dnl are located in a pcre/ subdir to the include path. +dnl +dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes +dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH +dnl +dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9 +dnl Bump version to 2.9.17. +dnl +dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes +dnl Bumped version number for 2.9.16 freeze +dnl +dnl Revision 1.68 2002/05/25 16:54:54 jongfoster +dnl Detect if the compiler supports -pthread. +dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC +dnl machine to test this!) +dnl +dnl Revision 1.67 2002/05/03 14:33:59 oes +dnl Generate doc/soucre/ldp.dsl +dnl +dnl Revision 1.66 2002/05/03 00:41:56 oes +dnl Set version to 2.9.15 to comply with new versioning scheme +dnl +dnl Revision 1.65 2002/04/25 19:13:57 morcego +dnl Removed RPM release number declaration on configure.in +dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading +dnl targets (will produce an error, explaining who to do it, if no value +dnl if provided). +dnl +dnl Revision 1.64 2002/04/22 16:32:31 morcego +dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2) +dnl -rh.spec: uid and gid are now macros +dnl -suse.spec: Changing the header Copyright to License (Copyright is +dnl deprecable) +dnl +dnl Revision 1.63 2002/04/11 11:00:21 oes +dnl Applied Moritz' fix for socklen_t on Solaris +dnl +dnl Revision 1.62 2002/04/11 10:09:20 oes +dnl Version 2.9.14 +dnl +dnl Revision 1.61 2002/04/10 18:14:45 morcego +dnl - (privoxy-rh.spec only) Relisting template files on the %%files section +dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5 +dnl +dnl Revision 1.60 2002/04/09 16:38:49 oes +dnl Added detection of missing config.h.in +dnl +dnl Revision 1.59 2002/04/06 20:23:55 jongfoster +dnl Removing unnessacery tests (C++, ranlib) +dnl +dnl Revision 1.58 2002/04/04 20:49:20 swa +dnl attempt to consolidate the +dnl different dokbook versions. +dnl +dnl Revision 1.57 2002/04/04 00:36:36 gliptak +dnl always use pcre for matching +dnl dnl Revision 1.56 2002/04/03 22:28:03 gliptak dnl Removed references to gnu_regex dnl @@ -324,8 +514,20 @@ dnl ================================================================= dnl AutoConf Initialization dnl ================================================================= -AC_REVISION($Revision: 1.56 $) +AC_REVISION($Revision: 1.111 $) AC_INIT(jcc.c) + +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 @@ -339,7 +541,7 @@ case "$with_docbook" in yes) dodk=yes;; no) dodk=no;; *) - dodk=no + dodk=yes DKPREFIX=$withval ;; esac @@ -356,14 +558,14 @@ dnl ================================================================= dnl Application version number dnl ================================================================= -VERSION_MAJOR=2 -VERSION_MINOR=9 -VERSION_POINT=13 -VERSION_RPM_PACKAGE=3 -CODE_STATUS="beta" +VERSION_MAJOR=3 +VERSION_MINOR=0 +VERSION_POINT=9 +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 @@ -372,30 +574,36 @@ dnl ================================================================= 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 -AC_PROG_CXX AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET -dnl RANLIB is for PCRE: -AC_PROG_RANLIB +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 @@ -405,66 +613,121 @@ AC_ARG_WITH(debug, [ --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 + ] ) -AC_ARG_WITH(user, - [ --with-user=privoxy Set user under which privoxy run], +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 - USER=$with_user; + 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 ], [ - USER=privoxy; + 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_SUBST(USER) -AC_ARG_WITH(group, + AC_MSG_CHECKING([for group]) + AC_ARG_WITH(group, [ --with-group=privoxy Set group for privoxy], - [ + [ if test "x$withval" != "xyes"; then - GROUP=$with_group; + 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 ], [ - GROUP=privoxy; + 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) + ) + 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 @@ -510,7 +773,7 @@ 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]) @@ -537,7 +800,7 @@ 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_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 @@ -567,12 +830,26 @@ 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; 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 @@ -581,8 +858,26 @@ if test $dodk = yes; then 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 @@ -604,7 +899,7 @@ 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 have_pthread=no @@ -617,11 +912,17 @@ if test $have_pthread = yes; then 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 ], + [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 @@ -765,6 +1066,10 @@ AC_CHECK_FUNC(localtime_r, [ 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 ) dnl ================================================================= @@ -787,6 +1092,17 @@ esac 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 doesn't have it. ])) + + dnl ================================================================= dnl OS/2 specific dnl ================================================================= @@ -807,6 +1123,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 ================================================================= @@ -856,7 +1181,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 putenv random regcomp select setlocale snprintf socket strchr strdup strerror strftime strlcat strlcpy strptime strstr strtoul timegm tzset]) dnl ================================================================= @@ -865,10 +1190,36 @@ dnl ================================================================= dnl Note: Some systems may have the library but not the system header dnl file, so we must check for both. 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])], [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])], [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]) - +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 @@ -881,102 +1232,121 @@ dnl Features 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.], +[ --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]) 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, +[ --enable-zlib Use an external zlib library to allow decompressing + data on the fly.], +[enableval2=$enableval], +[enableval2=no]) +if test $enableval2 = yes; then + AC_CHECK_LIB(z, zlibVersion, , [ + AC_MSG_ERROR([Unable to find a copy of zlib. The zlib library +is necessary to enable compresion support. ]) + ]) + AC_DEFINE(FEATURE_ZLIB,1, + [ Define to 1 to use compression through the zlib library. ]) +fi # If we have libpcre and either we also have pcreposix or @@ -995,19 +1365,23 @@ else 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 +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 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) @@ -1023,4 +1397,4 @@ AC_SUBST(SPECIAL_CFLAGS) AC_SUBST(PTHREAD_LIB) -AC_OUTPUT(GNUmakefile) +AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)