1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.44 2002/03/24 13:25:43 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.44 2002/03/24 13:25:43 swa
32 dnl name change related issues
34 dnl Revision 1.43 2002/03/24 12:56:21 swa
35 dnl name change related issues.
37 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
38 dnl Bumping version number to 2.9.12
40 dnl Revision 1.41 2002/03/19 19:30:04 morcego
41 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
44 dnl - configure will now check for db2html or docbook2html (should work now
45 dnl on SuSe without the docbktls package)
47 dnl Revision 1.40 2002/03/09 14:33:30 oes
48 dnl Fixing the (harmless) AC_CHECK_FILE warnings
50 dnl Revision 1.39 2002/03/08 16:46:13 oes
51 dnl Added --enable-no-gifs
53 dnl Revision 1.38 2002/03/08 14:13:50 morcego
54 dnl Fixing configure, to remove a command not found error.
56 dnl Revision 1.37 2002/03/08 12:58:21 oes
57 dnl Tiny bugfix in AC_ARG_WITH(debug)
59 dnl Revision 1.36 2002/03/06 23:50:36 morcego
60 dnl Will not test for a text browser if we are not using docbook.
62 dnl Revision 1.35 2002/03/06 21:55:52 morcego
63 dnl New configure option: --with-docbook=(yes|no|directory)
64 dnl Preliminary new platform detection code included. Will work with the
65 dnl old one for now. No use just trowing it away
67 dnl Revision 1.34 2002/03/06 20:57:00 morcego
68 dnl Fixing detection of stylesheets on SuSe.
70 dnl Revision 1.33 2002/03/05 17:31:11 morcego
71 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
73 dnl Revision 1.32 2002/03/05 14:07:43 morcego
74 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
75 dnl (based on sugestion by Sarantis Paskalis)
77 dnl Revision 1.31 2002/03/05 13:43:28 morcego
78 dnl Checking for text browser, so redhat-dok can work.
80 dnl Revision 1.30 2002/03/04 17:58:01 oes
81 dnl Deleted _DEBUG and PID_FILE_PATH
83 dnl Revision 1.29 2002/02/28 14:20:53 oes
84 dnl Fixed detection of gethost*_r functions on Solaris
86 dnl Revision 1.28 2002/02/27 15:02:38 oes
87 dnl Incremented version number
89 dnl Revision 1.27 2002/01/10 12:35:18 oes
90 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
91 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
92 dnl Is there a better way?
94 dnl Revision 1.26 2002/01/09 14:29:49 oes
95 dnl - Added AC_CHECK_FUNC tests for the availability of
96 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
97 dnl localtime_r, as well as AC_TRY_COMPILE tests to
98 dnl determine their signatures.
100 dnl - Fixed a bug with the init of CFLAGS that was
101 dnl reported by barsnick
103 dnl Revision 1.25 2002/01/04 15:27:18 oes
104 dnl Changed quoting of CODE_STATUS for use in make
106 dnl Revision 1.24 2001/12/30 14:07:31 steudten
107 dnl - Add signal handling (unix)
108 dnl - Add SIGHUP handler (unix)
109 dnl - Add creation of pidfile (unix)
110 dnl - Add action 'top' in rc file (RH)
111 dnl - Add entry 'SIGNALS' to manpage
112 dnl - Add exit message to logfile (unix)
114 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
115 dnl Change from "alpha" to "beta" in configure.in
117 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
118 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
119 dnl make break in a more obvious way.
121 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
122 dnl Bumping version number to 2.9.10
124 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
125 dnl Support for FEATURE_CGI_EDIT_ACTIONS
127 dnl Revision 1.19 2001/10/07 15:33:14 oes
128 dnl Removed FEATURE_DENY_GZIP
129 dnl Bumped up version number
131 dnl Revision 1.18 2001/09/13 13:10:24 steudten
133 dnl PreWork for Debug Interface.
134 dnl Add new option "--with-debug" to enable debugging (flags aso.)
136 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
137 dnl Mac OSX (Darwin) support added.
139 dnl Revision 1.16 2001/09/12 22:55:45 joergs
140 dnl AmigaOS support added.
142 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
144 dnl OS/2 port: update autoconf'd support for the platform.
146 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
147 dnl Fixing Solaris build (I hope) and tidying up #defines:
148 dnl - All feature #defines are now of the form FEATURE_xxx
149 dnl - Permanently turned off WIN_GUI_EDIT
150 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
152 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
153 dnl Major changes to build system in order to fix these bugs:
154 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
155 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
156 dnl which shared libraries are available
157 dnl - Solaris support (?) (Not tested under Solaris yet)
159 dnl Revision 1.12 2001/07/25 19:16:27 oes
160 dnl Bumping version number to 2.9.8
162 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
163 dnl Bumping version number to 2.9.7
165 dnl Revision 1.10 2001/07/18 17:25:04 oes
168 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
169 dnl Added support for linking with POSIX threads library
171 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
172 dnl Renaming #define STATIC to STATIC_PCRE
173 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
174 dnl POSIX threads support.
176 dnl Revision 1.7 2001/07/13 13:58:05 oes
177 dnl Completely reorganized the selection scheme for
178 dnl pcre, pcreposix, pcrs and gnu_regex:
180 dnl The presence of shared pcre, pcreposix or pcrs
181 dnl libraried is now autodetected. Additionally, the
182 dnl user can enforce using the built-in static variants
183 dnl by specifying --disable-dynamic-(pcre|pcrs).
184 dnl Care is taken to avoid that pcre is dyn, while pcreposix
185 dnl is static, if both are used and that pcrs is static if
188 dnl The choice between pcre, gnu or no regex for actionsfile
189 dnl URL matching is now via
190 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
191 dnl default being pcre.
193 dnl Revision 1.6 2001/06/29 21:56:40 oes
196 dnl Revision 1.5 2001/06/29 13:26:27 oes
197 dnl Introduced #define CODE_STATUS
199 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
200 dnl Unified blocklist/imagelist/permissionslist.
201 dnl File format is still under discussion, but the internal changes
202 dnl are (mostly) done.
204 dnl Also modified interceptor behaviour:
205 dnl - We now intercept all URLs beginning with one of the following
206 dnl prefixes (and *only* these prefixes):
208 dnl * http://ijbswa.sf.net/config/
209 dnl * http://ijbswa.sourceforge.net/config/
210 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
211 dnl - Internal changes so that intercepted and fast redirect pages
212 dnl are not replaced with an image.
213 dnl - Interceptors now have the option to send a binary page direct
214 dnl to the client. (i.e. ijb-send-banner uses this)
215 dnl - Implemented show-url-info interceptor. (Which is why I needed
216 dnl the above interceptors changes - a typical URL is
217 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
218 dnl The previous mechanism would not have intercepted that, and
219 dnl if it had been intercepted then it then it would have replaced
220 dnl it with an image.)
222 dnl Revision 1.3 2001/05/22 18:46:04 oes
224 dnl - Enabled filtering banners by size rather than URL
225 dnl by adding patterns that replace all standard banner
226 dnl sizes with the "Junkbuster" gif to the re_filterfile
228 dnl - Enabled filtering WebBugs by providing a pattern
229 dnl which kills all 1x1 images
231 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
232 dnl which is selected by the (nonstandard and therefore
233 dnl capital) letter 'U' in the option string.
234 dnl It causes the quantifiers to be ungreedy by default.
235 dnl Appending a ? turns back to greedy (!).
237 dnl - Added a new interceptor ijb-send-banner, which
238 dnl sends back the "Junkbuster" gif. Without imagelist or
239 dnl MSIE detection support, or if tinygif = 1, or the
240 dnl URL isn't recognized as an imageurl, a lame HTML
241 dnl explanation is sent instead.
243 dnl - Added new feature, which permits blocking remote
244 dnl script redirects and firing back a local redirect
246 dnl The feature is conditionally compiled, i.e. it
247 dnl can be disabled with --disable-fast-redirects,
248 dnl plus it must be activated by a "fast-redirects"
249 dnl line in the config file, has its own log level
250 dnl and of course wants to be displayed by show-proxy-args
251 dnl Note: Boy, all the #ifdefs in 1001 locations and
252 dnl all the fumbling with configure.in and acconfig.h
253 dnl were *way* more work than the feature itself :-(
255 dnl - Because a generic redirect template was needed for
256 dnl this, tinygif = 3 now uses the same.
258 dnl - Moved GIFs, and other static HTTP response templates
261 dnl - Some minor fixes
263 dnl - Removed some >400 CRs again (Jon, you really worked
266 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
267 dnl Version 2.9.4 checkin.
268 dnl - Merged popupfile and cookiefile, and added control over PCRS
269 dnl filtering, in new "permissionsfile".
270 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
271 dnl file error you now get a message box (in the Win32 GUI) rather
272 dnl than the program exiting with no explanation.
273 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
275 dnl - Removed tabs from "config"
276 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
277 dnl - Bumped up version number.
279 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
280 dnl Initial import of version 2.9.3 source tree
285 dnl =================================================================
286 dnl AutoConf Initialization
287 dnl =================================================================
289 AC_REVISION($Revision: 1.44 $)
291 AC_CONFIG_HEADER(config.h)
296 AC_ARG_WITH(docbook, dnl
297 --with-docbook=[[yes|no|directory]]
298 Enable docbook documentation creation
299 (default = yes, for gnu and linux),[dnl
300 case "$with_docbook" in
310 AC_ARG_WITH(db2html, dnl
311 --with-db2html=<path/executable>
312 Set the location of the docbook to html converter
313 (default = search),[dnl
317 dnl =================================================================
318 dnl Application version number
319 dnl =================================================================
324 VERSION_RPM_PACKAGE=1
327 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
328 dnl used for CGI output
330 dnl =================================================================
331 dnl Substitute the version numbers
332 dnl =================================================================
334 AC_SUBST(VERSION_MAJOR)
335 AC_SUBST(VERSION_MINOR)
336 AC_SUBST(VERSION_POINT)
337 AC_SUBST(VERSION_RPM_PACKAGE)
338 AC_SUBST(CODE_STATUS)
341 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
342 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
343 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
344 AC_DEFINE_UNQUOTED(VERSION_RPM_PACKAGE,${VERSION_RPM_PACKAGE})
345 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
346 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
348 dnl =================================================================
349 dnl Checks for programs needed to build.
350 dnl =================================================================
357 dnl RANLIB is for PCRE:
360 AC_CHECK_PROG(GDB,gdb,yes,no)
362 dnl =================================================================
363 dnl debug, gcc and gdb support
364 dnl =================================================================
367 [ --with-debug Enable debug mode],
369 if test "x$withval" != "xno" ; then
370 if test $ac_cv_prog_cc_g = yes; then
371 if test "$GCC" = yes; then
377 CFLAGS="$CFLAGS -Wshadow -Wconversion"
385 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
386 if test "$GCC" = yes; then
395 dnl =================================================================
396 dnl additional gcc flags
397 dnl =================================================================
400 CFLAGS="-pipe $CFLAGS"
404 dnl =================================================================
406 dnl =================================================================
408 dnl Must do this first.
410 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
411 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
412 dnl the compiler will use completely different sets of library
413 dnl and include files.
415 dnl =================================================================
420 if test "$MINGW32" = "yes"; then
423 if test "$CYGWIN" = "yes"; then
430 if test $dodk = auto; then
432 if test $target_type = unix; then
441 dnl Decide what to do based on target_type
442 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
443 dnl This is because we don't know yet whether pthread is enabled.
445 AC_ARG_ENABLE(mingw32,
446 [ --enable-mingw32 Use mingw32 for a Windows GUI],
447 [if test $enableval = yes; then
451 if test $target_type = mingw; then
453 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
454 PTHREAD_LIB=-lpthreadGC
455 echo "Using mingw32 (Win32 GUI)"
458 if test $target_type = cygwin; then
459 SPECIAL_CFLAGS="-mno-win32"
461 echo "Using Cygnus (Win32 command line)"
464 PTHREAD_LIB=-lpthread
469 dnl Checking which text html browser we have avaliable
470 if test $dodk != no; then
471 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
472 if test "$WDUMP" = false; then
473 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
475 if test $DB2HTML = false; then
476 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
479 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
485 dnl If we use rpm, we need to check where %_topdir is
486 AC_CHECK_PROGS(RPMBIN,rpm,false)
487 if test $RPMBIN != false; then
488 RPM_BASE=`rpm --eval "%{_topdir}"`
489 if test "$RPM_BASE" = ""; then
490 RPM_BASE=/usr/src/redhat
495 dnl Check for jade, so we can build the documentation
496 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
499 dnl Checking for the docbook.dsl stylesheet file
500 dnl It is still not portable (directory slash)
501 if test $dodk = yes; then
502 if test $DKPREFIX = none; then
503 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl; do
504 echo -n "checking for $i/html/docbook.dsl..."
505 if test -f $i/html/docbook.dsl; then
517 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
518 old_CFLAGS_nospecial=$CFLAGS
519 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
521 # Hack to force AutoConf to use the CFLAGS we just set
522 dnl Warning: This may break with a future version of Autoconf
523 dnl Tested with autoconf 2.13
524 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
525 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
526 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
529 dnl =================================================================
531 dnl =================================================================
533 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
535 AC_ARG_ENABLE(pthread,
536 [ --disable-pthread Don't use POSIX threads (pthreads)],
537 [if test $enableval = no; then
542 if test $have_pthread = yes; then
544 AC_DEFINE(FEATURE_PTHREAD)
545 echo Using POSIX threads
546 if test "$GCC" = "yes"; then
547 # Set a GCC specific switch:
548 if test "$target_type" = "unix"; then
549 # This compiler switch makes Linux thread-safe
550 # Don't know about other OS's? Is this switch
553 SPECIAL_CFLAGS="-pthread"
558 echo Using native threads
561 AC_SUBST(PTHREAD_ONLY)
563 dnl =================================================================
564 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
565 dnl gmtime and localtime
566 dnl =================================================================
568 dnl Next line needed to find the gethost*_r functions on Solaris
569 AC_CHECK_LIB(nsl, gethostbyname)
571 AC_CHECK_FUNC(gethostbyaddr_r, [
572 AC_MSG_CHECKING([signature of gethostbyaddr_r])
576 struct hostent *h, *hp;
579 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
581 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
582 AC_MSG_RESULT([8 args])
590 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
592 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
593 AC_MSG_RESULT([7 args])
598 struct hostent_data *d;
602 (void) gethostbyaddr_r(a, l, t, h, d)
604 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
605 AC_MSG_RESULT([5 args])
607 AC_MSG_RESULT(unrecognised)
615 AC_CHECK_FUNC(gethostbyname_r, [
616 AC_MSG_CHECKING([signature of gethostbyname_r])
620 struct hostent *h, *r;
623 (void) gethostbyname_r(n, h, b, bl, &r, &e)
625 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
626 AC_MSG_RESULT([6 args])
634 (void) gethostbyname_r(n, h, b, bl, &e)
636 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
637 AC_MSG_RESULT([5 args])
642 struct hostent_data *d;
645 (void) gethostbyname_r(n, h, d)
647 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
648 AC_MSG_RESULT([3 args])
650 AC_MSG_RESULT(unrecognised)
658 AC_CHECK_FUNC(gmtime_r, [
659 AC_MSG_CHECKING([signature of gmtime_r])
665 (void) gmtime_r(t, tm)
668 AC_DEFINE(HAVE_GMTIME_R)
670 AC_MSG_RESULT(unrecognised)
676 AC_CHECK_FUNC(localtime_r, [
677 AC_MSG_CHECKING([signature of localtime_r])
683 (void) localtime_r(t, tm)
686 AC_DEFINE(HAVE_LOCALTIME_R)
688 AC_MSG_RESULT(unrecognised)
694 dnl =================================================================
696 dnl FIXME: Not tested on Solaris yet...
697 dnl =================================================================
703 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
704 AC_DEFINE(__EXTENSIONS__)
705 if test "$GCC" = "yes"; then
706 # Set a GCC specific switch:
707 # This compiler switch makes Solaris thread-safe
709 SPECIAL_CFLAGS="-pthreads"
711 # What do we do without GCC? Guess this:
712 SPECIAL_CFLAGS="-D_REENTRANT"
719 dnl =================================================================
721 dnl =================================================================
724 *-os2-emx*) SOCKET_LIB=-lsocket
730 dnl =================================================================
732 dnl =================================================================
737 *-amigaos) AMIGAOS_ONLY=
741 AC_SUBST(AMIGAOS_ONLY)
743 dnl =================================================================
744 dnl Check for standard compiler stuff
745 dnl =================================================================
752 AC_CHECK_SIZEOF(int, 4)
753 AC_CHECK_SIZEOF(char *, 4)
754 AC_CHECK_SIZEOF(long, 4)
755 AC_CHECK_SIZEOF(long long, 8)
756 AC_CHECK_SIZEOF(size_t, 4)
758 dnl Checks for header files.
759 dnl AC_HEADER_SYS_WAIT
760 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
762 dnl Checks for library functions.
764 dnl AC_CHECK_FUNC(strstr)
765 dnl bcopy and memmove are for PCRE
766 AC_CHECK_FUNCS(strerror bcopy memmove)
769 dnl =================================================================
770 dnl Checks for libraries.
771 dnl =================================================================
772 dnl Note: Some systems may have the library but not the system header
773 dnl file, so we must check for both.
774 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
775 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
776 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
779 dnl =================================================================
781 dnl =================================================================
785 dnl =================================================================
787 dnl =================================================================
789 AC_ARG_ENABLE(toggle,
790 [ --disable-toggle Don't support temporary disable],
791 [if test $enableval = yes; then
792 AC_DEFINE(FEATURE_TOGGLE)
793 fi],AC_DEFINE(FEATURE_TOGGLE))
796 [ --disable-force Don't allow single-page disable],
797 [if test $enableval = yes; then
798 AC_DEFINE(FEATURE_FORCE_LOAD)
799 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
801 AC_ARG_ENABLE(fast-redirects,
802 [ --disable-fast-redirects Don't support fast redirects],
803 [if test $enableval = yes; then
804 AC_DEFINE(FEATURE_FAST_REDIRECTS)
805 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
807 AC_ARG_ENABLE(killpopup,
808 [ --disable-killpopup Never block popups],
809 [if test $enableval = yes; then
810 AC_DEFINE(FEATURE_KILL_POPUPS)
811 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
814 [ --disable-stats Don't keep statistics],
815 [if test $enableval = yes; then
816 AC_DEFINE(FEATURE_STATISTICS)
817 fi],AC_DEFINE(FEATURE_STATISTICS))
819 AC_ARG_ENABLE(ie-images,
820 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
821 Explorer is for an image or HTML.],
822 [if test $enableval = yes; then
823 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
825 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
827 AC_ARG_ENABLE(image-blocking,
828 [ --disable-image-blocking Don't try to figure out whether a request is
829 for an image or HTML - assume HTML.],
830 [if test $enableval = yes; then
831 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
833 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
835 AC_ARG_ENABLE(acl-files,
836 [ --disable-acl-files Prevents the use of ACL files to control access to
837 the proxy by IP address.],
838 [if test $enableval = yes; then
839 AC_DEFINE(FEATURE_ACL)
841 AC_DEFINE(FEATURE_ACL))
843 AC_ARG_ENABLE(trust-files,
844 [ --disable-trust-files Prevents the use of trust files.],
845 [if test $enableval = yes; then
846 AC_DEFINE(FEATURE_TRUST)
848 AC_DEFINE(FEATURE_TRUST))
850 AC_ARG_ENABLE(jar-files,
851 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
852 [if test $enableval = yes; then
853 AC_DEFINE(FEATURE_COOKIE_JAR)
855 AC_DEFINE(FEATURE_COOKIE_JAR))
857 AC_ARG_ENABLE(editor,
858 [ --disable-editor Prevents the use of the web-based actions file
859 editor and web-based temporary disable setting.],
860 [if test $enableval = yes; then
861 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
863 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
865 AC_ARG_ENABLE(no-gifs,
866 [ --enable-no-gifs Use politically correct PNG format instead of GIF
867 for built-in images. May not work with all browsers.],
868 [if test $enableval = yes; then
869 AC_DEFINE(FEATURE_NO_GIFS)
873 dnl pcre/pcrs is needed for CGI anyway, so
874 dnl the choice is only between static and
877 AC_ARG_ENABLE(regex-matching,
878 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
879 pattern matching (default)
880 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
881 matching (-> bigger binary)
882 --disable-regex-matching Don't use regex matching, compare URL
883 prefix instead (won't shrink birary)],
884 [ regex_matching=$enableval ],
885 [ regex_matching=pcre ])
887 AC_ARG_ENABLE(dynamic-pcre,
888 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
889 libpcre is available],
890 [ if test $enableval = "no"; then have_pcre=no; fi ])
892 AC_ARG_ENABLE(dynamic-pcrs,
893 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
894 libpcrs is available],
895 [ if test $enableval = "no"; then have_pcrs=no; fi ])
898 # Is the regex URL matching based on libpcreposix, but we
899 # don't have that library?
901 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
902 dont_miss_pcreposix=yes
904 dont_miss_pcreposix=no
907 # If we have libpcre and either we also have pcreposix or
908 # we don't need pcreposix, then link pcre dynamically; else
909 # build it and link statically
911 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
917 echo "using built-in static pcre"
919 AC_DEFINE(STATIC_PCRE)
923 # If we have libpcrs and pcre is linked dynamically
924 # then also link pcrs dynamically, else build and link
927 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
932 echo "using built-in static pcrs"
933 AC_DEFINE(STATIC_PCRS)
937 # Which method should be used for URL matching?
938 # pcre, gnu regex or prefix matching?
940 if test $regex_matching = "gnu"; then
941 echo "using gnu regex for URL matching"
945 elif test $regex_matching = "pcre"; then
946 echo "using pcre regex for URL matching"
947 AC_DEFINE(REGEX_PCRE)
950 if test $pcre_dyn = "yes"; then
951 LIBS="$LIBS -lpcreposix"
954 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
959 AC_SUBST(GNU_REGEX_ONLY)
960 AC_SUBST(PCRE_REGEX_ONLY)
961 AC_SUBST(STATIC_PCRE_ONLY)
962 AC_SUBST(STATIC_PCRS_ONLY)
964 dnl =================================================================
965 dnl Final cleanup and output
966 dnl =================================================================
968 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
970 CFLAGS=$old_CFLAGS_nospecial
971 AC_SUBST(SPECIAL_CFLAGS)
973 AC_SUBST(PTHREAD_LIB)
975 AC_OUTPUT(GNUmakefile)