1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.41 2002/03/19 19:30:04 morcego 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.41 2002/03/19 19:30:04 morcego
32 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
35 dnl - configure will now check for db2html or docbook2html (should work now
36 dnl on SuSe without the docbktls package)
38 dnl Revision 1.40 2002/03/09 14:33:30 oes
39 dnl Fixing the (harmless) AC_CHECK_FILE warnings
41 dnl Revision 1.39 2002/03/08 16:46:13 oes
42 dnl Added --enable-no-gifs
44 dnl Revision 1.38 2002/03/08 14:13:50 morcego
45 dnl Fixing configure, to remove a command not found error.
47 dnl Revision 1.37 2002/03/08 12:58:21 oes
48 dnl Tiny bugfix in AC_ARG_WITH(debug)
50 dnl Revision 1.36 2002/03/06 23:50:36 morcego
51 dnl Will not test for a text browser if we are not using docbook.
53 dnl Revision 1.35 2002/03/06 21:55:52 morcego
54 dnl New configure option: --with-docbook=(yes|no|directory)
55 dnl Preliminary new platform detection code included. Will work with the
56 dnl old one for now. No use just trowing it away
58 dnl Revision 1.34 2002/03/06 20:57:00 morcego
59 dnl Fixing detection of stylesheets on SuSe.
61 dnl Revision 1.33 2002/03/05 17:31:11 morcego
62 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
64 dnl Revision 1.32 2002/03/05 14:07:43 morcego
65 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
66 dnl (based on sugestion by Sarantis Paskalis)
68 dnl Revision 1.31 2002/03/05 13:43:28 morcego
69 dnl Checking for text browser, so redhat-dok can work.
71 dnl Revision 1.30 2002/03/04 17:58:01 oes
72 dnl Deleted _DEBUG and PID_FILE_PATH
74 dnl Revision 1.29 2002/02/28 14:20:53 oes
75 dnl Fixed detection of gethost*_r functions on Solaris
77 dnl Revision 1.28 2002/02/27 15:02:38 oes
78 dnl Incremented version number
80 dnl Revision 1.27 2002/01/10 12:35:18 oes
81 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
82 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
83 dnl Is there a better way?
85 dnl Revision 1.26 2002/01/09 14:29:49 oes
86 dnl - Added AC_CHECK_FUNC tests for the availability of
87 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
88 dnl localtime_r, as well as AC_TRY_COMPILE tests to
89 dnl determine their signatures.
91 dnl - Fixed a bug with the init of CFLAGS that was
92 dnl reported by barsnick
94 dnl Revision 1.25 2002/01/04 15:27:18 oes
95 dnl Changed quoting of CODE_STATUS for use in make
97 dnl Revision 1.24 2001/12/30 14:07:31 steudten
98 dnl - Add signal handling (unix)
99 dnl - Add SIGHUP handler (unix)
100 dnl - Add creation of pidfile (unix)
101 dnl - Add action 'top' in rc file (RH)
102 dnl - Add entry 'SIGNALS' to manpage
103 dnl - Add exit message to logfile (unix)
105 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
106 dnl Change from "alpha" to "beta" in configure.in
108 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
109 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
110 dnl make break in a more obvious way.
112 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
113 dnl Bumping version number to 2.9.10
115 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
116 dnl Support for FEATURE_CGI_EDIT_ACTIONS
118 dnl Revision 1.19 2001/10/07 15:33:14 oes
119 dnl Removed FEATURE_DENY_GZIP
120 dnl Bumped up version number
122 dnl Revision 1.18 2001/09/13 13:10:24 steudten
124 dnl PreWork for Debug Interface.
125 dnl Add new option "--with-debug" to enable debugging (flags aso.)
127 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
128 dnl Mac OSX (Darwin) support added.
130 dnl Revision 1.16 2001/09/12 22:55:45 joergs
131 dnl AmigaOS support added.
133 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
135 dnl OS/2 port: update autoconf'd support for the platform.
137 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
138 dnl Fixing Solaris build (I hope) and tidying up #defines:
139 dnl - All feature #defines are now of the form FEATURE_xxx
140 dnl - Permanently turned off WIN_GUI_EDIT
141 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
143 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
144 dnl Major changes to build system in order to fix these bugs:
145 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
146 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
147 dnl which shared libraries are available
148 dnl - Solaris support (?) (Not tested under Solaris yet)
150 dnl Revision 1.12 2001/07/25 19:16:27 oes
151 dnl Bumping version number to 2.9.8
153 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
154 dnl Bumping version number to 2.9.7
156 dnl Revision 1.10 2001/07/18 17:25:04 oes
159 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
160 dnl Added support for linking with POSIX threads library
162 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
163 dnl Renaming #define STATIC to STATIC_PCRE
164 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
165 dnl POSIX threads support.
167 dnl Revision 1.7 2001/07/13 13:58:05 oes
168 dnl Completely reorganized the selection scheme for
169 dnl pcre, pcreposix, pcrs and gnu_regex:
171 dnl The presence of shared pcre, pcreposix or pcrs
172 dnl libraried is now autodetected. Additionally, the
173 dnl user can enforce using the built-in static variants
174 dnl by specifying --disable-dynamic-(pcre|pcrs).
175 dnl Care is taken to avoid that pcre is dyn, while pcreposix
176 dnl is static, if both are used and that pcrs is static if
179 dnl The choice between pcre, gnu or no regex for actionsfile
180 dnl URL matching is now via
181 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
182 dnl default being pcre.
184 dnl Revision 1.6 2001/06/29 21:56:40 oes
187 dnl Revision 1.5 2001/06/29 13:26:27 oes
188 dnl Introduced #define CODE_STATUS
190 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
191 dnl Unified blocklist/imagelist/permissionslist.
192 dnl File format is still under discussion, but the internal changes
193 dnl are (mostly) done.
195 dnl Also modified interceptor behaviour:
196 dnl - We now intercept all URLs beginning with one of the following
197 dnl prefixes (and *only* these prefixes):
199 dnl * http://ijbswa.sf.net/config/
200 dnl * http://ijbswa.sourceforge.net/config/
201 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
202 dnl - Internal changes so that intercepted and fast redirect pages
203 dnl are not replaced with an image.
204 dnl - Interceptors now have the option to send a binary page direct
205 dnl to the client. (i.e. ijb-send-banner uses this)
206 dnl - Implemented show-url-info interceptor. (Which is why I needed
207 dnl the above interceptors changes - a typical URL is
208 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
209 dnl The previous mechanism would not have intercepted that, and
210 dnl if it had been intercepted then it then it would have replaced
211 dnl it with an image.)
213 dnl Revision 1.3 2001/05/22 18:46:04 oes
215 dnl - Enabled filtering banners by size rather than URL
216 dnl by adding patterns that replace all standard banner
217 dnl sizes with the "Junkbuster" gif to the re_filterfile
219 dnl - Enabled filtering WebBugs by providing a pattern
220 dnl which kills all 1x1 images
222 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
223 dnl which is selected by the (nonstandard and therefore
224 dnl capital) letter 'U' in the option string.
225 dnl It causes the quantifiers to be ungreedy by default.
226 dnl Appending a ? turns back to greedy (!).
228 dnl - Added a new interceptor ijb-send-banner, which
229 dnl sends back the "Junkbuster" gif. Without imagelist or
230 dnl MSIE detection support, or if tinygif = 1, or the
231 dnl URL isn't recognized as an imageurl, a lame HTML
232 dnl explanation is sent instead.
234 dnl - Added new feature, which permits blocking remote
235 dnl script redirects and firing back a local redirect
237 dnl The feature is conditionally compiled, i.e. it
238 dnl can be disabled with --disable-fast-redirects,
239 dnl plus it must be activated by a "fast-redirects"
240 dnl line in the config file, has its own log level
241 dnl and of course wants to be displayed by show-proxy-args
242 dnl Note: Boy, all the #ifdefs in 1001 locations and
243 dnl all the fumbling with configure.in and acconfig.h
244 dnl were *way* more work than the feature itself :-(
246 dnl - Because a generic redirect template was needed for
247 dnl this, tinygif = 3 now uses the same.
249 dnl - Moved GIFs, and other static HTTP response templates
252 dnl - Some minor fixes
254 dnl - Removed some >400 CRs again (Jon, you really worked
257 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
258 dnl Version 2.9.4 checkin.
259 dnl - Merged popupfile and cookiefile, and added control over PCRS
260 dnl filtering, in new "permissionsfile".
261 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
262 dnl file error you now get a message box (in the Win32 GUI) rather
263 dnl than the program exiting with no explanation.
264 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
266 dnl - Removed tabs from "config"
267 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
268 dnl - Bumped up version number.
270 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
271 dnl Initial import of version 2.9.3 source tree
276 dnl =================================================================
277 dnl AutoConf Initialization
278 dnl =================================================================
280 AC_REVISION($Revision: 1.41 $)
282 AC_CONFIG_HEADER(config.h)
287 AC_ARG_WITH(docbook, dnl
288 --with-docbook=[[yes|no|directory]]
289 Enable docbook documentation creation
290 (default = yes, for gnu and linux),[dnl
291 case "$with_docbook" in
301 AC_ARG_WITH(db2html, dnl
302 --with-db2html=<path/executable>
303 Set the location of the docbook to html converter
304 (default = search),[dnl
308 dnl =================================================================
309 dnl Application version number
310 dnl =================================================================
317 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
318 dnl used for CGI output
320 dnl =================================================================
321 dnl Substitute the version numbers
322 dnl =================================================================
324 AC_SUBST(VERSION_MAJOR)
325 AC_SUBST(VERSION_MINOR)
326 AC_SUBST(VERSION_POINT)
327 AC_SUBST(CODE_STATUS)
330 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
331 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
332 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
333 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
334 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
336 dnl =================================================================
337 dnl Checks for programs needed to build.
338 dnl =================================================================
345 dnl RANLIB is for PCRE:
348 AC_CHECK_PROG(GDB,gdb,yes,no)
350 dnl =================================================================
351 dnl debug, gcc and gdb support
352 dnl =================================================================
355 [ --with-debug Enable debug mode],
357 if test "x$withval" != "xno" ; then
358 if test $ac_cv_prog_cc_g = yes; then
359 if test "$GCC" = yes; then
365 CFLAGS="$CFLAGS -Wshadow -Wconversion"
373 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
374 if test "$GCC" = yes; then
383 dnl =================================================================
384 dnl additional gcc flags
385 dnl =================================================================
388 CFLAGS="-pipe $CFLAGS"
392 dnl =================================================================
394 dnl =================================================================
396 dnl Must do this first.
398 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
399 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
400 dnl the compiler will use completely different sets of library
401 dnl and include files.
403 dnl =================================================================
408 if test "$MINGW32" = "yes"; then
411 if test "$CYGWIN" = "yes"; then
418 if test $dodk = auto; then
420 if test $target_type = unix; then
429 dnl Decide what to do based on target_type
430 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
431 dnl This is because we don't know yet whether pthread is enabled.
433 AC_ARG_ENABLE(mingw32,
434 [ --enable-mingw32 Use mingw32 for a Windows GUI],
435 [if test $enableval = yes; then
439 if test $target_type = mingw; then
441 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
442 PTHREAD_LIB=-lpthreadGC
443 echo "Using mingw32 (Win32 GUI)"
446 if test $target_type = cygwin; then
447 SPECIAL_CFLAGS="-mno-win32"
449 echo "Using Cygnus (Win32 command line)"
452 PTHREAD_LIB=-lpthread
457 dnl Checking which text html browser we have avaliable
458 if test $dodk != no; then
459 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
460 if test "$WDUMP" = false; then
461 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
463 if test $DB2HTML = false; then
464 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
467 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
473 dnl If we use rpm, we need to check where %_topdir is
474 AC_CHECK_PROGS(RPMBIN,rpm,false)
475 if test $RPMBIN != false; then
476 RPM_BASE=`rpm --eval "%{_topdir}"`
477 if test "$RPM_BASE" = ""; then
478 RPM_BASE=/usr/src/redhat
483 dnl Check for jade, so we can build the documentation
484 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
487 dnl Checking for the docbook.dsl stylesheet file
488 dnl It is still not portable (directory slash)
489 if test $dodk = yes; then
490 if test $DKPREFIX = none; then
491 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl; do
492 echo -n "checking for $i/html/docbook.dsl..."
493 if test -f $i/html/docbook.dsl; then
505 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
506 old_CFLAGS_nospecial=$CFLAGS
507 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
509 # Hack to force AutoConf to use the CFLAGS we just set
510 dnl Warning: This may break with a future version of Autoconf
511 dnl Tested with autoconf 2.13
512 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
513 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
514 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
517 dnl =================================================================
519 dnl =================================================================
521 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
523 AC_ARG_ENABLE(pthread,
524 [ --disable-pthread Don't use POSIX threads (pthreads)],
525 [if test $enableval = no; then
530 if test $have_pthread = yes; then
532 AC_DEFINE(FEATURE_PTHREAD)
533 echo Using POSIX threads
534 if test "$GCC" = "yes"; then
535 # Set a GCC specific switch:
536 if test "$target_type" = "unix"; then
537 # This compiler switch makes Linux thread-safe
538 # Don't know about other OS's? Is this switch
541 SPECIAL_CFLAGS="-pthread"
546 echo Using native threads
549 AC_SUBST(PTHREAD_ONLY)
551 dnl =================================================================
552 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
553 dnl gmtime and localtime
554 dnl =================================================================
556 dnl Next line needed to find the gethost*_r functions on Solaris
557 AC_CHECK_LIB(nsl, gethostbyname)
559 AC_CHECK_FUNC(gethostbyaddr_r, [
560 AC_MSG_CHECKING([signature of gethostbyaddr_r])
564 struct hostent *h, *hp;
567 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
569 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
570 AC_MSG_RESULT([8 args])
578 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
580 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
581 AC_MSG_RESULT([7 args])
586 struct hostent_data *d;
590 (void) gethostbyaddr_r(a, l, t, h, d)
592 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
593 AC_MSG_RESULT([5 args])
595 AC_MSG_RESULT(unrecognised)
603 AC_CHECK_FUNC(gethostbyname_r, [
604 AC_MSG_CHECKING([signature of gethostbyname_r])
608 struct hostent *h, *r;
611 (void) gethostbyname_r(n, h, b, bl, &r, &e)
613 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
614 AC_MSG_RESULT([6 args])
622 (void) gethostbyname_r(n, h, b, bl, &e)
624 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
625 AC_MSG_RESULT([5 args])
630 struct hostent_data *d;
633 (void) gethostbyname_r(n, h, d)
635 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
636 AC_MSG_RESULT([3 args])
638 AC_MSG_RESULT(unrecognised)
646 AC_CHECK_FUNC(gmtime_r, [
647 AC_MSG_CHECKING([signature of gmtime_r])
653 (void) gmtime_r(t, tm)
656 AC_DEFINE(HAVE_GMTIME_R)
658 AC_MSG_RESULT(unrecognised)
664 AC_CHECK_FUNC(localtime_r, [
665 AC_MSG_CHECKING([signature of localtime_r])
671 (void) localtime_r(t, tm)
674 AC_DEFINE(HAVE_LOCALTIME_R)
676 AC_MSG_RESULT(unrecognised)
682 dnl =================================================================
684 dnl FIXME: Not tested on Solaris yet...
685 dnl =================================================================
691 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
692 AC_DEFINE(__EXTENSIONS__)
693 if test "$GCC" = "yes"; then
694 # Set a GCC specific switch:
695 # This compiler switch makes Solaris thread-safe
697 SPECIAL_CFLAGS="-pthreads"
699 # What do we do without GCC? Guess this:
700 SPECIAL_CFLAGS="-D_REENTRANT"
707 dnl =================================================================
709 dnl =================================================================
712 *-os2-emx*) SOCKET_LIB=-lsocket
718 dnl =================================================================
720 dnl =================================================================
725 *-amigaos) AMIGAOS_ONLY=
729 AC_SUBST(AMIGAOS_ONLY)
731 dnl =================================================================
732 dnl Check for standard compiler stuff
733 dnl =================================================================
740 AC_CHECK_SIZEOF(int, 4)
741 AC_CHECK_SIZEOF(char *, 4)
742 AC_CHECK_SIZEOF(long, 4)
743 AC_CHECK_SIZEOF(long long, 8)
744 AC_CHECK_SIZEOF(size_t, 4)
746 dnl Checks for header files.
747 dnl AC_HEADER_SYS_WAIT
748 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
750 dnl Checks for library functions.
752 dnl AC_CHECK_FUNC(strstr)
753 dnl bcopy and memmove are for PCRE
754 AC_CHECK_FUNCS(strerror bcopy memmove)
757 dnl =================================================================
758 dnl Checks for libraries.
759 dnl =================================================================
760 dnl Note: Some systems may have the library but not the system header
761 dnl file, so we must check for both.
762 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
763 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
764 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
767 dnl =================================================================
769 dnl =================================================================
773 dnl =================================================================
775 dnl =================================================================
777 AC_ARG_ENABLE(toggle,
778 [ --disable-toggle Don't support temporary disable],
779 [if test $enableval = yes; then
780 AC_DEFINE(FEATURE_TOGGLE)
781 fi],AC_DEFINE(FEATURE_TOGGLE))
784 [ --disable-force Don't allow single-page disable],
785 [if test $enableval = yes; then
786 AC_DEFINE(FEATURE_FORCE_LOAD)
787 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
789 AC_ARG_ENABLE(fast-redirects,
790 [ --disable-fast-redirects Don't support fast redirects],
791 [if test $enableval = yes; then
792 AC_DEFINE(FEATURE_FAST_REDIRECTS)
793 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
795 AC_ARG_ENABLE(killpopup,
796 [ --disable-killpopup Never block popups],
797 [if test $enableval = yes; then
798 AC_DEFINE(FEATURE_KILL_POPUPS)
799 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
802 [ --disable-stats Don't keep statistics],
803 [if test $enableval = yes; then
804 AC_DEFINE(FEATURE_STATISTICS)
805 fi],AC_DEFINE(FEATURE_STATISTICS))
807 AC_ARG_ENABLE(ie-images,
808 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
809 Explorer is for an image or HTML.],
810 [if test $enableval = yes; then
811 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
813 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
815 AC_ARG_ENABLE(image-blocking,
816 [ --disable-image-blocking Don't try to figure out whether a request is
817 for an image or HTML - assume HTML.],
818 [if test $enableval = yes; then
819 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
821 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
823 AC_ARG_ENABLE(acl-files,
824 [ --disable-acl-files Prevents the use of ACL files to control access to
825 the proxy by IP address.],
826 [if test $enableval = yes; then
827 AC_DEFINE(FEATURE_ACL)
829 AC_DEFINE(FEATURE_ACL))
831 AC_ARG_ENABLE(trust-files,
832 [ --disable-trust-files Prevents the use of trust files.],
833 [if test $enableval = yes; then
834 AC_DEFINE(FEATURE_TRUST)
836 AC_DEFINE(FEATURE_TRUST))
838 AC_ARG_ENABLE(jar-files,
839 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
840 [if test $enableval = yes; then
841 AC_DEFINE(FEATURE_COOKIE_JAR)
843 AC_DEFINE(FEATURE_COOKIE_JAR))
845 AC_ARG_ENABLE(editor,
846 [ --disable-editor Prevents the use of the web-based actions file
847 editor and web-based temporary disable setting.],
848 [if test $enableval = yes; then
849 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
851 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
853 AC_ARG_ENABLE(no-gifs,
854 [ --enable-no-gifs Use politically correct PNG format instead of GIF
855 for built-in images. May not work with all browsers.],
856 [if test $enableval = yes; then
857 AC_DEFINE(FEATURE_NO_GIFS)
861 dnl pcre/pcrs is needed for CGI anyway, so
862 dnl the choice is only between static and
865 AC_ARG_ENABLE(regex-matching,
866 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
867 pattern matching (default)
868 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
869 matching (-> bigger binary)
870 --disable-regex-matching Don't use regex matching, compare URL
871 prefix instead (won't shrink birary)],
872 [ regex_matching=$enableval ],
873 [ regex_matching=pcre ])
875 AC_ARG_ENABLE(dynamic-pcre,
876 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
877 libpcre is available],
878 [ if test $enableval = "no"; then have_pcre=no; fi ])
880 AC_ARG_ENABLE(dynamic-pcrs,
881 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
882 libpcrs is available],
883 [ if test $enableval = "no"; then have_pcrs=no; fi ])
886 # Is the regex URL matching based on libpcreposix, but we
887 # don't have that library?
889 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
890 dont_miss_pcreposix=yes
892 dont_miss_pcreposix=no
895 # If we have libpcre and either we also have pcreposix or
896 # we don't need pcreposix, then link pcre dynamically; else
897 # build it and link statically
899 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
905 echo "using built-in static pcre"
907 AC_DEFINE(STATIC_PCRE)
911 # If we have libpcrs and pcre is linked dynamically
912 # then also link pcrs dynamically, else build and link
915 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
920 echo "using built-in static pcrs"
921 AC_DEFINE(STATIC_PCRS)
925 # Which method should be used for URL matching?
926 # pcre, gnu regex or prefix matching?
928 if test $regex_matching = "gnu"; then
929 echo "using gnu regex for URL matching"
933 elif test $regex_matching = "pcre"; then
934 echo "using pcre regex for URL matching"
935 AC_DEFINE(REGEX_PCRE)
938 if test $pcre_dyn = "yes"; then
939 LIBS="$LIBS -lpcreposix"
942 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
947 AC_SUBST(GNU_REGEX_ONLY)
948 AC_SUBST(PCRE_REGEX_ONLY)
949 AC_SUBST(STATIC_PCRE_ONLY)
950 AC_SUBST(STATIC_PCRS_ONLY)
952 dnl =================================================================
953 dnl Final cleanup and output
954 dnl =================================================================
956 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
958 CFLAGS=$old_CFLAGS_nospecial
959 AC_SUBST(SPECIAL_CFLAGS)
961 AC_SUBST(PTHREAD_LIB)
963 AC_OUTPUT(GNUmakefile)