1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.49 2002/03/27 02:19:52 david__schmidt Exp $
5 dnl Written by and Copyright (C) 2001, 2002 the SourceForge
6 dnl Privoxy team. http://www.privoxy.org/
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.49 2002/03/27 02:19:52 david__schmidt
32 dnl More Mac OSX support:
33 dnl - Get rid of extraneous, noisy -pthread warnings
34 dnl - Define unix so we get oes' unix-tagged changes
36 dnl Revision 1.48 2002/03/26 22:29:54 swa
37 dnl we have a new homepage!
39 dnl Revision 1.47 2002/03/26 16:41:00 hal9
40 dnl Upped RPM Release to 3 (need to build new RH packages)
42 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
43 dnl Making Docbook work under Windows
45 dnl Revision 1.45 2002/03/24 14:19:55 swa
46 dnl set rpm package release in configure.in. nowhere else.
48 dnl Revision 1.44 2002/03/24 13:25:43 swa
49 dnl name change related issues
51 dnl Revision 1.43 2002/03/24 12:56:21 swa
52 dnl name change related issues.
54 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
55 dnl Bumping version number to 2.9.12
57 dnl Revision 1.41 2002/03/19 19:30:04 morcego
58 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
61 dnl - configure will now check for db2html or docbook2html (should work now
62 dnl on SuSe without the docbktls package)
64 dnl Revision 1.40 2002/03/09 14:33:30 oes
65 dnl Fixing the (harmless) AC_CHECK_FILE warnings
67 dnl Revision 1.39 2002/03/08 16:46:13 oes
68 dnl Added --enable-no-gifs
70 dnl Revision 1.38 2002/03/08 14:13:50 morcego
71 dnl Fixing configure, to remove a command not found error.
73 dnl Revision 1.37 2002/03/08 12:58:21 oes
74 dnl Tiny bugfix in AC_ARG_WITH(debug)
76 dnl Revision 1.36 2002/03/06 23:50:36 morcego
77 dnl Will not test for a text browser if we are not using docbook.
79 dnl Revision 1.35 2002/03/06 21:55:52 morcego
80 dnl New configure option: --with-docbook=(yes|no|directory)
81 dnl Preliminary new platform detection code included. Will work with the
82 dnl old one for now. No use just trowing it away
84 dnl Revision 1.34 2002/03/06 20:57:00 morcego
85 dnl Fixing detection of stylesheets on SuSe.
87 dnl Revision 1.33 2002/03/05 17:31:11 morcego
88 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
90 dnl Revision 1.32 2002/03/05 14:07:43 morcego
91 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
92 dnl (based on sugestion by Sarantis Paskalis)
94 dnl Revision 1.31 2002/03/05 13:43:28 morcego
95 dnl Checking for text browser, so redhat-dok can work.
97 dnl Revision 1.30 2002/03/04 17:58:01 oes
98 dnl Deleted _DEBUG and PID_FILE_PATH
100 dnl Revision 1.29 2002/02/28 14:20:53 oes
101 dnl Fixed detection of gethost*_r functions on Solaris
103 dnl Revision 1.28 2002/02/27 15:02:38 oes
104 dnl Incremented version number
106 dnl Revision 1.27 2002/01/10 12:35:18 oes
107 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
108 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
109 dnl Is there a better way?
111 dnl Revision 1.26 2002/01/09 14:29:49 oes
112 dnl - Added AC_CHECK_FUNC tests for the availability of
113 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
114 dnl localtime_r, as well as AC_TRY_COMPILE tests to
115 dnl determine their signatures.
117 dnl - Fixed a bug with the init of CFLAGS that was
118 dnl reported by barsnick
120 dnl Revision 1.25 2002/01/04 15:27:18 oes
121 dnl Changed quoting of CODE_STATUS for use in make
123 dnl Revision 1.24 2001/12/30 14:07:31 steudten
124 dnl - Add signal handling (unix)
125 dnl - Add SIGHUP handler (unix)
126 dnl - Add creation of pidfile (unix)
127 dnl - Add action 'top' in rc file (RH)
128 dnl - Add entry 'SIGNALS' to manpage
129 dnl - Add exit message to logfile (unix)
131 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
132 dnl Change from "alpha" to "beta" in configure.in
134 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
135 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
136 dnl make break in a more obvious way.
138 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
139 dnl Bumping version number to 2.9.10
141 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
142 dnl Support for FEATURE_CGI_EDIT_ACTIONS
144 dnl Revision 1.19 2001/10/07 15:33:14 oes
145 dnl Removed FEATURE_DENY_GZIP
146 dnl Bumped up version number
148 dnl Revision 1.18 2001/09/13 13:10:24 steudten
150 dnl PreWork for Debug Interface.
151 dnl Add new option "--with-debug" to enable debugging (flags aso.)
153 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
154 dnl Mac OSX (Darwin) support added.
156 dnl Revision 1.16 2001/09/12 22:55:45 joergs
157 dnl AmigaOS support added.
159 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
161 dnl OS/2 port: update autoconf'd support for the platform.
163 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
164 dnl Fixing Solaris build (I hope) and tidying up #defines:
165 dnl - All feature #defines are now of the form FEATURE_xxx
166 dnl - Permanently turned off WIN_GUI_EDIT
167 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
169 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
170 dnl Major changes to build system in order to fix these bugs:
171 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
172 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
173 dnl which shared libraries are available
174 dnl - Solaris support (?) (Not tested under Solaris yet)
176 dnl Revision 1.12 2001/07/25 19:16:27 oes
177 dnl Bumping version number to 2.9.8
179 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
180 dnl Bumping version number to 2.9.7
182 dnl Revision 1.10 2001/07/18 17:25:04 oes
185 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
186 dnl Added support for linking with POSIX threads library
188 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
189 dnl Renaming #define STATIC to STATIC_PCRE
190 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
191 dnl POSIX threads support.
193 dnl Revision 1.7 2001/07/13 13:58:05 oes
194 dnl Completely reorganized the selection scheme for
195 dnl pcre, pcreposix, pcrs and gnu_regex:
197 dnl The presence of shared pcre, pcreposix or pcrs
198 dnl libraried is now autodetected. Additionally, the
199 dnl user can enforce using the built-in static variants
200 dnl by specifying --disable-dynamic-(pcre|pcrs).
201 dnl Care is taken to avoid that pcre is dyn, while pcreposix
202 dnl is static, if both are used and that pcrs is static if
205 dnl The choice between pcre, gnu or no regex for actionsfile
206 dnl URL matching is now via
207 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
208 dnl default being pcre.
210 dnl Revision 1.6 2001/06/29 21:56:40 oes
213 dnl Revision 1.5 2001/06/29 13:26:27 oes
214 dnl Introduced #define CODE_STATUS
216 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
217 dnl Unified blocklist/imagelist/permissionslist.
218 dnl File format is still under discussion, but the internal changes
219 dnl are (mostly) done.
221 dnl Also modified interceptor behaviour:
222 dnl - We now intercept all URLs beginning with one of the following
223 dnl prefixes (and *only* these prefixes):
225 dnl * http://ijbswa.sf.net/config/
226 dnl * http://ijbswa.sourceforge.net/config/
227 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
228 dnl - Internal changes so that intercepted and fast redirect pages
229 dnl are not replaced with an image.
230 dnl - Interceptors now have the option to send a binary page direct
231 dnl to the client. (i.e. ijb-send-banner uses this)
232 dnl - Implemented show-url-info interceptor. (Which is why I needed
233 dnl the above interceptors changes - a typical URL is
234 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
235 dnl The previous mechanism would not have intercepted that, and
236 dnl if it had been intercepted then it then it would have replaced
237 dnl it with an image.)
239 dnl Revision 1.3 2001/05/22 18:46:04 oes
241 dnl - Enabled filtering banners by size rather than URL
242 dnl by adding patterns that replace all standard banner
243 dnl sizes with the "Junkbuster" gif to the re_filterfile
245 dnl - Enabled filtering WebBugs by providing a pattern
246 dnl which kills all 1x1 images
248 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
249 dnl which is selected by the (nonstandard and therefore
250 dnl capital) letter 'U' in the option string.
251 dnl It causes the quantifiers to be ungreedy by default.
252 dnl Appending a ? turns back to greedy (!).
254 dnl - Added a new interceptor ijb-send-banner, which
255 dnl sends back the "Junkbuster" gif. Without imagelist or
256 dnl MSIE detection support, or if tinygif = 1, or the
257 dnl URL isn't recognized as an imageurl, a lame HTML
258 dnl explanation is sent instead.
260 dnl - Added new feature, which permits blocking remote
261 dnl script redirects and firing back a local redirect
263 dnl The feature is conditionally compiled, i.e. it
264 dnl can be disabled with --disable-fast-redirects,
265 dnl plus it must be activated by a "fast-redirects"
266 dnl line in the config file, has its own log level
267 dnl and of course wants to be displayed by show-proxy-args
268 dnl Note: Boy, all the #ifdefs in 1001 locations and
269 dnl all the fumbling with configure.in and acconfig.h
270 dnl were *way* more work than the feature itself :-(
272 dnl - Because a generic redirect template was needed for
273 dnl this, tinygif = 3 now uses the same.
275 dnl - Moved GIFs, and other static HTTP response templates
278 dnl - Some minor fixes
280 dnl - Removed some >400 CRs again (Jon, you really worked
283 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
284 dnl Version 2.9.4 checkin.
285 dnl - Merged popupfile and cookiefile, and added control over PCRS
286 dnl filtering, in new "permissionsfile".
287 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
288 dnl file error you now get a message box (in the Win32 GUI) rather
289 dnl than the program exiting with no explanation.
290 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
292 dnl - Removed tabs from "config"
293 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
294 dnl - Bumped up version number.
296 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
297 dnl Initial import of version 2.9.3 source tree
302 dnl =================================================================
303 dnl AutoConf Initialization
304 dnl =================================================================
306 AC_REVISION($Revision: 1.49 $)
308 AC_CONFIG_HEADER(config.h)
313 AC_ARG_WITH(docbook, dnl
314 --with-docbook=[[yes|no|directory]]
315 Enable docbook documentation creation
316 (default = yes, for gnu and linux),[dnl
317 case "$with_docbook" in
327 AC_ARG_WITH(db2html, dnl
328 --with-db2html=<path/executable>
329 Set the location of the docbook to html converter
330 (default = search),[dnl
334 dnl =================================================================
335 dnl Application version number
336 dnl =================================================================
341 VERSION_RPM_PACKAGE=3
344 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
345 dnl used for CGI output
347 dnl =================================================================
348 dnl Substitute the version numbers
349 dnl =================================================================
351 AC_SUBST(VERSION_MAJOR)
352 AC_SUBST(VERSION_MINOR)
353 AC_SUBST(VERSION_POINT)
354 AC_SUBST(VERSION_RPM_PACKAGE)
355 AC_SUBST(CODE_STATUS)
358 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
359 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
360 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
361 AC_DEFINE_UNQUOTED(VERSION_RPM_PACKAGE,${VERSION_RPM_PACKAGE})
362 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
363 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
365 dnl =================================================================
366 dnl Checks for programs needed to build.
367 dnl =================================================================
374 dnl RANLIB is for PCRE:
377 AC_CHECK_PROG(GDB,gdb,yes,no)
379 dnl =================================================================
380 dnl debug, gcc and gdb support
381 dnl =================================================================
384 [ --with-debug Enable debug mode],
386 if test "x$withval" != "xno" ; then
387 if test $ac_cv_prog_cc_g = yes; then
388 if test "$GCC" = yes; then
394 CFLAGS="$CFLAGS -Wshadow -Wconversion"
402 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
403 if test "$GCC" = yes; then
412 dnl =================================================================
413 dnl additional gcc flags
414 dnl =================================================================
417 CFLAGS="-pipe $CFLAGS"
421 dnl =================================================================
423 dnl =================================================================
425 dnl Must do this first.
427 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
428 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
429 dnl the compiler will use completely different sets of library
430 dnl and include files.
432 dnl =================================================================
437 if test "$MINGW32" = "yes"; then
440 if test "$CYGWIN" = "yes"; then
447 if test $dodk = auto; then
449 if test $target_type = unix; then
458 dnl Decide what to do based on target_type
459 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
460 dnl This is because we don't know yet whether pthread is enabled.
462 AC_ARG_ENABLE(mingw32,
463 [ --enable-mingw32 Use mingw32 for a Windows GUI],
464 [if test $enableval = yes; then
468 if test $target_type = mingw; then
470 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
471 PTHREAD_LIB=-lpthreadGC
472 echo "Using mingw32 (Win32 GUI)"
475 if test $target_type = cygwin; then
476 SPECIAL_CFLAGS="-mno-win32"
478 echo "Using Cygnus (Win32 command line)"
481 PTHREAD_LIB=-lpthread
486 dnl Checking which text html browser we have avaliable
487 if test $dodk != no; then
488 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
489 if test "$WDUMP" = false; then
490 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
492 if test $DB2HTML = false; then
493 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
496 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
502 dnl If we use rpm, we need to check where %_topdir is
503 AC_CHECK_PROGS(RPMBIN,rpm,false)
504 if test $RPMBIN != false; then
505 RPM_BASE=`rpm --eval "%{_topdir}"`
506 if test "$RPM_BASE" = ""; then
507 RPM_BASE=/usr/src/redhat
512 dnl Check for jade, so we can build the documentation
513 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
516 dnl Check for man2html for docs.
517 AC_CHECK_PROGS(MAN2HTML,man2html,false)
520 dnl Checking for the docbook.dsl stylesheet file
521 dnl It is still not portable (directory slash)
522 if test $dodk = yes; then
523 if test $DKPREFIX = none; then
524 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
525 echo -n "checking for $i/html/docbook.dsl..."
526 if test -f $i/html/docbook.dsl; then
538 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
539 old_CFLAGS_nospecial=$CFLAGS
540 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
542 # Hack to force AutoConf to use the CFLAGS we just set
543 dnl Warning: This may break with a future version of Autoconf
544 dnl Tested with autoconf 2.13
545 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
546 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
547 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
550 dnl =================================================================
552 dnl =================================================================
554 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
556 AC_ARG_ENABLE(pthread,
557 [ --disable-pthread Don't use POSIX threads (pthreads)],
558 [if test $enableval = no; then
563 if test $have_pthread = yes; then
565 AC_DEFINE(FEATURE_PTHREAD)
566 echo Using POSIX threads
567 if test "$GCC" = "yes"; then
568 # Set a GCC specific switch:
569 if test "$target_type" = "unix"; then
570 # This compiler switch makes Linux thread-safe
571 # Don't know about other OS's? Is this switch
574 SPECIAL_CFLAGS="-pthread"
579 echo Using native threads
582 AC_SUBST(PTHREAD_ONLY)
584 dnl =================================================================
585 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
586 dnl gmtime and localtime
587 dnl =================================================================
589 dnl Next line needed to find the gethost*_r functions on Solaris
590 AC_CHECK_LIB(nsl, gethostbyname)
592 AC_CHECK_FUNC(gethostbyaddr_r, [
593 AC_MSG_CHECKING([signature of gethostbyaddr_r])
597 struct hostent *h, *hp;
600 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
602 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
603 AC_MSG_RESULT([8 args])
611 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
613 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
614 AC_MSG_RESULT([7 args])
619 struct hostent_data *d;
623 (void) gethostbyaddr_r(a, l, t, h, d)
625 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
626 AC_MSG_RESULT([5 args])
628 AC_MSG_RESULT(unrecognised)
636 AC_CHECK_FUNC(gethostbyname_r, [
637 AC_MSG_CHECKING([signature of gethostbyname_r])
641 struct hostent *h, *r;
644 (void) gethostbyname_r(n, h, b, bl, &r, &e)
646 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
647 AC_MSG_RESULT([6 args])
655 (void) gethostbyname_r(n, h, b, bl, &e)
657 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
658 AC_MSG_RESULT([5 args])
663 struct hostent_data *d;
666 (void) gethostbyname_r(n, h, d)
668 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
669 AC_MSG_RESULT([3 args])
671 AC_MSG_RESULT(unrecognised)
679 AC_CHECK_FUNC(gmtime_r, [
680 AC_MSG_CHECKING([signature of gmtime_r])
686 (void) gmtime_r(t, tm)
689 AC_DEFINE(HAVE_GMTIME_R)
691 AC_MSG_RESULT(unrecognised)
697 AC_CHECK_FUNC(localtime_r, [
698 AC_MSG_CHECKING([signature of localtime_r])
704 (void) localtime_r(t, tm)
707 AC_DEFINE(HAVE_LOCALTIME_R)
709 AC_MSG_RESULT(unrecognised)
715 dnl =================================================================
717 dnl FIXME: Not tested on Solaris yet...
718 dnl =================================================================
724 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
725 AC_DEFINE(__EXTENSIONS__)
726 if test "$GCC" = "yes"; then
727 # Set a GCC specific switch:
728 # This compiler switch makes Solaris thread-safe
730 SPECIAL_CFLAGS="-pthreads"
732 # What do we do without GCC? Guess this:
733 SPECIAL_CFLAGS="-D_REENTRANT"
740 dnl =================================================================
742 dnl =================================================================
745 *-os2-emx*) SOCKET_LIB=-lsocket
751 dnl =================================================================
753 dnl =================================================================
756 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
760 dnl =================================================================
762 dnl =================================================================
767 *-amigaos) AMIGAOS_ONLY=
771 AC_SUBST(AMIGAOS_ONLY)
773 dnl =================================================================
774 dnl Check for standard compiler stuff
775 dnl =================================================================
782 AC_CHECK_SIZEOF(int, 4)
783 AC_CHECK_SIZEOF(char *, 4)
784 AC_CHECK_SIZEOF(long, 4)
785 AC_CHECK_SIZEOF(long long, 8)
786 AC_CHECK_SIZEOF(size_t, 4)
788 dnl Checks for header files.
789 dnl AC_HEADER_SYS_WAIT
790 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
792 dnl Checks for library functions.
794 dnl AC_CHECK_FUNC(strstr)
795 dnl bcopy and memmove are for PCRE
796 AC_CHECK_FUNCS(strerror bcopy memmove)
799 dnl =================================================================
800 dnl Checks for libraries.
801 dnl =================================================================
802 dnl Note: Some systems may have the library but not the system header
803 dnl file, so we must check for both.
804 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
805 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
806 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
809 dnl =================================================================
811 dnl =================================================================
815 dnl =================================================================
817 dnl =================================================================
819 AC_ARG_ENABLE(toggle,
820 [ --disable-toggle Don't support temporary disable],
821 [if test $enableval = yes; then
822 AC_DEFINE(FEATURE_TOGGLE)
823 fi],AC_DEFINE(FEATURE_TOGGLE))
826 [ --disable-force Don't allow single-page disable],
827 [if test $enableval = yes; then
828 AC_DEFINE(FEATURE_FORCE_LOAD)
829 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
831 AC_ARG_ENABLE(fast-redirects,
832 [ --disable-fast-redirects Don't support fast redirects],
833 [if test $enableval = yes; then
834 AC_DEFINE(FEATURE_FAST_REDIRECTS)
835 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
837 AC_ARG_ENABLE(killpopup,
838 [ --disable-killpopup Never block popups],
839 [if test $enableval = yes; then
840 AC_DEFINE(FEATURE_KILL_POPUPS)
841 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
844 [ --disable-stats Don't keep statistics],
845 [if test $enableval = yes; then
846 AC_DEFINE(FEATURE_STATISTICS)
847 fi],AC_DEFINE(FEATURE_STATISTICS))
849 AC_ARG_ENABLE(ie-images,
850 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
851 Explorer is for an image or HTML.],
852 [if test $enableval = yes; then
853 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
855 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
857 AC_ARG_ENABLE(image-blocking,
858 [ --disable-image-blocking Don't try to figure out whether a request is
859 for an image or HTML - assume HTML.],
860 [if test $enableval = yes; then
861 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
863 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
865 AC_ARG_ENABLE(acl-files,
866 [ --disable-acl-files Prevents the use of ACL files to control access to
867 the proxy by IP address.],
868 [if test $enableval = yes; then
869 AC_DEFINE(FEATURE_ACL)
871 AC_DEFINE(FEATURE_ACL))
873 AC_ARG_ENABLE(trust-files,
874 [ --disable-trust-files Prevents the use of trust files.],
875 [if test $enableval = yes; then
876 AC_DEFINE(FEATURE_TRUST)
878 AC_DEFINE(FEATURE_TRUST))
880 AC_ARG_ENABLE(jar-files,
881 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
882 [if test $enableval = yes; then
883 AC_DEFINE(FEATURE_COOKIE_JAR)
885 AC_DEFINE(FEATURE_COOKIE_JAR))
887 AC_ARG_ENABLE(editor,
888 [ --disable-editor Prevents the use of the web-based actions file
889 editor and web-based temporary disable setting.],
890 [if test $enableval = yes; then
891 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
893 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
895 AC_ARG_ENABLE(no-gifs,
896 [ --enable-no-gifs Use politically correct PNG format instead of GIF
897 for built-in images. May not work with all browsers.],
898 [if test $enableval = yes; then
899 AC_DEFINE(FEATURE_NO_GIFS)
903 dnl pcre/pcrs is needed for CGI anyway, so
904 dnl the choice is only between static and
907 AC_ARG_ENABLE(regex-matching,
908 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
909 pattern matching (default)
910 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
911 matching (-> bigger binary)
912 --disable-regex-matching Don't use regex matching, compare URL
913 prefix instead (won't shrink birary)],
914 [ regex_matching=$enableval ],
915 [ regex_matching=pcre ])
917 AC_ARG_ENABLE(dynamic-pcre,
918 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
919 libpcre is available],
920 [ if test $enableval = "no"; then have_pcre=no; fi ])
922 AC_ARG_ENABLE(dynamic-pcrs,
923 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
924 libpcrs is available],
925 [ if test $enableval = "no"; then have_pcrs=no; fi ])
928 # Is the regex URL matching based on libpcreposix, but we
929 # don't have that library?
931 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
932 dont_miss_pcreposix=yes
934 dont_miss_pcreposix=no
937 # If we have libpcre and either we also have pcreposix or
938 # we don't need pcreposix, then link pcre dynamically; else
939 # build it and link statically
941 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
947 echo "using built-in static pcre"
949 AC_DEFINE(STATIC_PCRE)
953 # If we have libpcrs and pcre is linked dynamically
954 # then also link pcrs dynamically, else build and link
957 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
962 echo "using built-in static pcrs"
963 AC_DEFINE(STATIC_PCRS)
967 # Which method should be used for URL matching?
968 # pcre, gnu regex or prefix matching?
970 if test $regex_matching = "gnu"; then
971 echo "using gnu regex for URL matching"
975 elif test $regex_matching = "pcre"; then
976 echo "using pcre regex for URL matching"
977 AC_DEFINE(REGEX_PCRE)
980 if test $pcre_dyn = "yes"; then
981 LIBS="$LIBS -lpcreposix"
984 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
989 AC_SUBST(GNU_REGEX_ONLY)
990 AC_SUBST(PCRE_REGEX_ONLY)
991 AC_SUBST(STATIC_PCRE_ONLY)
992 AC_SUBST(STATIC_PCRS_ONLY)
994 dnl =================================================================
995 dnl Final cleanup and output
996 dnl =================================================================
998 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1000 CFLAGS=$old_CFLAGS_nospecial
1001 AC_SUBST(SPECIAL_CFLAGS)
1003 AC_SUBST(PTHREAD_LIB)
1005 AC_OUTPUT(GNUmakefile)