Add a note to update the code status before releasing a new version.
[privoxy.git] / configure.in
index 691c5a6..045c87d 100644 (file)
@@ -1,9 +1,9 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl
 dnl Process this file with autoconf to produce a configure script.
 dnl
-dnl $Id: configure.in,v 1.176 2013/01/06 11:06:23 fabiankeil Exp $
+dnl $Id: configure.in,v 1.201 2016/07/26 10:45:58 fabiankeil Exp $
 dnl
 dnl
-dnl Written by and Copyright (C) 2001-2010 the
-dnl Privoxy team. http://www.privoxy.org/
+dnl Written by and Copyright (C) 2001-2016 the
+dnl Privoxy team. https://www.privoxy.org/
 dnl
 dnl Based on the Internet Junkbuster originally written
 dnl by and Copyright (C) 1997 Anonymous Coders and
 dnl
 dnl Based on the Internet Junkbuster originally written
 dnl by and Copyright (C) 1997 Anonymous Coders and
@@ -32,7 +32,7 @@ dnl =================================================================
 dnl AutoConf Initialization
 dnl =================================================================
 
 dnl AutoConf Initialization
 dnl =================================================================
 
-AC_REVISION($Revision: 1.176 $)
+AC_REVISION($Revision: 1.201 $)
 AC_INIT(jcc.c)
 
 if test ! -f config.h.in; then
 AC_INIT(jcc.c)
 
 if test ! -f config.h.in; then
@@ -78,8 +78,8 @@ dnl =================================================================
 
 VERSION_MAJOR=3
 VERSION_MINOR=0
 
 VERSION_MAJOR=3
 VERSION_MINOR=0
-VERSION_POINT=20
-CODE_STATUS="beta"
+VERSION_POINT=26
+CODE_STATUS="UNRELEASED"
 
 dnl CODE_STATUS can be "alpha", "beta", "stable" or "UNRELEASED",
 dnl and will be used for CGI output. Increment version number and
 
 dnl CODE_STATUS can be "alpha", "beta", "stable" or "UNRELEASED",
 dnl and will be used for CGI output. Increment version number and
@@ -211,12 +211,14 @@ else
                     AC_MSG_RESULT($with_group)
                     $BGROUPS $USER >/dev/null
                     if test $? -eq 0 ; then
                     AC_MSG_RESULT($with_group)
                     $BGROUPS $USER >/dev/null
                     if test $? -eq 0 ; then
-                    # FIXME: this fails if valid group, but not first group
-                    # listed.
-                      if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
+                      for i in `$BGROUPS $USER | sed 's/.*: //' 2>/dev/null`; do
+                        if test "x$i" = "x$with_group" ; then
+                          GROUP=$with_group
+                          break
+                        fi
+                      done
+                      if test "x$GROUP" != "x$with_group" ; then
                         AC_MSG_ERROR(The given value '$withval' does not match group entry)
                         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
                     else
                       AC_MSG_ERROR(There is no group entry for user '$USER')
@@ -280,7 +282,7 @@ if test $dodk = auto; then
        dodk=no
        if test $target_type = unix; then
                case "$host_os" in
        dodk=no
        if test $target_type = unix; then
                case "$host_os" in
-               linux* | gnu*)
+               linux* | gnu* | *bsd*)
                        dodk=yes
                ;;
                esac
                        dodk=yes
                ;;
                esac
@@ -381,6 +383,7 @@ dnl      echo -n "checking for $i/html/docbook.dsl..."
     for i in /usr/share/sgml/CATALOG.docbk30 \
              /usr/share/sgml/CATALOG.docbk31 \
              /usr/share/sgml/CATALOG.docbk31 \
     for i in /usr/share/sgml/CATALOG.docbk30 \
              /usr/share/sgml/CATALOG.docbk31 \
              /usr/share/sgml/CATALOG.docbk31 \
+             /usr/local/share/sgml/docbook/2.4.1/docbook.cat \
              /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 \
              /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 \
@@ -462,6 +465,26 @@ fi
 
 AC_SUBST(PTHREAD_ONLY)
 
 
 AC_SUBST(PTHREAD_ONLY)
 
+dnl =================================================================
+dnl On most platforms select() does not support fd numbers above
+dnl FD_SETSIZE, as a result Privoxy can't handle more than
+dnl approximately FD_SETSIZE/2 client connections.
+dnl On some platforms the value can be changed at compile time,
+dnl on others it's hardcoded and requires recompilation of the OS.
+dnl =================================================================
+AC_ARG_WITH(fdsetsize,
+ [  --with-fdsetsize=n  Optimistically redefine FD_SETSIZE with the intend to change the number of connections Privoxy can handle. Dangerous if the platform doesn't support this.],
+ [
+   if test "x$withval" != "xyes"; then
+     AC_DEFINE_UNQUOTED(FD_SETSIZE,$with_fdsetsize,[Relevant for select(). Not honoured by all OS.])
+     echo "Redefining FD_SETSIZE to $with_fdsetsize."
+     AC_MSG_WARN(On platforms that don't support FD_SETSIZE redefinition it may cause memory corruption.)
+   else
+     AC_MSG_ERROR(--with-fdsetsize used without value)
+   fi
+   ]
+)
+
 dnl =================================================================
 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
 dnl gmtime and localtime
 dnl =================================================================
 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
 dnl gmtime and localtime
@@ -713,6 +736,7 @@ AC_CHECK_SIZEOF(char *, 4)
 AC_CHECK_SIZEOF(long, 4)
 AC_CHECK_SIZEOF(long long, 8)
 AC_CHECK_SIZEOF(size_t, 4)
 AC_CHECK_SIZEOF(long, 4)
 AC_CHECK_SIZEOF(long long, 8)
 AC_CHECK_SIZEOF(size_t, 4)
+AC_CHECK_SIZEOF(time_t, 8)
 
 dnl Checks for header files.
 AC_CHECK_HEADERS([ \
 
 dnl Checks for header files.
 AC_CHECK_HEADERS([ \
@@ -750,7 +774,6 @@ AC_CHECK_FUNCS([ \
  gethostbyname_r \
  gettimeofday \
  inet_ntoa \
  gethostbyname_r \
  gettimeofday \
  inet_ntoa \
- localtime_r \
  memchr \
  memmove \
  memset \
  memchr \
  memmove \
  memset \
@@ -914,7 +937,7 @@ fi],
 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
 
 AC_ARG_ENABLE(acl-support,
 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
 
 AC_ARG_ENABLE(acl-support,
-[  --disable-acl-support            Prevents the use of ACLs to control access to
+[  --disable-acl-support           Prevents the use of ACLs to control access to
                                   Privoxy by IP address.],
 [if test $enableval = yes; then
   AC_DEFINE(FEATURE_ACL)
                                   Privoxy by IP address.],
 [if test $enableval = yes; then
   AC_DEFINE(FEATURE_ACL)
@@ -961,6 +984,12 @@ AC_ARG_ENABLE(extended-host-patterns,
   AC_DEFINE(FEATURE_EXTENDED_HOST_PATTERNS)
 fi])
 
   AC_DEFINE(FEATURE_EXTENDED_HOST_PATTERNS)
 fi])
 
+AC_ARG_ENABLE(external-filters,
+[  --enable-external-filters       Allow to filter content with scripts and programs. Experimental.],
+[if test $enableval = yes; then
+  AC_DEFINE(FEATURE_EXTERNAL_FILTERS,1,[Define to 1 to allow to filter content with scripts and programs.])
+fi])
+
 AC_ARG_ENABLE(accept-filter,
 [  --enable-accept-filter          Try to use accf_http(9) if supported.],
 [if test $enableval = yes; then
 AC_ARG_ENABLE(accept-filter,
 [  --enable-accept-filter          Try to use accf_http(9) if supported.],
 [if test $enableval = yes; then
@@ -975,6 +1004,19 @@ AC_ARG_ENABLE(strptime-sanity-checks,
   AC_DEFINE(FEATURE_STRPTIME_SANITY_CHECKS)
 fi])
 
   AC_DEFINE(FEATURE_STRPTIME_SANITY_CHECKS)
 fi])
 
+AC_ARG_ENABLE(client-tags,
+[  --disable-client-tags           Disable support for client-specific tags],
+[ if test $enableval = "no"; then have_client_tags=no; fi ])
+if test "${have_client_tags}" = "no"; then
+  echo "Disabling support for client-specific tags."
+  FEATURE_CLIENT_TAGS_ONLY="#"
+else
+  echo "Enabling support for client-specific tags."
+  AC_DEFINE(FEATURE_CLIENT_TAGS,1,[Define to enable support for client-specific tags.])
+  FEATURE_CLIENT_TAGS_ONLY=""
+fi
+AC_SUBST(FEATURE_CLIENT_TAGS_ONLY)
+
 dnl pcre/pcrs is needed for CGI anyway, so
 dnl the choice is only between static and
 dnl dynamic:
 dnl pcre/pcrs is needed for CGI anyway, so
 dnl the choice is only between static and
 dnl dynamic:
@@ -1033,13 +1075,16 @@ fi
 if test $have_pcre = "yes"; then
   echo "using libpcre"
   pcre_dyn=yes
 if test $have_pcre = "yes"; then
   echo "using libpcre"
   pcre_dyn=yes
+  AC_DEFINE(FEATURE_DYNAMIC_PCRE,1,[Define to dynamically link to pcre.])
   STATIC_PCRE_ONLY=#
   LIBS="$LIBS -lpcre -lpcreposix"
 else
   AC_MSG_WARN([You are using the static PCRE code which is out of date and scheduled for removal, for details see:
     http://sourceforge.net/mailarchive/forum.php?thread_name=20080511195555.2dc6cfdc%40fabiankeil.de&forum_name=ijbswa-developers])
   pcre_dyn=no
   STATIC_PCRE_ONLY=#
   LIBS="$LIBS -lpcre -lpcreposix"
 else
   AC_MSG_WARN([You are using the static PCRE code which is out of date and scheduled for removal, for details see:
     http://sourceforge.net/mailarchive/forum.php?thread_name=20080511195555.2dc6cfdc%40fabiankeil.de&forum_name=ijbswa-developers])
   pcre_dyn=no
-  AC_DEFINE(STATIC_PCRE)
+  # STATIC_PCRE is a name pcre needs to statically link on Windows.
+  # Privoxy itself no longer uses it.
+  AC_DEFINE(STATIC_PCRE,1,[Define to statically link to internal outdated pcre on Windows.])
   STATIC_PCRE_ONLY=
 fi
 
   STATIC_PCRE_ONLY=
 fi