1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.37 2002/03/08 12:58:21 oes Exp $
5 dnl Written by and Copyright (C) 2001 the SourceForge
6 dnl IJBSWA 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.37 2002/03/08 12:58:21 oes
32 dnl Tiny bugfix in AC_ARG_WITH(debug)
34 dnl Revision 1.36 2002/03/06 23:50:36 morcego
35 dnl Will not test for a text browser if we are not using docbook.
37 dnl Revision 1.35 2002/03/06 21:55:52 morcego
38 dnl New configure option: --with-docbook=(yes|no|directory)
39 dnl Preliminary new platform detection code included. Will work with the
40 dnl old one for now. No use just trowing it away
42 dnl Revision 1.34 2002/03/06 20:57:00 morcego
43 dnl Fixing detection of stylesheets on SuSe.
45 dnl Revision 1.33 2002/03/05 17:31:11 morcego
46 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
48 dnl Revision 1.32 2002/03/05 14:07:43 morcego
49 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
50 dnl (based on sugestion by Sarantis Paskalis)
52 dnl Revision 1.31 2002/03/05 13:43:28 morcego
53 dnl Checking for text browser, so redhat-dok can work.
55 dnl Revision 1.30 2002/03/04 17:58:01 oes
56 dnl Deleted _DEBUG and PID_FILE_PATH
58 dnl Revision 1.29 2002/02/28 14:20:53 oes
59 dnl Fixed detection of gethost*_r functions on Solaris
61 dnl Revision 1.28 2002/02/27 15:02:38 oes
62 dnl Incremented version number
64 dnl Revision 1.27 2002/01/10 12:35:18 oes
65 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
66 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
67 dnl Is there a better way?
69 dnl Revision 1.26 2002/01/09 14:29:49 oes
70 dnl - Added AC_CHECK_FUNC tests for the availability of
71 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
72 dnl localtime_r, as well as AC_TRY_COMPILE tests to
73 dnl determine their signatures.
75 dnl - Fixed a bug with the init of CFLAGS that was
76 dnl reported by barsnick
78 dnl Revision 1.25 2002/01/04 15:27:18 oes
79 dnl Changed quoting of CODE_STATUS for use in make
81 dnl Revision 1.24 2001/12/30 14:07:31 steudten
82 dnl - Add signal handling (unix)
83 dnl - Add SIGHUP handler (unix)
84 dnl - Add creation of pidfile (unix)
85 dnl - Add action 'top' in rc file (RH)
86 dnl - Add entry 'SIGNALS' to manpage
87 dnl - Add exit message to logfile (unix)
89 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
90 dnl Change from "alpha" to "beta" in configure.in
92 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
93 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
94 dnl make break in a more obvious way.
96 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
97 dnl Bumping version number to 2.9.10
99 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
100 dnl Support for FEATURE_CGI_EDIT_ACTIONS
102 dnl Revision 1.19 2001/10/07 15:33:14 oes
103 dnl Removed FEATURE_DENY_GZIP
104 dnl Bumped up version number
106 dnl Revision 1.18 2001/09/13 13:10:24 steudten
108 dnl PreWork for Debug Interface.
109 dnl Add new option "--with-debug" to enable debugging (flags aso.)
111 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
112 dnl Mac OSX (Darwin) support added.
114 dnl Revision 1.16 2001/09/12 22:55:45 joergs
115 dnl AmigaOS support added.
117 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
119 dnl OS/2 port: update autoconf'd support for the platform.
121 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
122 dnl Fixing Solaris build (I hope) and tidying up #defines:
123 dnl - All feature #defines are now of the form FEATURE_xxx
124 dnl - Permanently turned off WIN_GUI_EDIT
125 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
127 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
128 dnl Major changes to build system in order to fix these bugs:
129 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
130 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
131 dnl which shared libraries are available
132 dnl - Solaris support (?) (Not tested under Solaris yet)
134 dnl Revision 1.12 2001/07/25 19:16:27 oes
135 dnl Bumping version number to 2.9.8
137 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
138 dnl Bumping version number to 2.9.7
140 dnl Revision 1.10 2001/07/18 17:25:04 oes
143 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
144 dnl Added support for linking with POSIX threads library
146 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
147 dnl Renaming #define STATIC to STATIC_PCRE
148 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
149 dnl POSIX threads support.
151 dnl Revision 1.7 2001/07/13 13:58:05 oes
152 dnl Completely reorganized the selection scheme for
153 dnl pcre, pcreposix, pcrs and gnu_regex:
155 dnl The presence of shared pcre, pcreposix or pcrs
156 dnl libraried is now autodetected. Additionally, the
157 dnl user can enforce using the built-in static variants
158 dnl by specifying --disable-dynamic-(pcre|pcrs).
159 dnl Care is taken to avoid that pcre is dyn, while pcreposix
160 dnl is static, if both are used and that pcrs is static if
163 dnl The choice between pcre, gnu or no regex for actionsfile
164 dnl URL matching is now via
165 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
166 dnl default being pcre.
168 dnl Revision 1.6 2001/06/29 21:56:40 oes
171 dnl Revision 1.5 2001/06/29 13:26:27 oes
172 dnl Introduced #define CODE_STATUS
174 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
175 dnl Unified blocklist/imagelist/permissionslist.
176 dnl File format is still under discussion, but the internal changes
177 dnl are (mostly) done.
179 dnl Also modified interceptor behaviour:
180 dnl - We now intercept all URLs beginning with one of the following
181 dnl prefixes (and *only* these prefixes):
183 dnl * http://ijbswa.sf.net/config/
184 dnl * http://ijbswa.sourceforge.net/config/
185 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
186 dnl - Internal changes so that intercepted and fast redirect pages
187 dnl are not replaced with an image.
188 dnl - Interceptors now have the option to send a binary page direct
189 dnl to the client. (i.e. ijb-send-banner uses this)
190 dnl - Implemented show-url-info interceptor. (Which is why I needed
191 dnl the above interceptors changes - a typical URL is
192 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
193 dnl The previous mechanism would not have intercepted that, and
194 dnl if it had been intercepted then it then it would have replaced
195 dnl it with an image.)
197 dnl Revision 1.3 2001/05/22 18:46:04 oes
199 dnl - Enabled filtering banners by size rather than URL
200 dnl by adding patterns that replace all standard banner
201 dnl sizes with the "Junkbuster" gif to the re_filterfile
203 dnl - Enabled filtering WebBugs by providing a pattern
204 dnl which kills all 1x1 images
206 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
207 dnl which is selected by the (nonstandard and therefore
208 dnl capital) letter 'U' in the option string.
209 dnl It causes the quantifiers to be ungreedy by default.
210 dnl Appending a ? turns back to greedy (!).
212 dnl - Added a new interceptor ijb-send-banner, which
213 dnl sends back the "Junkbuster" gif. Without imagelist or
214 dnl MSIE detection support, or if tinygif = 1, or the
215 dnl URL isn't recognized as an imageurl, a lame HTML
216 dnl explanation is sent instead.
218 dnl - Added new feature, which permits blocking remote
219 dnl script redirects and firing back a local redirect
221 dnl The feature is conditionally compiled, i.e. it
222 dnl can be disabled with --disable-fast-redirects,
223 dnl plus it must be activated by a "fast-redirects"
224 dnl line in the config file, has its own log level
225 dnl and of course wants to be displayed by show-proxy-args
226 dnl Note: Boy, all the #ifdefs in 1001 locations and
227 dnl all the fumbling with configure.in and acconfig.h
228 dnl were *way* more work than the feature itself :-(
230 dnl - Because a generic redirect template was needed for
231 dnl this, tinygif = 3 now uses the same.
233 dnl - Moved GIFs, and other static HTTP response templates
236 dnl - Some minor fixes
238 dnl - Removed some >400 CRs again (Jon, you really worked
241 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
242 dnl Version 2.9.4 checkin.
243 dnl - Merged popupfile and cookiefile, and added control over PCRS
244 dnl filtering, in new "permissionsfile".
245 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
246 dnl file error you now get a message box (in the Win32 GUI) rather
247 dnl than the program exiting with no explanation.
248 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
250 dnl - Removed tabs from "config"
251 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
252 dnl - Bumped up version number.
254 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
255 dnl Initial import of version 2.9.3 source tree
260 dnl =================================================================
261 dnl AutoConf Initialization
262 dnl =================================================================
264 AC_REVISION($Revision: 1.37 $)
266 AC_CONFIG_HEADER(config.h)
271 AC_ARG_WITH(docbook, dnl
272 --with-docbook=[[yes|no|directory]]
273 Enable docbook documentation creation
274 (default = yes, for gnu and linux),[dnl
275 case "$with_docbook" in
285 dnl =================================================================
286 dnl Application version number
287 dnl =================================================================
294 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
295 dnl used for CGI output
297 dnl =================================================================
298 dnl Substitute the version numbers
299 dnl =================================================================
301 AC_SUBST(VERSION_MAJOR)
302 AC_SUBST(VERSION_MINOR)
303 AC_SUBST(VERSION_POINT)
304 AC_SUBST(CODE_STATUS)
307 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
308 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
309 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
310 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
311 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
313 dnl =================================================================
314 dnl Checks for programs needed to build.
315 dnl =================================================================
322 dnl RANLIB is for PCRE:
325 AC_CHECK_PROG(GDB,gdb,yes,no)
327 dnl =================================================================
328 dnl debug, gcc and gdb support
329 dnl =================================================================
332 [ --with-debug Enable debug mode],
334 if test "x$withval" != "xno" ; then
335 if test $ac_cv_prog_cc_g = yes; then
336 if test "$GCC" = yes; then
342 CFLAGS="$CFLAGS -Wshadow -Wconversion"
350 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
351 if test "$GCC" = yes; then
360 dnl =================================================================
361 dnl additional gcc flags
362 dnl =================================================================
365 CFLAGS="-pipe $CFLAGS"
369 dnl =================================================================
371 dnl =================================================================
373 dnl Must do this first.
375 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
376 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
377 dnl the compiler will use completely different sets of library
378 dnl and include files.
380 dnl =================================================================
385 if test "$MINGW32" = "yes"; then
388 if test "$CYGWIN" = "yes"; then
395 if test $dodk = auto; then
397 if test $target_type = unix; then
406 dnl Decide what to do based on target_type
407 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
408 dnl This is because we don't know yet whether pthread is enabled.
410 AC_ARG_ENABLE(mingw32,
411 [ --enable-mingw32 Use mingw32 for a Windows GUI],
412 [if test $enableval = yes; then
416 if test $target_type = mingw; then
418 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
419 PTHREAD_LIB=-lpthreadGC
420 echo "Using mingw32 (Win32 GUI)"
423 if test $target_type = cygwin; then
424 SPECIAL_CFLAGS="-mno-win32"
426 echo "Using Cygnus (Win32 command line)"
429 PTHREAD_LIB=-lpthread
434 dnl Checking which text html browser we have avaliable
435 if test $dodk != no; then
436 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
437 if test "$WDUMP" = false; then
438 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
443 dnl If we use rpm, we need to check where %_topdir is
444 AC_CHECK_PROGS(RPMBIN,rpm,false)
445 if test $RPMBIN != false; then
446 RPM_BASE=`rpm --eval "%{_topdir}"`
447 if test "$RPM_BASE" = ""; then
448 RPM_BASE=/usr/src/redhat
453 dnl Check for jade, so we can build the documentation
454 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
457 dnl Checking for the docbook.dsl stylesheet file
458 if test $dodk = yes; then
459 if test $DKPREFIX = none; then
460 AC_CHECK_FILE(/usr/share/sgml/docbook/dsssl-stylesheets/html/docbook.dsl,
461 DKPREFIX=/usr/share/sgml/docbook/dsssl-stylesheets,
462 AC_CHECK_FILE(/usr/share/sgml/docbkdsl/html/docbook.dsl,
463 DKPREFIX=/usr/share/sgml/docbkdsl))
468 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
469 old_CFLAGS_nospecial=$CFLAGS
470 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
472 # Hack to force AutoConf to use the CFLAGS we just set
473 dnl Warning: This may break with a future version of Autoconf
474 dnl Tested with autoconf 2.13
475 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
476 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
477 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
480 dnl =================================================================
482 dnl =================================================================
484 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
486 AC_ARG_ENABLE(pthread,
487 [ --disable-pthread Don't use POSIX threads (pthreads)],
488 [if test $enableval = no; then
493 if test $have_pthread = yes; then
495 AC_DEFINE(FEATURE_PTHREAD)
496 echo Using POSIX threads
497 if test "$GCC" = "yes"; then
498 # Set a GCC specific switch:
499 if test "$target_type" = "unix"; then
500 # This compiler switch makes Linux thread-safe
501 # Don't know about other OS's? Is this switch
504 SPECIAL_CFLAGS="-pthread"
509 echo Using native threads
512 AC_SUBST(PTHREAD_ONLY)
514 dnl =================================================================
515 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
516 dnl gmtime and localtime
517 dnl =================================================================
519 dnl Next line needed to find the gethost*_r functions on Solaris
520 AC_CHECK_LIB(nsl, gethostbyname)
522 AC_CHECK_FUNC(gethostbyaddr_r, [
523 AC_MSG_CHECKING([signature of gethostbyaddr_r])
527 struct hostent *h, *hp;
530 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
532 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
533 AC_MSG_RESULT([8 args])
541 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
543 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
544 AC_MSG_RESULT([7 args])
549 struct hostent_data *d;
553 (void) gethostbyaddr_r(a, l, t, h, d)
555 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
556 AC_MSG_RESULT([5 args])
558 AC_MSG_RESULT(unrecognised)
566 AC_CHECK_FUNC(gethostbyname_r, [
567 AC_MSG_CHECKING([signature of gethostbyname_r])
571 struct hostent *h, *r;
574 (void) gethostbyname_r(n, h, b, bl, &r, &e)
576 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
577 AC_MSG_RESULT([6 args])
585 (void) gethostbyname_r(n, h, b, bl, &e)
587 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
588 AC_MSG_RESULT([5 args])
593 struct hostent_data *d;
596 (void) gethostbyname_r(n, h, d)
598 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
599 AC_MSG_RESULT([3 args])
601 AC_MSG_RESULT(unrecognised)
609 AC_CHECK_FUNC(gmtime_r, [
610 AC_MSG_CHECKING([signature of gmtime_r])
616 (void) gmtime_r(t, tm)
619 AC_DEFINE(HAVE_GMTIME_R)
621 AC_MSG_RESULT(unrecognised)
627 AC_CHECK_FUNC(localtime_r, [
628 AC_MSG_CHECKING([signature of localtime_r])
634 (void) localtime_r(t, tm)
637 AC_DEFINE(HAVE_LOCALTIME_R)
639 AC_MSG_RESULT(unrecognised)
645 dnl =================================================================
647 dnl FIXME: Not tested on Solaris yet...
648 dnl =================================================================
654 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
655 AC_DEFINE(__EXTENSIONS__)
656 if test "$GCC" = "yes"; then
657 # Set a GCC specific switch:
658 # This compiler switch makes Solaris thread-safe
660 SPECIAL_CFLAGS="-pthreads"
662 # What do we do without GCC? Guess this:
663 SPECIAL_CFLAGS="-D_REENTRANT"
670 dnl =================================================================
672 dnl =================================================================
675 *-os2-emx*) SOCKET_LIB=-lsocket
681 dnl =================================================================
683 dnl =================================================================
688 *-amigaos) AMIGAOS_ONLY=
692 AC_SUBST(AMIGAOS_ONLY)
694 dnl =================================================================
695 dnl Check for standard compiler stuff
696 dnl =================================================================
703 AC_CHECK_SIZEOF(int, 4)
704 AC_CHECK_SIZEOF(char *, 4)
705 AC_CHECK_SIZEOF(long, 4)
706 AC_CHECK_SIZEOF(long long, 8)
707 AC_CHECK_SIZEOF(size_t, 4)
709 dnl Checks for header files.
710 dnl AC_HEADER_SYS_WAIT
711 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
713 dnl Checks for library functions.
715 dnl AC_CHECK_FUNC(strstr)
716 dnl bcopy and memmove are for PCRE
717 AC_CHECK_FUNCS(strerror bcopy memmove)
720 dnl =================================================================
721 dnl Checks for libraries.
722 dnl =================================================================
723 dnl Note: Some systems may have the library but not the system header
724 dnl file, so we must check for both.
725 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
726 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
727 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
730 dnl =================================================================
732 dnl =================================================================
736 dnl =================================================================
738 dnl =================================================================
740 AC_ARG_ENABLE(toggle,
741 [ --disable-toggle Don't support temporary disable],
742 [if test $enableval = yes; then
743 AC_DEFINE(FEATURE_TOGGLE)
744 fi],AC_DEFINE(FEATURE_TOGGLE))
747 [ --disable-force Don't allow single-page disable],
748 [if test $enableval = yes; then
749 AC_DEFINE(FEATURE_FORCE_LOAD)
750 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
752 AC_ARG_ENABLE(fast-redirects,
753 [ --disable-fast-redirects Don't support fast redirects],
754 [if test $enableval = yes; then
755 AC_DEFINE(FEATURE_FAST_REDIRECTS)
756 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
758 AC_ARG_ENABLE(killpopup,
759 [ --disable-killpopup Never block popups],
760 [if test $enableval = yes; then
761 AC_DEFINE(FEATURE_KILL_POPUPS)
762 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
765 [ --disable-stats Don't keep statistics],
766 [if test $enableval = yes; then
767 AC_DEFINE(FEATURE_STATISTICS)
768 fi],AC_DEFINE(FEATURE_STATISTICS))
770 AC_ARG_ENABLE(ie-images,
771 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
772 Explorer is for an image or HTML.],
773 [if test $enableval = yes; then
774 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
776 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
778 AC_ARG_ENABLE(image-blocking,
779 [ --disable-image-blocking Don't try to figure out whether a request is
780 for an image or HTML - assume HTML.],
781 [if test $enableval = yes; then
782 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
784 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
786 AC_ARG_ENABLE(acl-files,
787 [ --disable-acl-files Prevents the use of ACL files to control access to
788 the proxy by IP address.],
789 [if test $enableval = yes; then
790 AC_DEFINE(FEATURE_ACL)
792 AC_DEFINE(FEATURE_ACL))
794 AC_ARG_ENABLE(trust-files,
795 [ --disable-trust-files Prevents the use of trust files.],
796 [if test $enableval = yes; then
797 AC_DEFINE(FEATURE_TRUST)
799 AC_DEFINE(FEATURE_TRUST))
801 AC_ARG_ENABLE(jar-files,
802 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
803 [if test $enableval = yes; then
804 AC_DEFINE(FEATURE_COOKIE_JAR)
806 AC_DEFINE(FEATURE_COOKIE_JAR))
808 AC_ARG_ENABLE(editor,
809 [ --disable-editor Prevents the use of the web-based actions file
810 editor and web-based temporary disable setting.],
811 [if test $enableval = yes; then
812 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
814 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
816 dnl pcre/pcrs is needed for CGI anyway, so
817 dnl the choice is only between static and
820 AC_ARG_ENABLE(regex-matching,
821 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
822 pattern matching (default)
823 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
824 matching (-> bigger binary)
825 --disable-regex-matching Don't use regex matching, compare URL
826 prefix instead (won't shrink birary)],
827 [ regex_matching=$enableval ],
828 [ regex_matching=pcre ])
830 AC_ARG_ENABLE(dynamic-pcre,
831 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
832 libpcre is available],
833 [ if test $enableval = "no"; then have_pcre=no; fi ])
835 AC_ARG_ENABLE(dynamic-pcrs,
836 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
837 libpcrs is available],
838 [ if test $enableval = "no"; then have_pcrs=no; fi ])
841 # Is the regex URL matching based on libpcreposix, but we
842 # don't have that library?
844 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
845 dont_miss_pcreposix=yes
847 dont_miss_pcreposix=no
850 # If we have libpcre and either we also have pcreposix or
851 # we don't need pcreposix, then link pcre dynamically; else
852 # build it and link statically
854 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
860 echo "using built-in static pcre"
862 AC_DEFINE(STATIC_PCRE)
866 # If we have libpcrs and pcre is linked dynamically
867 # then also link pcrs dynamically, else build and link
870 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
875 echo "using built-in static pcrs"
876 AC_DEFINE(STATIC_PCRS)
880 # Which method should be used for URL matching?
881 # pcre, gnu regex or prefix matching?
883 if test $regex_matching = "gnu"; then
884 echo "using gnu regex for URL matching"
888 elif test $regex_matching = "pcre"; then
889 echo "using pcre regex for URL matching"
890 AC_DEFINE(REGEX_PCRE)
893 if test $pcre_dyn = "yes"; then
894 LIBS="$LIBS -lpcreposix"
897 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
902 AC_SUBST(GNU_REGEX_ONLY)
903 AC_SUBST(PCRE_REGEX_ONLY)
904 AC_SUBST(STATIC_PCRE_ONLY)
905 AC_SUBST(STATIC_PCRS_ONLY)
907 dnl =================================================================
908 dnl Final cleanup and output
909 dnl =================================================================
911 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
913 CFLAGS=$old_CFLAGS_nospecial
914 AC_SUBST(SPECIAL_CFLAGS)
916 AC_SUBST(PTHREAD_LIB)
918 AC_OUTPUT(GNUmakefile)