dnl Process this file with autoconf to produce a configure script.
dnl
-dnl $Id: configure.in,v 1.71 2002/06/04 14:51:49 jongfoster Exp $
+dnl $Id: configure.in,v 1.91 2006/08/13 22:01:51 fabiankeil Exp $
dnl
-dnl Written by and Copyright (C) 2001, 2002 the SourceForge
+dnl Written by and Copyright (C) 2001 - 2004 the SourceForge
dnl Privoxy team. http://www.privoxy.org/
dnl
dnl Based on the Internet Junkbuster originally written
dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA.
dnl
dnl $Log: configure.in,v $
-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.91 2006/08/13 22:01:51 fabiankeil
+dnl Added checks for strptime() and random()
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.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.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.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 AutoConf Initialization
dnl =================================================================
-AC_REVISION($Revision: 1.71 $)
-AC_INIT(src/jcc.c)
+AC_REVISION($Revision: 1.91 $)
+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=<path/executable>
+ 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_MAJOR=0
+VERSION_MINOR=0
+VERSION_POINT=0
+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(CODE_STATUS)
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:
+if test "X$CFLAGS" = "X"; then
+ CFLAGS=" "
+fi
+
AC_PROG_CC
AC_PROG_CPP
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
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
]
)
-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
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.
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"
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:
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([
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([
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)
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([
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([
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)
(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)
])
(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)
])
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 <moritz@barsnick.net>)
+dnl (Moritz Barsnick <moritz@barsnick.net>)
dnl =================================================================
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
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. ]))
+ AC_MSG_RESULT([no])
+ AC_DEFINE(socklen_t,int,
+ [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
dnl =================================================================
dnl =================================================================
case "$host" in
-*-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
+*-apple-darwin*) SPECIAL_CFLAGS="-Dunix -DOSX_DARWIN"
;;
esac
+dnl =================================================================
+dnl OpenBSD specific
+dnl =================================================================
+
+case "$host" in
+*-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
+;;
+esac
+
dnl =================================================================
dnl AmigaOS specific
dnl =================================================================
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([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset random regcomp select setlocale socket strchr strdup strerror strftime strptime strstr strtoul timegm])
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)
+
+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
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
+[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
+[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
+[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],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
- AC_DEFINE(FEATURE_KILL_POPUPS,1,
- [ Kills JavaScript popups - window.open, onunload, etc. ])
-fi
+[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],
-[enableval2=$enableval],
-[enableval2=yes])
-if test $enableval2 = yes; then
- AC_DEFINE(FEATURE_STATISTICS,1,
- [ Enables statistics function. ])
-fi
+[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
+[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
+[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
+[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.],
-[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
+[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.],
-[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
+[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
+[if test $enableval = yes; then
+ AC_DEFINE(FEATURE_NO_GIFS)
+fi])
dnl pcre/pcrs is needed for CGI anyway, so
else
echo "using built-in static pcre"
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
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.])
+ AC_DEFINE(STATIC_PCRS)
STATIC_PCRS_ONLY=
fi
AC_SUBST(STATIC_PCRE_ONLY)
AC_SUBST(STATIC_PCRS_ONLY)
-dnl =================================================================
-dnl config.h Header/footer
-dnl =================================================================
-
-AH_TOP(
-[#ifndef CONFIG_H_INCLUDED
-#define CONFIG_H_INCLUDED
-
-/*********************************************************************
- *
- * File : config.h
- *
- * Purpose : This file should be the first thing included in every
- * .c file. (Before even system headers). It contains
- * #define statements for various features. It was
- * introduced because the compile command line started
- * getting ludicrously long with feature defines.
- *
- * Copyright : Written by and Copyright (C) 2001 the SourceForge
- * Privoxy team. http://www.privoxy.org/
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
- * Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will
- * be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU General Public
- * License for more details.
- *
- * The GNU General Public License should be included with
- * this file. If not, you can view it at
- * http://www.gnu.org/copyleft/gpl.html
- * or write to the Free Software Foundation, Inc., 59
- * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- *********************************************************************/
-\f
-
-/*
- * It's too easy to accidentally use a Cygwin or MinGW32 version of config.h
- * under VC++, and it usually gives many wierd error messages. Let's make
- * the error messages understandable, by bailing out now.
- */
-#ifdef _MSC_VER
-#error For MS VC++, please use vc_config_winthreads.h or vc_config_pthreads.h. You can usually do this by selecting the "Build", "Clean" menu option.
-#endif /* def _MSC_VER */
-
-])
-
-AH_BOTTOM(
-[
-
-/*
- * Defined always.
- * FIXME: Don't know what it does or why we need it.
- * (presumably something to do with ANSI Standard C?)
- */
-#ifndef __STDC__
-#define __STDC__ 1
-#endif /* ndef __STDC__ */
-
-/*
- * Need to set up this define only for the Pthreads library for
- * Win32, available from http://sources.redhat.com/pthreads-win32/
- */
-#if defined(FEATURE_PTHREAD) && defined(_WIN32)
-#define __CLEANUP_C
-#endif /* defined(FEATURE_PTHREAD) && defined(_WIN32) */
-
-/*
- * BEOS does not currently support POSIX threads.
- * This *should* be detected by ./configure, but let's be sure.
- */
-#if defined(FEATURE_PTHREAD) && defined(__BEOS__)
-#error BEOS does not support pthread - please run ./configure again with "--disable-pthread"
-
-#endif /* defined(FEATURE_PTHREAD) && defined(__BEOS__) */
-
-
-#endif /* CONFIG_H_INCLUDED */
-])
-
-dnl =================================================================
-dnl DocBook stuff
-dnl =================================================================
-
-AC_ARG_WITH(docbook, dnl
- --with-docbook=<directory>
- 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
-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=<path/executable>
-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 =================================================================
-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 =================================================================