1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.43 2002/03/24 12:56:21 swa 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.43 2002/03/24 12:56:21 swa
32 dnl name change related issues.
34 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
35 dnl Bumping version number to 2.9.12
37 dnl Revision 1.41 2002/03/19 19:30:04 morcego
38 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
41 dnl - configure will now check for db2html or docbook2html (should work now
42 dnl on SuSe without the docbktls package)
44 dnl Revision 1.40 2002/03/09 14:33:30 oes
45 dnl Fixing the (harmless) AC_CHECK_FILE warnings
47 dnl Revision 1.39 2002/03/08 16:46:13 oes
48 dnl Added --enable-no-gifs
50 dnl Revision 1.38 2002/03/08 14:13:50 morcego
51 dnl Fixing configure, to remove a command not found error.
53 dnl Revision 1.37 2002/03/08 12:58:21 oes
54 dnl Tiny bugfix in AC_ARG_WITH(debug)
56 dnl Revision 1.36 2002/03/06 23:50:36 morcego
57 dnl Will not test for a text browser if we are not using docbook.
59 dnl Revision 1.35 2002/03/06 21:55:52 morcego
60 dnl New configure option: --with-docbook=(yes|no|directory)
61 dnl Preliminary new platform detection code included. Will work with the
62 dnl old one for now. No use just trowing it away
64 dnl Revision 1.34 2002/03/06 20:57:00 morcego
65 dnl Fixing detection of stylesheets on SuSe.
67 dnl Revision 1.33 2002/03/05 17:31:11 morcego
68 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
70 dnl Revision 1.32 2002/03/05 14:07:43 morcego
71 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
72 dnl (based on sugestion by Sarantis Paskalis)
74 dnl Revision 1.31 2002/03/05 13:43:28 morcego
75 dnl Checking for text browser, so redhat-dok can work.
77 dnl Revision 1.30 2002/03/04 17:58:01 oes
78 dnl Deleted _DEBUG and PID_FILE_PATH
80 dnl Revision 1.29 2002/02/28 14:20:53 oes
81 dnl Fixed detection of gethost*_r functions on Solaris
83 dnl Revision 1.28 2002/02/27 15:02:38 oes
84 dnl Incremented version number
86 dnl Revision 1.27 2002/01/10 12:35:18 oes
87 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
88 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
89 dnl Is there a better way?
91 dnl Revision 1.26 2002/01/09 14:29:49 oes
92 dnl - Added AC_CHECK_FUNC tests for the availability of
93 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
94 dnl localtime_r, as well as AC_TRY_COMPILE tests to
95 dnl determine their signatures.
97 dnl - Fixed a bug with the init of CFLAGS that was
98 dnl reported by barsnick
100 dnl Revision 1.25 2002/01/04 15:27:18 oes
101 dnl Changed quoting of CODE_STATUS for use in make
103 dnl Revision 1.24 2001/12/30 14:07:31 steudten
104 dnl - Add signal handling (unix)
105 dnl - Add SIGHUP handler (unix)
106 dnl - Add creation of pidfile (unix)
107 dnl - Add action 'top' in rc file (RH)
108 dnl - Add entry 'SIGNALS' to manpage
109 dnl - Add exit message to logfile (unix)
111 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
112 dnl Change from "alpha" to "beta" in configure.in
114 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
115 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
116 dnl make break in a more obvious way.
118 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
119 dnl Bumping version number to 2.9.10
121 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
122 dnl Support for FEATURE_CGI_EDIT_ACTIONS
124 dnl Revision 1.19 2001/10/07 15:33:14 oes
125 dnl Removed FEATURE_DENY_GZIP
126 dnl Bumped up version number
128 dnl Revision 1.18 2001/09/13 13:10:24 steudten
130 dnl PreWork for Debug Interface.
131 dnl Add new option "--with-debug" to enable debugging (flags aso.)
133 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
134 dnl Mac OSX (Darwin) support added.
136 dnl Revision 1.16 2001/09/12 22:55:45 joergs
137 dnl AmigaOS support added.
139 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
141 dnl OS/2 port: update autoconf'd support for the platform.
143 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
144 dnl Fixing Solaris build (I hope) and tidying up #defines:
145 dnl - All feature #defines are now of the form FEATURE_xxx
146 dnl - Permanently turned off WIN_GUI_EDIT
147 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
149 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
150 dnl Major changes to build system in order to fix these bugs:
151 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
152 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
153 dnl which shared libraries are available
154 dnl - Solaris support (?) (Not tested under Solaris yet)
156 dnl Revision 1.12 2001/07/25 19:16:27 oes
157 dnl Bumping version number to 2.9.8
159 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
160 dnl Bumping version number to 2.9.7
162 dnl Revision 1.10 2001/07/18 17:25:04 oes
165 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
166 dnl Added support for linking with POSIX threads library
168 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
169 dnl Renaming #define STATIC to STATIC_PCRE
170 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
171 dnl POSIX threads support.
173 dnl Revision 1.7 2001/07/13 13:58:05 oes
174 dnl Completely reorganized the selection scheme for
175 dnl pcre, pcreposix, pcrs and gnu_regex:
177 dnl The presence of shared pcre, pcreposix or pcrs
178 dnl libraried is now autodetected. Additionally, the
179 dnl user can enforce using the built-in static variants
180 dnl by specifying --disable-dynamic-(pcre|pcrs).
181 dnl Care is taken to avoid that pcre is dyn, while pcreposix
182 dnl is static, if both are used and that pcrs is static if
185 dnl The choice between pcre, gnu or no regex for actionsfile
186 dnl URL matching is now via
187 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
188 dnl default being pcre.
190 dnl Revision 1.6 2001/06/29 21:56:40 oes
193 dnl Revision 1.5 2001/06/29 13:26:27 oes
194 dnl Introduced #define CODE_STATUS
196 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
197 dnl Unified blocklist/imagelist/permissionslist.
198 dnl File format is still under discussion, but the internal changes
199 dnl are (mostly) done.
201 dnl Also modified interceptor behaviour:
202 dnl - We now intercept all URLs beginning with one of the following
203 dnl prefixes (and *only* these prefixes):
205 dnl * http://ijbswa.sf.net/config/
206 dnl * http://ijbswa.sourceforge.net/config/
207 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
208 dnl - Internal changes so that intercepted and fast redirect pages
209 dnl are not replaced with an image.
210 dnl - Interceptors now have the option to send a binary page direct
211 dnl to the client. (i.e. ijb-send-banner uses this)
212 dnl - Implemented show-url-info interceptor. (Which is why I needed
213 dnl the above interceptors changes - a typical URL is
214 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
215 dnl The previous mechanism would not have intercepted that, and
216 dnl if it had been intercepted then it then it would have replaced
217 dnl it with an image.)
219 dnl Revision 1.3 2001/05/22 18:46:04 oes
221 dnl - Enabled filtering banners by size rather than URL
222 dnl by adding patterns that replace all standard banner
223 dnl sizes with the "Junkbuster" gif to the re_filterfile
225 dnl - Enabled filtering WebBugs by providing a pattern
226 dnl which kills all 1x1 images
228 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
229 dnl which is selected by the (nonstandard and therefore
230 dnl capital) letter 'U' in the option string.
231 dnl It causes the quantifiers to be ungreedy by default.
232 dnl Appending a ? turns back to greedy (!).
234 dnl - Added a new interceptor ijb-send-banner, which
235 dnl sends back the "Junkbuster" gif. Without imagelist or
236 dnl MSIE detection support, or if tinygif = 1, or the
237 dnl URL isn't recognized as an imageurl, a lame HTML
238 dnl explanation is sent instead.
240 dnl - Added new feature, which permits blocking remote
241 dnl script redirects and firing back a local redirect
243 dnl The feature is conditionally compiled, i.e. it
244 dnl can be disabled with --disable-fast-redirects,
245 dnl plus it must be activated by a "fast-redirects"
246 dnl line in the config file, has its own log level
247 dnl and of course wants to be displayed by show-proxy-args
248 dnl Note: Boy, all the #ifdefs in 1001 locations and
249 dnl all the fumbling with configure.in and acconfig.h
250 dnl were *way* more work than the feature itself :-(
252 dnl - Because a generic redirect template was needed for
253 dnl this, tinygif = 3 now uses the same.
255 dnl - Moved GIFs, and other static HTTP response templates
258 dnl - Some minor fixes
260 dnl - Removed some >400 CRs again (Jon, you really worked
263 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
264 dnl Version 2.9.4 checkin.
265 dnl - Merged popupfile and cookiefile, and added control over PCRS
266 dnl filtering, in new "permissionsfile".
267 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
268 dnl file error you now get a message box (in the Win32 GUI) rather
269 dnl than the program exiting with no explanation.
270 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
272 dnl - Removed tabs from "config"
273 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
274 dnl - Bumped up version number.
276 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
277 dnl Initial import of version 2.9.3 source tree
282 dnl =================================================================
283 dnl AutoConf Initialization
284 dnl =================================================================
286 AC_REVISION($Revision: 1.43 $)
288 AC_CONFIG_HEADER(config.h)
293 AC_ARG_WITH(docbook, dnl
294 --with-docbook=[[yes|no|directory]]
295 Enable docbook documentation creation
296 (default = yes, for gnu and linux),[dnl
297 case "$with_docbook" in
307 AC_ARG_WITH(db2html, dnl
308 --with-db2html=<path/executable>
309 Set the location of the docbook to html converter
310 (default = search),[dnl
314 dnl =================================================================
315 dnl Application version number
316 dnl =================================================================
323 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
324 dnl used for CGI output
326 dnl =================================================================
327 dnl Substitute the version numbers
328 dnl =================================================================
330 AC_SUBST(VERSION_MAJOR)
331 AC_SUBST(VERSION_MINOR)
332 AC_SUBST(VERSION_POINT)
333 AC_SUBST(CODE_STATUS)
336 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
337 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
338 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
339 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
340 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
342 dnl =================================================================
343 dnl Checks for programs needed to build.
344 dnl =================================================================
351 dnl RANLIB is for PCRE:
354 AC_CHECK_PROG(GDB,gdb,yes,no)
356 dnl =================================================================
357 dnl debug, gcc and gdb support
358 dnl =================================================================
361 [ --with-debug Enable debug mode],
363 if test "x$withval" != "xno" ; then
364 if test $ac_cv_prog_cc_g = yes; then
365 if test "$GCC" = yes; then
371 CFLAGS="$CFLAGS -Wshadow -Wconversion"
379 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
380 if test "$GCC" = yes; then
389 dnl =================================================================
390 dnl additional gcc flags
391 dnl =================================================================
394 CFLAGS="-pipe $CFLAGS"
398 dnl =================================================================
400 dnl =================================================================
402 dnl Must do this first.
404 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
405 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
406 dnl the compiler will use completely different sets of library
407 dnl and include files.
409 dnl =================================================================
414 if test "$MINGW32" = "yes"; then
417 if test "$CYGWIN" = "yes"; then
424 if test $dodk = auto; then
426 if test $target_type = unix; then
435 dnl Decide what to do based on target_type
436 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
437 dnl This is because we don't know yet whether pthread is enabled.
439 AC_ARG_ENABLE(mingw32,
440 [ --enable-mingw32 Use mingw32 for a Windows GUI],
441 [if test $enableval = yes; then
445 if test $target_type = mingw; then
447 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
448 PTHREAD_LIB=-lpthreadGC
449 echo "Using mingw32 (Win32 GUI)"
452 if test $target_type = cygwin; then
453 SPECIAL_CFLAGS="-mno-win32"
455 echo "Using Cygnus (Win32 command line)"
458 PTHREAD_LIB=-lpthread
463 dnl Checking which text html browser we have avaliable
464 if test $dodk != no; then
465 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
466 if test "$WDUMP" = false; then
467 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
469 if test $DB2HTML = false; then
470 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
473 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
479 dnl If we use rpm, we need to check where %_topdir is
480 AC_CHECK_PROGS(RPMBIN,rpm,false)
481 if test $RPMBIN != false; then
482 RPM_BASE=`rpm --eval "%{_topdir}"`
483 if test "$RPM_BASE" = ""; then
484 RPM_BASE=/usr/src/redhat
489 dnl Check for jade, so we can build the documentation
490 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
493 dnl Checking for the docbook.dsl stylesheet file
494 dnl It is still not portable (directory slash)
495 if test $dodk = yes; then
496 if test $DKPREFIX = none; then
497 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl; do
498 echo -n "checking for $i/html/docbook.dsl..."
499 if test -f $i/html/docbook.dsl; then
511 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
512 old_CFLAGS_nospecial=$CFLAGS
513 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
515 # Hack to force AutoConf to use the CFLAGS we just set
516 dnl Warning: This may break with a future version of Autoconf
517 dnl Tested with autoconf 2.13
518 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
519 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
520 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
523 dnl =================================================================
525 dnl =================================================================
527 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
529 AC_ARG_ENABLE(pthread,
530 [ --disable-pthread Don't use POSIX threads (pthreads)],
531 [if test $enableval = no; then
536 if test $have_pthread = yes; then
538 AC_DEFINE(FEATURE_PTHREAD)
539 echo Using POSIX threads
540 if test "$GCC" = "yes"; then
541 # Set a GCC specific switch:
542 if test "$target_type" = "unix"; then
543 # This compiler switch makes Linux thread-safe
544 # Don't know about other OS's? Is this switch
547 SPECIAL_CFLAGS="-pthread"
552 echo Using native threads
555 AC_SUBST(PTHREAD_ONLY)
557 dnl =================================================================
558 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
559 dnl gmtime and localtime
560 dnl =================================================================
562 dnl Next line needed to find the gethost*_r functions on Solaris
563 AC_CHECK_LIB(nsl, gethostbyname)
565 AC_CHECK_FUNC(gethostbyaddr_r, [
566 AC_MSG_CHECKING([signature of gethostbyaddr_r])
570 struct hostent *h, *hp;
573 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
575 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
576 AC_MSG_RESULT([8 args])
584 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
586 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
587 AC_MSG_RESULT([7 args])
592 struct hostent_data *d;
596 (void) gethostbyaddr_r(a, l, t, h, d)
598 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
599 AC_MSG_RESULT([5 args])
601 AC_MSG_RESULT(unrecognised)
609 AC_CHECK_FUNC(gethostbyname_r, [
610 AC_MSG_CHECKING([signature of gethostbyname_r])
614 struct hostent *h, *r;
617 (void) gethostbyname_r(n, h, b, bl, &r, &e)
619 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
620 AC_MSG_RESULT([6 args])
628 (void) gethostbyname_r(n, h, b, bl, &e)
630 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
631 AC_MSG_RESULT([5 args])
636 struct hostent_data *d;
639 (void) gethostbyname_r(n, h, d)
641 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
642 AC_MSG_RESULT([3 args])
644 AC_MSG_RESULT(unrecognised)
652 AC_CHECK_FUNC(gmtime_r, [
653 AC_MSG_CHECKING([signature of gmtime_r])
659 (void) gmtime_r(t, tm)
662 AC_DEFINE(HAVE_GMTIME_R)
664 AC_MSG_RESULT(unrecognised)
670 AC_CHECK_FUNC(localtime_r, [
671 AC_MSG_CHECKING([signature of localtime_r])
677 (void) localtime_r(t, tm)
680 AC_DEFINE(HAVE_LOCALTIME_R)
682 AC_MSG_RESULT(unrecognised)
688 dnl =================================================================
690 dnl FIXME: Not tested on Solaris yet...
691 dnl =================================================================
697 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
698 AC_DEFINE(__EXTENSIONS__)
699 if test "$GCC" = "yes"; then
700 # Set a GCC specific switch:
701 # This compiler switch makes Solaris thread-safe
703 SPECIAL_CFLAGS="-pthreads"
705 # What do we do without GCC? Guess this:
706 SPECIAL_CFLAGS="-D_REENTRANT"
713 dnl =================================================================
715 dnl =================================================================
718 *-os2-emx*) SOCKET_LIB=-lsocket
724 dnl =================================================================
726 dnl =================================================================
731 *-amigaos) AMIGAOS_ONLY=
735 AC_SUBST(AMIGAOS_ONLY)
737 dnl =================================================================
738 dnl Check for standard compiler stuff
739 dnl =================================================================
746 AC_CHECK_SIZEOF(int, 4)
747 AC_CHECK_SIZEOF(char *, 4)
748 AC_CHECK_SIZEOF(long, 4)
749 AC_CHECK_SIZEOF(long long, 8)
750 AC_CHECK_SIZEOF(size_t, 4)
752 dnl Checks for header files.
753 dnl AC_HEADER_SYS_WAIT
754 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
756 dnl Checks for library functions.
758 dnl AC_CHECK_FUNC(strstr)
759 dnl bcopy and memmove are for PCRE
760 AC_CHECK_FUNCS(strerror bcopy memmove)
763 dnl =================================================================
764 dnl Checks for libraries.
765 dnl =================================================================
766 dnl Note: Some systems may have the library but not the system header
767 dnl file, so we must check for both.
768 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
769 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
770 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
773 dnl =================================================================
775 dnl =================================================================
779 dnl =================================================================
781 dnl =================================================================
783 AC_ARG_ENABLE(toggle,
784 [ --disable-toggle Don't support temporary disable],
785 [if test $enableval = yes; then
786 AC_DEFINE(FEATURE_TOGGLE)
787 fi],AC_DEFINE(FEATURE_TOGGLE))
790 [ --disable-force Don't allow single-page disable],
791 [if test $enableval = yes; then
792 AC_DEFINE(FEATURE_FORCE_LOAD)
793 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
795 AC_ARG_ENABLE(fast-redirects,
796 [ --disable-fast-redirects Don't support fast redirects],
797 [if test $enableval = yes; then
798 AC_DEFINE(FEATURE_FAST_REDIRECTS)
799 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
801 AC_ARG_ENABLE(killpopup,
802 [ --disable-killpopup Never block popups],
803 [if test $enableval = yes; then
804 AC_DEFINE(FEATURE_KILL_POPUPS)
805 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
808 [ --disable-stats Don't keep statistics],
809 [if test $enableval = yes; then
810 AC_DEFINE(FEATURE_STATISTICS)
811 fi],AC_DEFINE(FEATURE_STATISTICS))
813 AC_ARG_ENABLE(ie-images,
814 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
815 Explorer is for an image or HTML.],
816 [if test $enableval = yes; then
817 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
819 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
821 AC_ARG_ENABLE(image-blocking,
822 [ --disable-image-blocking Don't try to figure out whether a request is
823 for an image or HTML - assume HTML.],
824 [if test $enableval = yes; then
825 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
827 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
829 AC_ARG_ENABLE(acl-files,
830 [ --disable-acl-files Prevents the use of ACL files to control access to
831 the proxy by IP address.],
832 [if test $enableval = yes; then
833 AC_DEFINE(FEATURE_ACL)
835 AC_DEFINE(FEATURE_ACL))
837 AC_ARG_ENABLE(trust-files,
838 [ --disable-trust-files Prevents the use of trust files.],
839 [if test $enableval = yes; then
840 AC_DEFINE(FEATURE_TRUST)
842 AC_DEFINE(FEATURE_TRUST))
844 AC_ARG_ENABLE(jar-files,
845 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
846 [if test $enableval = yes; then
847 AC_DEFINE(FEATURE_COOKIE_JAR)
849 AC_DEFINE(FEATURE_COOKIE_JAR))
851 AC_ARG_ENABLE(editor,
852 [ --disable-editor Prevents the use of the web-based actions file
853 editor and web-based temporary disable setting.],
854 [if test $enableval = yes; then
855 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
857 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
859 AC_ARG_ENABLE(no-gifs,
860 [ --enable-no-gifs Use politically correct PNG format instead of GIF
861 for built-in images. May not work with all browsers.],
862 [if test $enableval = yes; then
863 AC_DEFINE(FEATURE_NO_GIFS)
867 dnl pcre/pcrs is needed for CGI anyway, so
868 dnl the choice is only between static and
871 AC_ARG_ENABLE(regex-matching,
872 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
873 pattern matching (default)
874 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
875 matching (-> bigger binary)
876 --disable-regex-matching Don't use regex matching, compare URL
877 prefix instead (won't shrink birary)],
878 [ regex_matching=$enableval ],
879 [ regex_matching=pcre ])
881 AC_ARG_ENABLE(dynamic-pcre,
882 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
883 libpcre is available],
884 [ if test $enableval = "no"; then have_pcre=no; fi ])
886 AC_ARG_ENABLE(dynamic-pcrs,
887 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
888 libpcrs is available],
889 [ if test $enableval = "no"; then have_pcrs=no; fi ])
892 # Is the regex URL matching based on libpcreposix, but we
893 # don't have that library?
895 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
896 dont_miss_pcreposix=yes
898 dont_miss_pcreposix=no
901 # If we have libpcre and either we also have pcreposix or
902 # we don't need pcreposix, then link pcre dynamically; else
903 # build it and link statically
905 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
911 echo "using built-in static pcre"
913 AC_DEFINE(STATIC_PCRE)
917 # If we have libpcrs and pcre is linked dynamically
918 # then also link pcrs dynamically, else build and link
921 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
926 echo "using built-in static pcrs"
927 AC_DEFINE(STATIC_PCRS)
931 # Which method should be used for URL matching?
932 # pcre, gnu regex or prefix matching?
934 if test $regex_matching = "gnu"; then
935 echo "using gnu regex for URL matching"
939 elif test $regex_matching = "pcre"; then
940 echo "using pcre regex for URL matching"
941 AC_DEFINE(REGEX_PCRE)
944 if test $pcre_dyn = "yes"; then
945 LIBS="$LIBS -lpcreposix"
948 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
953 AC_SUBST(GNU_REGEX_ONLY)
954 AC_SUBST(PCRE_REGEX_ONLY)
955 AC_SUBST(STATIC_PCRE_ONLY)
956 AC_SUBST(STATIC_PCRS_ONLY)
958 dnl =================================================================
959 dnl Final cleanup and output
960 dnl =================================================================
962 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
964 CFLAGS=$old_CFLAGS_nospecial
965 AC_SUBST(SPECIAL_CFLAGS)
967 AC_SUBST(PTHREAD_LIB)
969 AC_OUTPUT(GNUmakefile)