1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.46 2002/03/24 18:55:06 jongfoster Exp $
5 dnl Written by and Copyright (C) 2001 the SourceForge
6 dnl Privoxy team. http://ijbswa.sourceforge.net
8 dnl Based on the Internet Junkbuster originally written
9 dnl by and Copyright (C) 1997 Anonymous Coders and
10 dnl Junkbusters Corporation. http://www.junkbusters.com
12 dnl This program is free software; you can redistribute it
13 dnl and/or modify it under the terms of the GNU General
14 dnl Public License as published by the Free Software
15 dnl Foundation; either version 2 of the License, or (at
16 dnl your option) any later version.
18 dnl This program is distributed in the hope that it will
19 dnl be useful, but WITHOUT ANY WARRANTY; without even the
20 dnl implied warranty of MERCHANTABILITY or FITNESS FOR A
21 dnl PARTICULAR PURPOSE. See the GNU General Public
22 dnl License for more details.
24 dnl The GNU General Public License should be included with
25 dnl this file. If not, you can view it at
26 dnl http://www.gnu.org/copyleft/gpl.html
27 dnl or write to the Free Software Foundation, Inc., 59
28 dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA.
30 dnl $Log: configure.in,v $
31 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
32 dnl Making Docbook work under Windows
34 dnl Revision 1.45 2002/03/24 14:19:55 swa
35 dnl set rpm package release in configure.in. nowhere else.
37 dnl Revision 1.44 2002/03/24 13:25:43 swa
38 dnl name change related issues
40 dnl Revision 1.43 2002/03/24 12:56:21 swa
41 dnl name change related issues.
43 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
44 dnl Bumping version number to 2.9.12
46 dnl Revision 1.41 2002/03/19 19:30:04 morcego
47 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
50 dnl - configure will now check for db2html or docbook2html (should work now
51 dnl on SuSe without the docbktls package)
53 dnl Revision 1.40 2002/03/09 14:33:30 oes
54 dnl Fixing the (harmless) AC_CHECK_FILE warnings
56 dnl Revision 1.39 2002/03/08 16:46:13 oes
57 dnl Added --enable-no-gifs
59 dnl Revision 1.38 2002/03/08 14:13:50 morcego
60 dnl Fixing configure, to remove a command not found error.
62 dnl Revision 1.37 2002/03/08 12:58:21 oes
63 dnl Tiny bugfix in AC_ARG_WITH(debug)
65 dnl Revision 1.36 2002/03/06 23:50:36 morcego
66 dnl Will not test for a text browser if we are not using docbook.
68 dnl Revision 1.35 2002/03/06 21:55:52 morcego
69 dnl New configure option: --with-docbook=(yes|no|directory)
70 dnl Preliminary new platform detection code included. Will work with the
71 dnl old one for now. No use just trowing it away
73 dnl Revision 1.34 2002/03/06 20:57:00 morcego
74 dnl Fixing detection of stylesheets on SuSe.
76 dnl Revision 1.33 2002/03/05 17:31:11 morcego
77 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
79 dnl Revision 1.32 2002/03/05 14:07:43 morcego
80 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
81 dnl (based on sugestion by Sarantis Paskalis)
83 dnl Revision 1.31 2002/03/05 13:43:28 morcego
84 dnl Checking for text browser, so redhat-dok can work.
86 dnl Revision 1.30 2002/03/04 17:58:01 oes
87 dnl Deleted _DEBUG and PID_FILE_PATH
89 dnl Revision 1.29 2002/02/28 14:20:53 oes
90 dnl Fixed detection of gethost*_r functions on Solaris
92 dnl Revision 1.28 2002/02/27 15:02:38 oes
93 dnl Incremented version number
95 dnl Revision 1.27 2002/01/10 12:35:18 oes
96 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
97 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
98 dnl Is there a better way?
100 dnl Revision 1.26 2002/01/09 14:29:49 oes
101 dnl - Added AC_CHECK_FUNC tests for the availability of
102 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
103 dnl localtime_r, as well as AC_TRY_COMPILE tests to
104 dnl determine their signatures.
106 dnl - Fixed a bug with the init of CFLAGS that was
107 dnl reported by barsnick
109 dnl Revision 1.25 2002/01/04 15:27:18 oes
110 dnl Changed quoting of CODE_STATUS for use in make
112 dnl Revision 1.24 2001/12/30 14:07:31 steudten
113 dnl - Add signal handling (unix)
114 dnl - Add SIGHUP handler (unix)
115 dnl - Add creation of pidfile (unix)
116 dnl - Add action 'top' in rc file (RH)
117 dnl - Add entry 'SIGNALS' to manpage
118 dnl - Add exit message to logfile (unix)
120 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
121 dnl Change from "alpha" to "beta" in configure.in
123 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
124 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
125 dnl make break in a more obvious way.
127 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
128 dnl Bumping version number to 2.9.10
130 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
131 dnl Support for FEATURE_CGI_EDIT_ACTIONS
133 dnl Revision 1.19 2001/10/07 15:33:14 oes
134 dnl Removed FEATURE_DENY_GZIP
135 dnl Bumped up version number
137 dnl Revision 1.18 2001/09/13 13:10:24 steudten
139 dnl PreWork for Debug Interface.
140 dnl Add new option "--with-debug" to enable debugging (flags aso.)
142 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
143 dnl Mac OSX (Darwin) support added.
145 dnl Revision 1.16 2001/09/12 22:55:45 joergs
146 dnl AmigaOS support added.
148 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
150 dnl OS/2 port: update autoconf'd support for the platform.
152 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
153 dnl Fixing Solaris build (I hope) and tidying up #defines:
154 dnl - All feature #defines are now of the form FEATURE_xxx
155 dnl - Permanently turned off WIN_GUI_EDIT
156 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
158 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
159 dnl Major changes to build system in order to fix these bugs:
160 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
161 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
162 dnl which shared libraries are available
163 dnl - Solaris support (?) (Not tested under Solaris yet)
165 dnl Revision 1.12 2001/07/25 19:16:27 oes
166 dnl Bumping version number to 2.9.8
168 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
169 dnl Bumping version number to 2.9.7
171 dnl Revision 1.10 2001/07/18 17:25:04 oes
174 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
175 dnl Added support for linking with POSIX threads library
177 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
178 dnl Renaming #define STATIC to STATIC_PCRE
179 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
180 dnl POSIX threads support.
182 dnl Revision 1.7 2001/07/13 13:58:05 oes
183 dnl Completely reorganized the selection scheme for
184 dnl pcre, pcreposix, pcrs and gnu_regex:
186 dnl The presence of shared pcre, pcreposix or pcrs
187 dnl libraried is now autodetected. Additionally, the
188 dnl user can enforce using the built-in static variants
189 dnl by specifying --disable-dynamic-(pcre|pcrs).
190 dnl Care is taken to avoid that pcre is dyn, while pcreposix
191 dnl is static, if both are used and that pcrs is static if
194 dnl The choice between pcre, gnu or no regex for actionsfile
195 dnl URL matching is now via
196 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
197 dnl default being pcre.
199 dnl Revision 1.6 2001/06/29 21:56:40 oes
202 dnl Revision 1.5 2001/06/29 13:26:27 oes
203 dnl Introduced #define CODE_STATUS
205 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
206 dnl Unified blocklist/imagelist/permissionslist.
207 dnl File format is still under discussion, but the internal changes
208 dnl are (mostly) done.
210 dnl Also modified interceptor behaviour:
211 dnl - We now intercept all URLs beginning with one of the following
212 dnl prefixes (and *only* these prefixes):
214 dnl * http://ijbswa.sf.net/config/
215 dnl * http://ijbswa.sourceforge.net/config/
216 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
217 dnl - Internal changes so that intercepted and fast redirect pages
218 dnl are not replaced with an image.
219 dnl - Interceptors now have the option to send a binary page direct
220 dnl to the client. (i.e. ijb-send-banner uses this)
221 dnl - Implemented show-url-info interceptor. (Which is why I needed
222 dnl the above interceptors changes - a typical URL is
223 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
224 dnl The previous mechanism would not have intercepted that, and
225 dnl if it had been intercepted then it then it would have replaced
226 dnl it with an image.)
228 dnl Revision 1.3 2001/05/22 18:46:04 oes
230 dnl - Enabled filtering banners by size rather than URL
231 dnl by adding patterns that replace all standard banner
232 dnl sizes with the "Junkbuster" gif to the re_filterfile
234 dnl - Enabled filtering WebBugs by providing a pattern
235 dnl which kills all 1x1 images
237 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
238 dnl which is selected by the (nonstandard and therefore
239 dnl capital) letter 'U' in the option string.
240 dnl It causes the quantifiers to be ungreedy by default.
241 dnl Appending a ? turns back to greedy (!).
243 dnl - Added a new interceptor ijb-send-banner, which
244 dnl sends back the "Junkbuster" gif. Without imagelist or
245 dnl MSIE detection support, or if tinygif = 1, or the
246 dnl URL isn't recognized as an imageurl, a lame HTML
247 dnl explanation is sent instead.
249 dnl - Added new feature, which permits blocking remote
250 dnl script redirects and firing back a local redirect
252 dnl The feature is conditionally compiled, i.e. it
253 dnl can be disabled with --disable-fast-redirects,
254 dnl plus it must be activated by a "fast-redirects"
255 dnl line in the config file, has its own log level
256 dnl and of course wants to be displayed by show-proxy-args
257 dnl Note: Boy, all the #ifdefs in 1001 locations and
258 dnl all the fumbling with configure.in and acconfig.h
259 dnl were *way* more work than the feature itself :-(
261 dnl - Because a generic redirect template was needed for
262 dnl this, tinygif = 3 now uses the same.
264 dnl - Moved GIFs, and other static HTTP response templates
267 dnl - Some minor fixes
269 dnl - Removed some >400 CRs again (Jon, you really worked
272 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
273 dnl Version 2.9.4 checkin.
274 dnl - Merged popupfile and cookiefile, and added control over PCRS
275 dnl filtering, in new "permissionsfile".
276 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
277 dnl file error you now get a message box (in the Win32 GUI) rather
278 dnl than the program exiting with no explanation.
279 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
281 dnl - Removed tabs from "config"
282 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
283 dnl - Bumped up version number.
285 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
286 dnl Initial import of version 2.9.3 source tree
291 dnl =================================================================
292 dnl AutoConf Initialization
293 dnl =================================================================
295 AC_REVISION($Revision: 1.46 $)
297 AC_CONFIG_HEADER(config.h)
302 AC_ARG_WITH(docbook, dnl
303 --with-docbook=[[yes|no|directory]]
304 Enable docbook documentation creation
305 (default = yes, for gnu and linux),[dnl
306 case "$with_docbook" in
316 AC_ARG_WITH(db2html, dnl
317 --with-db2html=<path/executable>
318 Set the location of the docbook to html converter
319 (default = search),[dnl
323 dnl =================================================================
324 dnl Application version number
325 dnl =================================================================
330 VERSION_RPM_PACKAGE=3
333 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
334 dnl used for CGI output
336 dnl =================================================================
337 dnl Substitute the version numbers
338 dnl =================================================================
340 AC_SUBST(VERSION_MAJOR)
341 AC_SUBST(VERSION_MINOR)
342 AC_SUBST(VERSION_POINT)
343 AC_SUBST(VERSION_RPM_PACKAGE)
344 AC_SUBST(CODE_STATUS)
347 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
348 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
349 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
350 AC_DEFINE_UNQUOTED(VERSION_RPM_PACKAGE,${VERSION_RPM_PACKAGE})
351 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
352 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
354 dnl =================================================================
355 dnl Checks for programs needed to build.
356 dnl =================================================================
363 dnl RANLIB is for PCRE:
366 AC_CHECK_PROG(GDB,gdb,yes,no)
368 dnl =================================================================
369 dnl debug, gcc and gdb support
370 dnl =================================================================
373 [ --with-debug Enable debug mode],
375 if test "x$withval" != "xno" ; then
376 if test $ac_cv_prog_cc_g = yes; then
377 if test "$GCC" = yes; then
383 CFLAGS="$CFLAGS -Wshadow -Wconversion"
391 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
392 if test "$GCC" = yes; then
401 dnl =================================================================
402 dnl additional gcc flags
403 dnl =================================================================
406 CFLAGS="-pipe $CFLAGS"
410 dnl =================================================================
412 dnl =================================================================
414 dnl Must do this first.
416 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
417 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
418 dnl the compiler will use completely different sets of library
419 dnl and include files.
421 dnl =================================================================
426 if test "$MINGW32" = "yes"; then
429 if test "$CYGWIN" = "yes"; then
436 if test $dodk = auto; then
438 if test $target_type = unix; then
447 dnl Decide what to do based on target_type
448 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
449 dnl This is because we don't know yet whether pthread is enabled.
451 AC_ARG_ENABLE(mingw32,
452 [ --enable-mingw32 Use mingw32 for a Windows GUI],
453 [if test $enableval = yes; then
457 if test $target_type = mingw; then
459 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
460 PTHREAD_LIB=-lpthreadGC
461 echo "Using mingw32 (Win32 GUI)"
464 if test $target_type = cygwin; then
465 SPECIAL_CFLAGS="-mno-win32"
467 echo "Using Cygnus (Win32 command line)"
470 PTHREAD_LIB=-lpthread
475 dnl Checking which text html browser we have avaliable
476 if test $dodk != no; then
477 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
478 if test "$WDUMP" = false; then
479 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
481 if test $DB2HTML = false; then
482 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
485 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
491 dnl If we use rpm, we need to check where %_topdir is
492 AC_CHECK_PROGS(RPMBIN,rpm,false)
493 if test $RPMBIN != false; then
494 RPM_BASE=`rpm --eval "%{_topdir}"`
495 if test "$RPM_BASE" = ""; then
496 RPM_BASE=/usr/src/redhat
501 dnl Check for jade, so we can build the documentation
502 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
505 dnl Checking for the docbook.dsl stylesheet file
506 dnl It is still not portable (directory slash)
507 if test $dodk = yes; then
508 if test $DKPREFIX = none; then
509 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
510 echo -n "checking for $i/html/docbook.dsl..."
511 if test -f $i/html/docbook.dsl; then
523 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
524 old_CFLAGS_nospecial=$CFLAGS
525 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
527 # Hack to force AutoConf to use the CFLAGS we just set
528 dnl Warning: This may break with a future version of Autoconf
529 dnl Tested with autoconf 2.13
530 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
531 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
532 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
535 dnl =================================================================
537 dnl =================================================================
539 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
541 AC_ARG_ENABLE(pthread,
542 [ --disable-pthread Don't use POSIX threads (pthreads)],
543 [if test $enableval = no; then
548 if test $have_pthread = yes; then
550 AC_DEFINE(FEATURE_PTHREAD)
551 echo Using POSIX threads
552 if test "$GCC" = "yes"; then
553 # Set a GCC specific switch:
554 if test "$target_type" = "unix"; then
555 # This compiler switch makes Linux thread-safe
556 # Don't know about other OS's? Is this switch
559 SPECIAL_CFLAGS="-pthread"
564 echo Using native threads
567 AC_SUBST(PTHREAD_ONLY)
569 dnl =================================================================
570 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
571 dnl gmtime and localtime
572 dnl =================================================================
574 dnl Next line needed to find the gethost*_r functions on Solaris
575 AC_CHECK_LIB(nsl, gethostbyname)
577 AC_CHECK_FUNC(gethostbyaddr_r, [
578 AC_MSG_CHECKING([signature of gethostbyaddr_r])
582 struct hostent *h, *hp;
585 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
587 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
588 AC_MSG_RESULT([8 args])
596 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
598 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
599 AC_MSG_RESULT([7 args])
604 struct hostent_data *d;
608 (void) gethostbyaddr_r(a, l, t, h, d)
610 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
611 AC_MSG_RESULT([5 args])
613 AC_MSG_RESULT(unrecognised)
621 AC_CHECK_FUNC(gethostbyname_r, [
622 AC_MSG_CHECKING([signature of gethostbyname_r])
626 struct hostent *h, *r;
629 (void) gethostbyname_r(n, h, b, bl, &r, &e)
631 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
632 AC_MSG_RESULT([6 args])
640 (void) gethostbyname_r(n, h, b, bl, &e)
642 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
643 AC_MSG_RESULT([5 args])
648 struct hostent_data *d;
651 (void) gethostbyname_r(n, h, d)
653 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
654 AC_MSG_RESULT([3 args])
656 AC_MSG_RESULT(unrecognised)
664 AC_CHECK_FUNC(gmtime_r, [
665 AC_MSG_CHECKING([signature of gmtime_r])
671 (void) gmtime_r(t, tm)
674 AC_DEFINE(HAVE_GMTIME_R)
676 AC_MSG_RESULT(unrecognised)
682 AC_CHECK_FUNC(localtime_r, [
683 AC_MSG_CHECKING([signature of localtime_r])
689 (void) localtime_r(t, tm)
692 AC_DEFINE(HAVE_LOCALTIME_R)
694 AC_MSG_RESULT(unrecognised)
700 dnl =================================================================
702 dnl FIXME: Not tested on Solaris yet...
703 dnl =================================================================
709 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
710 AC_DEFINE(__EXTENSIONS__)
711 if test "$GCC" = "yes"; then
712 # Set a GCC specific switch:
713 # This compiler switch makes Solaris thread-safe
715 SPECIAL_CFLAGS="-pthreads"
717 # What do we do without GCC? Guess this:
718 SPECIAL_CFLAGS="-D_REENTRANT"
725 dnl =================================================================
727 dnl =================================================================
730 *-os2-emx*) SOCKET_LIB=-lsocket
736 dnl =================================================================
738 dnl =================================================================
743 *-amigaos) AMIGAOS_ONLY=
747 AC_SUBST(AMIGAOS_ONLY)
749 dnl =================================================================
750 dnl Check for standard compiler stuff
751 dnl =================================================================
758 AC_CHECK_SIZEOF(int, 4)
759 AC_CHECK_SIZEOF(char *, 4)
760 AC_CHECK_SIZEOF(long, 4)
761 AC_CHECK_SIZEOF(long long, 8)
762 AC_CHECK_SIZEOF(size_t, 4)
764 dnl Checks for header files.
765 dnl AC_HEADER_SYS_WAIT
766 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
768 dnl Checks for library functions.
770 dnl AC_CHECK_FUNC(strstr)
771 dnl bcopy and memmove are for PCRE
772 AC_CHECK_FUNCS(strerror bcopy memmove)
775 dnl =================================================================
776 dnl Checks for libraries.
777 dnl =================================================================
778 dnl Note: Some systems may have the library but not the system header
779 dnl file, so we must check for both.
780 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
781 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
782 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
785 dnl =================================================================
787 dnl =================================================================
791 dnl =================================================================
793 dnl =================================================================
795 AC_ARG_ENABLE(toggle,
796 [ --disable-toggle Don't support temporary disable],
797 [if test $enableval = yes; then
798 AC_DEFINE(FEATURE_TOGGLE)
799 fi],AC_DEFINE(FEATURE_TOGGLE))
802 [ --disable-force Don't allow single-page disable],
803 [if test $enableval = yes; then
804 AC_DEFINE(FEATURE_FORCE_LOAD)
805 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
807 AC_ARG_ENABLE(fast-redirects,
808 [ --disable-fast-redirects Don't support fast redirects],
809 [if test $enableval = yes; then
810 AC_DEFINE(FEATURE_FAST_REDIRECTS)
811 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
813 AC_ARG_ENABLE(killpopup,
814 [ --disable-killpopup Never block popups],
815 [if test $enableval = yes; then
816 AC_DEFINE(FEATURE_KILL_POPUPS)
817 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
820 [ --disable-stats Don't keep statistics],
821 [if test $enableval = yes; then
822 AC_DEFINE(FEATURE_STATISTICS)
823 fi],AC_DEFINE(FEATURE_STATISTICS))
825 AC_ARG_ENABLE(ie-images,
826 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
827 Explorer is for an image or HTML.],
828 [if test $enableval = yes; then
829 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
831 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
833 AC_ARG_ENABLE(image-blocking,
834 [ --disable-image-blocking Don't try to figure out whether a request is
835 for an image or HTML - assume HTML.],
836 [if test $enableval = yes; then
837 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
839 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
841 AC_ARG_ENABLE(acl-files,
842 [ --disable-acl-files Prevents the use of ACL files to control access to
843 the proxy by IP address.],
844 [if test $enableval = yes; then
845 AC_DEFINE(FEATURE_ACL)
847 AC_DEFINE(FEATURE_ACL))
849 AC_ARG_ENABLE(trust-files,
850 [ --disable-trust-files Prevents the use of trust files.],
851 [if test $enableval = yes; then
852 AC_DEFINE(FEATURE_TRUST)
854 AC_DEFINE(FEATURE_TRUST))
856 AC_ARG_ENABLE(jar-files,
857 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
858 [if test $enableval = yes; then
859 AC_DEFINE(FEATURE_COOKIE_JAR)
861 AC_DEFINE(FEATURE_COOKIE_JAR))
863 AC_ARG_ENABLE(editor,
864 [ --disable-editor Prevents the use of the web-based actions file
865 editor and web-based temporary disable setting.],
866 [if test $enableval = yes; then
867 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
869 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
871 AC_ARG_ENABLE(no-gifs,
872 [ --enable-no-gifs Use politically correct PNG format instead of GIF
873 for built-in images. May not work with all browsers.],
874 [if test $enableval = yes; then
875 AC_DEFINE(FEATURE_NO_GIFS)
879 dnl pcre/pcrs is needed for CGI anyway, so
880 dnl the choice is only between static and
883 AC_ARG_ENABLE(regex-matching,
884 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
885 pattern matching (default)
886 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
887 matching (-> bigger binary)
888 --disable-regex-matching Don't use regex matching, compare URL
889 prefix instead (won't shrink birary)],
890 [ regex_matching=$enableval ],
891 [ regex_matching=pcre ])
893 AC_ARG_ENABLE(dynamic-pcre,
894 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
895 libpcre is available],
896 [ if test $enableval = "no"; then have_pcre=no; fi ])
898 AC_ARG_ENABLE(dynamic-pcrs,
899 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
900 libpcrs is available],
901 [ if test $enableval = "no"; then have_pcrs=no; fi ])
904 # Is the regex URL matching based on libpcreposix, but we
905 # don't have that library?
907 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
908 dont_miss_pcreposix=yes
910 dont_miss_pcreposix=no
913 # If we have libpcre and either we also have pcreposix or
914 # we don't need pcreposix, then link pcre dynamically; else
915 # build it and link statically
917 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
923 echo "using built-in static pcre"
925 AC_DEFINE(STATIC_PCRE)
929 # If we have libpcrs and pcre is linked dynamically
930 # then also link pcrs dynamically, else build and link
933 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
938 echo "using built-in static pcrs"
939 AC_DEFINE(STATIC_PCRS)
943 # Which method should be used for URL matching?
944 # pcre, gnu regex or prefix matching?
946 if test $regex_matching = "gnu"; then
947 echo "using gnu regex for URL matching"
951 elif test $regex_matching = "pcre"; then
952 echo "using pcre regex for URL matching"
953 AC_DEFINE(REGEX_PCRE)
956 if test $pcre_dyn = "yes"; then
957 LIBS="$LIBS -lpcreposix"
960 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
965 AC_SUBST(GNU_REGEX_ONLY)
966 AC_SUBST(PCRE_REGEX_ONLY)
967 AC_SUBST(STATIC_PCRE_ONLY)
968 AC_SUBST(STATIC_PCRS_ONLY)
970 dnl =================================================================
971 dnl Final cleanup and output
972 dnl =================================================================
974 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
976 CFLAGS=$old_CFLAGS_nospecial
977 AC_SUBST(SPECIAL_CFLAGS)
979 AC_SUBST(PTHREAD_LIB)
981 AC_OUTPUT(GNUmakefile)