dnl Process this file with autoconf to produce a configure script.
dnl
-dnl $Id: configure.in,v 1.27 2002/01/10 12:35:18 oes Exp $
+dnl $Id: configure.in,v 1.75 2002/09/04 12:19:33 oes Exp $
dnl
-dnl Written by and Copyright (C) 2001 the SourceForge
-dnl IJBSWA team. http://ijbswa.sourceforge.net
+dnl Written by and Copyright (C) 2001, 2002 the SourceForge
+dnl Privoxy team. http://www.privoxy.org/
dnl
dnl Based on the Internet Junkbuster originally written
dnl by and Copyright (C) 1997 Anonymous Coders and
dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA.
dnl
dnl $Log: configure.in,v $
+dnl Revision 1.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
+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
+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
+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
+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
+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
+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
+dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
+dnl Detect if the compiler supports -pthread.
+dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
+dnl machine to test this!)
+dnl
+dnl Revision 1.67 2002/05/03 14:33:59 oes
+dnl Generate doc/soucre/ldp.dsl
+dnl
+dnl Revision 1.66 2002/05/03 00:41:56 oes
+dnl Set version to 2.9.15 to comply with new versioning scheme
+dnl
+dnl Revision 1.65 2002/04/25 19:13:57 morcego
+dnl Removed RPM release number declaration on configure.in
+dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
+dnl targets (will produce an error, explaining who to do it, if no value
+dnl if provided).
+dnl
+dnl Revision 1.64 2002/04/22 16:32:31 morcego
+dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
+dnl -rh.spec: uid and gid are now macros
+dnl -suse.spec: Changing the header Copyright to License (Copyright is
+dnl deprecable)
+dnl
+dnl Revision 1.63 2002/04/11 11:00:21 oes
+dnl Applied Moritz' fix for socklen_t on Solaris
+dnl
+dnl Revision 1.62 2002/04/11 10:09:20 oes
+dnl Version 2.9.14
+dnl
+dnl Revision 1.61 2002/04/10 18:14:45 morcego
+dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
+dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
+dnl
+dnl Revision 1.60 2002/04/09 16:38:49 oes
+dnl Added detection of missing config.h.in
+dnl
+dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
+dnl Removing unnessacery tests (C++, ranlib)
+dnl
+dnl Revision 1.58 2002/04/04 20:49:20 swa
+dnl attempt to consolidate the
+dnl different dokbook versions.
+dnl
+dnl Revision 1.57 2002/04/04 00:36:36 gliptak
+dnl always use pcre for matching
+dnl
+dnl Revision 1.56 2002/04/03 22:28:03 gliptak
+dnl Removed references to gnu_regex
+dnl
+dnl Revision 1.55 2002/04/03 03:54:38 gliptak
+dnl Checking pcre version
+dnl
+dnl Revision 1.54 2002/04/01 00:54:24 gliptak
+dnl More changes needed around regex support.
+dnl
+dnl Revision 1.53 2002/03/29 20:09:01 swa
+dnl al's patch
+dnl
+dnl Revision 1.52 2002/03/29 19:51:40 gliptak
+dnl Correcting compile problem with Debian
+dnl
+dnl Revision 1.51 2002/03/28 20:43:00 swa
+dnl set make correctly
+dnl
+dnl Revision 1.50 2002/03/27 03:03:45 hal9
+dnl Add test for man2html
+dnl
+dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
+dnl More Mac OSX support:
+dnl - Get rid of extraneous, noisy -pthread warnings
+dnl - Define unix so we get oes' unix-tagged changes
+dnl
+dnl Revision 1.48 2002/03/26 22:29:54 swa
+dnl we have a new homepage!
+dnl
+dnl Revision 1.47 2002/03/26 16:41:00 hal9
+dnl Upped RPM Release to 3 (need to build new RH packages)
+dnl
+dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
+dnl Making Docbook work under Windows
+dnl
+dnl Revision 1.45 2002/03/24 14:19:55 swa
+dnl set rpm package release in configure.in. nowhere else.
+dnl
+dnl Revision 1.44 2002/03/24 13:25:43 swa
+dnl name change related issues
+dnl
+dnl Revision 1.43 2002/03/24 12:56:21 swa
+dnl name change related issues.
+dnl
+dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
+dnl Bumping version number to 2.9.12
+dnl
+dnl Revision 1.41 2002/03/19 19:30:04 morcego
+dnl - Fixing stylesheet checking on configure. If it is found, no further checks
+dnl should be done
+dnl
+dnl - configure will now check for db2html or docbook2html (should work now
+dnl on SuSe without the docbktls package)
+dnl
+dnl Revision 1.40 2002/03/09 14:33:30 oes
+dnl Fixing the (harmless) AC_CHECK_FILE warnings
+dnl
+dnl Revision 1.39 2002/03/08 16:46:13 oes
+dnl Added --enable-no-gifs
+dnl
+dnl Revision 1.38 2002/03/08 14:13:50 morcego
+dnl Fixing configure, to remove a command not found error.
+dnl
+dnl Revision 1.37 2002/03/08 12:58:21 oes
+dnl Tiny bugfix in AC_ARG_WITH(debug)
+dnl
+dnl Revision 1.36 2002/03/06 23:50:36 morcego
+dnl Will not test for a text browser if we are not using docbook.
+dnl
+dnl Revision 1.35 2002/03/06 21:55:52 morcego
+dnl New configure option: --with-docbook=(yes|no|directory)
+dnl Preliminary new platform detection code included. Will work with the
+dnl old one for now. No use just trowing it away
+dnl
+dnl Revision 1.34 2002/03/06 20:57:00 morcego
+dnl Fixing detection of stylesheets on SuSe.
+dnl
+dnl Revision 1.33 2002/03/05 17:31:11 morcego
+dnl Search for docbook.dsl. Should solve portability problems for SuSe.
+dnl
+dnl Revision 1.32 2002/03/05 14:07:43 morcego
+dnl configure now detects rpm topdir, and change GNUmakefile acordingly
+dnl (based on sugestion by Sarantis Paskalis)
+dnl
+dnl Revision 1.31 2002/03/05 13:43:28 morcego
+dnl Checking for text browser, so redhat-dok can work.
+dnl
+dnl Revision 1.30 2002/03/04 17:58:01 oes
+dnl Deleted _DEBUG and PID_FILE_PATH
+dnl
+dnl Revision 1.29 2002/02/28 14:20:53 oes
+dnl Fixed detection of gethost*_r functions on Solaris
+dnl
+dnl Revision 1.28 2002/02/27 15:02:38 oes
+dnl Incremented version number
+dnl
dnl Revision 1.27 2002/01/10 12:35:18 oes
dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
dnl to silence autoconf warnings. Numbers are for Intel/Linux.
dnl AutoConf Initialization
dnl =================================================================
-AC_REVISION($Revision: 1.27 $)
-AC_INIT(jcc.c)
-AC_CONFIG_HEADER(config.h)
+AC_REVISION($Revision: 1.75 $)
+AC_INIT(src/jcc.c)
+
+if test ! -f src/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([src/config.h])
AC_CANONICAL_HOST
dnl Application version number
dnl =================================================================
-VERSION_MAJOR=2
-VERSION_MINOR=9
-VERSION_POINT=11
-CODE_STATUS="beta"
+VERSION_MAJOR=3
+VERSION_MINOR=1
+VERSION_POINT=1
+CODE_STATUS="alpha"
dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
dnl used for CGI output
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,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
-AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
-
-dnl =================================================================
-dnl pid file only for unix
-dnl =================================================================
-dnl
-PID_FILE_PATH="\"/etc/junkbuster"\"
+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".])
dnl =================================================================
dnl Checks for programs needed to build.
dnl =================================================================
+
+dnl Keep AC_PROG_CC from setting its own defaults:
+CFLAGS=" "
+
AC_PROG_CC
AC_PROG_CPP
-dnl AC_PROG_CXX
-dnl AC_PROG_INSTALL
-dnl AC_PROG_LN_S
-dnl AC_PROG_MAKE_SET
-dnl RANLIB is for PCRE:
-dnl AC_PROG_RANLIB
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
AC_CHECK_PROG(GDB,gdb,yes,no)
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
- CFLAGS="$CFLAGS -D_DEBUG"
+ 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
+ fi
+ ],
+ [
+ if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+ fi
+ ]
+)
+
+AC_ARG_WITH(user,
+ [ --with-user=privoxy Set user under which privoxy run],
+ [
+ if test "x$withval" != "xyes"; then
+ USER=$with_user;
+ else
+ AC_MSG_ERROR(We need a user if you give me this parameter)
+ fi
+ ],
+ [
+ USER=privoxy;
+ ]
+)
+AC_SUBST(USER)
+
+AC_ARG_WITH(group,
+ [ --with-group=privoxy Set group for privoxy],
+ [
+ if test "x$withval" != "xyes"; then
+ GROUP=$with_group;
+ else
+ AC_MSG_ERROR(We need a group if you give me this parameter)
fi
],
- [
- if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
- fi
- ]
+ [
+ GROUP=privoxy;
+ ]
)
+AC_SUBST(GROUP)
dnl =================================================================
dnl additional gcc flags
fi
AC_SUBST(WIN_ONLY)
-
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)
+ AC_DEFINE(FEATURE_PTHREAD,1,
+ [Define to use POSIX threads instead of native threads.])
echo Using POSIX threads
if test "$GCC" = "yes"; then
# Set a GCC specific switch:
if test "$target_type" = "unix"; then
- # This compiler switch makes Linux thread-safe
- # Don't know about other OS's? Is this switch
- # supported?
- PTHREAD_LIB=
- SPECIAL_CFLAGS="-pthread"
+ ac_jgf_save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -pthread"
+ AC_TRY_LINK([#include <pthread.h>],
+ [void *p = pthread_create;],
+ [
+ # This compiler switch makes GCC on Linux thread-safe
+ # However, it's not supported on most other OS.
+ PTHREAD_LIB=
+ SPECIAL_CFLAGS="-pthread"
+ ])
+ CFLAGS=$ac_jgf_save_CFLAGS
fi
fi
else
dnl gmtime and localtime
dnl =================================================================
+dnl Next line needed to find the gethost*_r functions on Solaris
+AC_CHECK_LIB(nsl, gethostbyname)
+
AC_CHECK_FUNC(gethostbyaddr_r, [
AC_MSG_CHECKING([signature of gethostbyaddr_r])
AC_TRY_COMPILE([
int l, bl, t, e;
(void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
], [
- AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
+ AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS,1,
+ [Define if gethostbyaddr_r() exists and takes 8 arguments])
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)
+ AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS,1,
+ [Define if gethostbyaddr_r() exists and takes 7 arguments])
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)
+ AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS,1,
+ [Define if gethostbyaddr_r() exists and takes 5 arguments])
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)
+ AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS,1,
+ [Define if gethostbyname_r() exists and takes 6 arguments])
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)
+ AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS,1,
+ [Define if gethostbyname_r() exists and takes 5 arguments])
AC_MSG_RESULT([5 args])
], [
AC_TRY_COMPILE([
char *n,
(void) gethostbyname_r(n, h, d)
], [
- AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
+ AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS,1,
+ [Define if gethostbyname_r() exists and takes 3 arguments])
AC_MSG_RESULT([3 args])
], [
AC_MSG_RESULT(unrecognised)
(void) gmtime_r(t, tm)
], [
AC_MSG_RESULT(ok)
- AC_DEFINE(HAVE_GMTIME_R)
+ AC_DEFINE(HAVE_GMTIME_R,1,
+ [Define if gmtime_r(struct time *, struct tm *) exists])
], [
AC_MSG_RESULT(unrecognised)
])
(void) localtime_r(t, tm)
], [
AC_MSG_RESULT(ok)
- AC_DEFINE(HAVE_LOCALTIME_R)
+ AC_DEFINE(HAVE_LOCALTIME_R,1,
+ [Define if localtime_r(struct time *, struct tm *) exists])
], [
AC_MSG_RESULT(unrecognised)
])
dnl =================================================================
dnl Solaris specific
dnl FIXME: Not tested on Solaris yet...
+dnl ISFIXED: Have tested it on Solaris, but there are other ways to
+dnl make these checks generic, e.g.:
+dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
+dnl (Moritz Barsnick <moritz@barsnick.net>)
dnl =================================================================
case "$host" in
*-solaris*) SOCKET_LIB="-lsocket -lnsl"
- AC_DEFINE(__EXTENSIONS__)
+ AC_DEFINE(__EXTENSIONS__,1,
+ [Define to 1 on Solaris. Do not define on other platforms.])
if test "$GCC" = "yes"; then
# Set a GCC specific switch:
# This compiler switch makes Solaris thread-safe
AC_SUBST(SOCKET_LIB)
+dnl =================================================================
+dnl Solaris problem, and others perhaps (socklen_t is undefined)
+dnl =================================================================
+
+AC_MSG_CHECKING([for socklen_t])
+AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
+ AC_MSG_RESULT([no])
+ AC_DEFINE(socklen_t,int,
+ [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
+
+
dnl =================================================================
dnl OS/2 specific
dnl =================================================================
AC_SUBST(SOCKET_LIB)
+dnl =================================================================
+dnl Mac OSX specific
+dnl =================================================================
+
+case "$host" in
+*-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
+;;
+esac
+
dnl =================================================================
dnl AmigaOS specific
dnl =================================================================
AC_EXEEXT
AC_OBJEXT
AC_HEADER_STDC
+AC_HEADER_DIRENT
AC_C_CONST
AC_TYPE_SIZE_T
+AC_TYPE_PID_T
+AC_HEADER_TIME
+AC_STRUCT_TM
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(char *, 4)
AC_CHECK_SIZEOF(long, 4)
dnl Checks for header files.
dnl AC_HEADER_SYS_WAIT
dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
+AC_CHECK_HEADERS([OS.h arpa/inet.h errno.h fcntl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h sys/timeb.h sys/wait.h unistd.h])
dnl Checks for library functions.
dnl AC_TYPE_SIGNAL
dnl AC_CHECK_FUNC(strstr)
dnl bcopy and memmove are for PCRE
-AC_CHECK_FUNCS(strerror bcopy memmove)
+AC_CHECK_FUNCS([strerror bcopy memmove])
+AC_PROG_GCC_TRADITIONAL
+dnl uncommenting does not work for swa. suse linux
+dnl AC_FUNC_MALLOC
+AC_FUNC_SETPGRP
+AC_TYPE_SIGNAL
+dnl uncommenting does not work for swa. suse linux
+dnl AC_FUNC_STAT
+AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
dnl =================================================================
dnl =================================================================
dnl Note: Some systems may have the library but not the system header
dnl file, so we must check for both.
-AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
-AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
-AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
-
+dnl Also check for correct version
+AC_CHECK_LIB(pcre, pcre_compile, [
+ AC_CHECK_HEADER(pcre.h, [
+ AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
+ ], [
+ AC_CHECK_HEADER(pcre/pcre.h, [
+ AC_EGREP_HEADER(pcre_fullinfo, pcre/pcre.h, [have_pcre=yes]; [AC_DEFINE(PCRE_H_IN_SUBDIR)], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
+ ], [have_pcre=no])
+ ])
+], [have_pcre=no])
+
+AC_CHECK_LIB(pcreposix, regcomp, [
+ AC_CHECK_HEADER(pcreposix.h, [
+ AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
+ ], [
+ AC_CHECK_HEADER(pcre/pcreposix.h, [
+ AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)])
+ ], [have_pcreposix=no])
+ ])
+], [have_pcreposix=no], -lpcre)
+
+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__)
+AC_DEFINE(__MT__,1,
+ [Always define this, for thread safety on some platforms.])
dnl =================================================================
dnl Features
AC_ARG_ENABLE(toggle,
[ --disable-toggle Don't support temporary disable],
-[if test $enableval = yes; then
- AC_DEFINE(FEATURE_TOGGLE)
-fi],AC_DEFINE(FEATURE_TOGGLE))
+[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
AC_ARG_ENABLE(force,
[ --disable-force Don't allow single-page disable],
-[if test $enableval = yes; then
- AC_DEFINE(FEATURE_FORCE_LOAD)
-fi],AC_DEFINE(FEATURE_FORCE_LOAD))
+[enableval2=$enableval],
+[enableval2=yes])
+if test $enableval2 = yes; then
+ AC_DEFINE(FEATURE_FORCE_LOAD,1,
+ [ Bypass filtering for 1 page only. ])
+fi
AC_ARG_ENABLE(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))
+[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],
-[if test $enableval = yes; then
- AC_DEFINE(FEATURE_KILL_POPUPS)
-fi],AC_DEFINE(FEATURE_KILL_POPUPS))
+[enableval2=$enableval],
+[enableval2=yes])
+if test $enableval2 = yes; then
+ AC_DEFINE(FEATURE_KILL_POPUPS,1,
+ [ Kills JavaScript popups - window.open, onunload, etc. ])
+fi
AC_ARG_ENABLE(stats,
[ --disable-stats Don't keep statistics],
-[if test $enableval = yes; then
- AC_DEFINE(FEATURE_STATISTICS)
-fi],AC_DEFINE(FEATURE_STATISTICS))
+[enableval2=$enableval],
+[enableval2=yes])
+if test $enableval2 = yes; then
+ AC_DEFINE(FEATURE_STATISTICS,1,
+ [ Enables statistics function. ])
+fi
AC_ARG_ENABLE(ie-images,
-[ --disable-ie-images Don't auto-detect whether a request from MS Internet
+[ --enable-ie-images Don't auto-detect whether a request from MS Internet
Explorer is for an image or HTML.],
-[if test $enableval = yes; then
- AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
-fi],
-AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
+[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
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.],
-[if test $enableval = yes; then
- AC_DEFINE(FEATURE_IMAGE_BLOCKING)
-fi],
-AC_DEFINE(FEATURE_IMAGE_BLOCKING))
+[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
AC_ARG_ENABLE(acl-files,
[ --disable-acl-files Prevents the use of ACL files to control access to
the proxy by IP address.],
-[if test $enableval = yes; then
- AC_DEFINE(FEATURE_ACL)
-fi],
-AC_DEFINE(FEATURE_ACL))
+[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
AC_ARG_ENABLE(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))
+[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.],
-[if test $enableval = yes; then
- AC_DEFINE(FEATURE_COOKIE_JAR)
-fi],
-AC_DEFINE(FEATURE_COOKIE_JAR))
+[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
AC_ARG_ENABLE(editor,
[ --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))
+[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
+
+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
+
dnl pcre/pcrs is needed for CGI anyway, so
dnl the choice is only between static and
dnl dynamic:
-AC_ARG_ENABLE(regex-matching,
-[ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
- pattern matching (default)
- --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
- matching (-> bigger binary)
- --disable-regex-matching Don't use regex matching, compare URL
- prefix instead (won't shrink birary)],
-[ regex_matching=$enableval ],
-[ regex_matching=pcre ])
-
AC_ARG_ENABLE(dynamic-pcre,
[ --disable-dynamic-pcre Use the built-in, static pcre, even if
libpcre is available],
[ if test $enableval = "no"; then have_pcrs=no; fi ])
-# Is the regex URL matching based on libpcreposix, but we
-# don't have that library?
-#
-if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
- dont_miss_pcreposix=yes
-else
- dont_miss_pcreposix=no
-fi
-
# If we have libpcre and either we also have pcreposix or
# we don't need pcreposix, then link pcre dynamically; else
# build it and link statically
#
-if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
+if test $have_pcre = "yes"; then
echo "using libpcre"
pcre_dyn=yes
STATIC_PCRE_ONLY=#
- LIBS="$LIBS -lpcre"
+ LIBS="$LIBS -lpcre -lpcreposix"
else
echo "using built-in static pcre"
pcre_dyn=no
- AC_DEFINE(STATIC_PCRE)
+ 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.])
STATIC_PCRE_ONLY=
fi
LIBS="$LIBS -lpcrs"
else
echo "using built-in static pcrs"
- AC_DEFINE(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.])
STATIC_PCRS_ONLY=
fi
-# Which method should be used for URL matching?
-# pcre, gnu regex or prefix matching?
-#
-if test $regex_matching = "gnu"; then
- echo "using gnu regex for URL matching"
- AC_DEFINE(REGEX_GNU)
- GNU_REGEX_ONLY=
- PCRE_REGEX_ONLY=#
-elif test $regex_matching = "pcre"; then
- echo "using pcre regex for URL matching"
- AC_DEFINE(REGEX_PCRE)
- GNU_REGEX_ONLY=#
- PCRE_REGEX_ONLY=
- if test $pcre_dyn = "yes"; then
- LIBS="$LIBS -lpcreposix"
- fi
-else
- echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
- GNU_REGEX_ONLY=#
- PCRE_REGEX_ONLY=#
-fi
-
-AC_SUBST(GNU_REGEX_ONLY)
-AC_SUBST(PCRE_REGEX_ONLY)
AC_SUBST(STATIC_PCRE_ONLY)
AC_SUBST(STATIC_PCRS_ONLY)
+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 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 =================================================================
CFLAGS=$old_CFLAGS_nospecial
AC_SUBST(SPECIAL_CFLAGS)
-AC_SUBST(PID_FILE_PATH)
-AC_DEFINE_UNQUOTED(PID_FILE_PATH,${PID_FILE_PATH})
-
AC_SUBST(PTHREAD_LIB)
-AC_OUTPUT(GNUmakefile)
+AC_OUTPUT(GNUmakefile doc/source/ldp.dsl doc/source/GNUmakefile)