1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.35 2002/03/06 21:55:52 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.35 2002/03/06 21:55:52 morcego
32 dnl New configure option: --with-docbook=(yes|no|directory)
33 dnl Preliminary new platform detection code included. Will work with the
34 dnl old one for now. No use just trowing it away
36 dnl Revision 1.34 2002/03/06 20:57:00 morcego
37 dnl Fixing detection of stylesheets on SuSe.
39 dnl Revision 1.33 2002/03/05 17:31:11 morcego
40 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
42 dnl Revision 1.32 2002/03/05 14:07:43 morcego
43 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
44 dnl (based on sugestion by Sarantis Paskalis)
46 dnl Revision 1.31 2002/03/05 13:43:28 morcego
47 dnl Checking for text browser, so redhat-dok can work.
49 dnl Revision 1.30 2002/03/04 17:58:01 oes
50 dnl Deleted _DEBUG and PID_FILE_PATH
52 dnl Revision 1.29 2002/02/28 14:20:53 oes
53 dnl Fixed detection of gethost*_r functions on Solaris
55 dnl Revision 1.28 2002/02/27 15:02:38 oes
56 dnl Incremented version number
58 dnl Revision 1.27 2002/01/10 12:35:18 oes
59 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
60 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
61 dnl Is there a better way?
63 dnl Revision 1.26 2002/01/09 14:29:49 oes
64 dnl - Added AC_CHECK_FUNC tests for the availability of
65 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
66 dnl localtime_r, as well as AC_TRY_COMPILE tests to
67 dnl determine their signatures.
69 dnl - Fixed a bug with the init of CFLAGS that was
70 dnl reported by barsnick
72 dnl Revision 1.25 2002/01/04 15:27:18 oes
73 dnl Changed quoting of CODE_STATUS for use in make
75 dnl Revision 1.24 2001/12/30 14:07:31 steudten
76 dnl - Add signal handling (unix)
77 dnl - Add SIGHUP handler (unix)
78 dnl - Add creation of pidfile (unix)
79 dnl - Add action 'top' in rc file (RH)
80 dnl - Add entry 'SIGNALS' to manpage
81 dnl - Add exit message to logfile (unix)
83 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
84 dnl Change from "alpha" to "beta" in configure.in
86 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
87 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
88 dnl make break in a more obvious way.
90 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
91 dnl Bumping version number to 2.9.10
93 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
94 dnl Support for FEATURE_CGI_EDIT_ACTIONS
96 dnl Revision 1.19 2001/10/07 15:33:14 oes
97 dnl Removed FEATURE_DENY_GZIP
98 dnl Bumped up version number
100 dnl Revision 1.18 2001/09/13 13:10:24 steudten
102 dnl PreWork for Debug Interface.
103 dnl Add new option "--with-debug" to enable debugging (flags aso.)
105 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
106 dnl Mac OSX (Darwin) support added.
108 dnl Revision 1.16 2001/09/12 22:55:45 joergs
109 dnl AmigaOS support added.
111 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
113 dnl OS/2 port: update autoconf'd support for the platform.
115 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
116 dnl Fixing Solaris build (I hope) and tidying up #defines:
117 dnl - All feature #defines are now of the form FEATURE_xxx
118 dnl - Permanently turned off WIN_GUI_EDIT
119 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
121 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
122 dnl Major changes to build system in order to fix these bugs:
123 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
124 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
125 dnl which shared libraries are available
126 dnl - Solaris support (?) (Not tested under Solaris yet)
128 dnl Revision 1.12 2001/07/25 19:16:27 oes
129 dnl Bumping version number to 2.9.8
131 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
132 dnl Bumping version number to 2.9.7
134 dnl Revision 1.10 2001/07/18 17:25:04 oes
137 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
138 dnl Added support for linking with POSIX threads library
140 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
141 dnl Renaming #define STATIC to STATIC_PCRE
142 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
143 dnl POSIX threads support.
145 dnl Revision 1.7 2001/07/13 13:58:05 oes
146 dnl Completely reorganized the selection scheme for
147 dnl pcre, pcreposix, pcrs and gnu_regex:
149 dnl The presence of shared pcre, pcreposix or pcrs
150 dnl libraried is now autodetected. Additionally, the
151 dnl user can enforce using the built-in static variants
152 dnl by specifying --disable-dynamic-(pcre|pcrs).
153 dnl Care is taken to avoid that pcre is dyn, while pcreposix
154 dnl is static, if both are used and that pcrs is static if
157 dnl The choice between pcre, gnu or no regex for actionsfile
158 dnl URL matching is now via
159 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
160 dnl default being pcre.
162 dnl Revision 1.6 2001/06/29 21:56:40 oes
165 dnl Revision 1.5 2001/06/29 13:26:27 oes
166 dnl Introduced #define CODE_STATUS
168 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
169 dnl Unified blocklist/imagelist/permissionslist.
170 dnl File format is still under discussion, but the internal changes
171 dnl are (mostly) done.
173 dnl Also modified interceptor behaviour:
174 dnl - We now intercept all URLs beginning with one of the following
175 dnl prefixes (and *only* these prefixes):
177 dnl * http://ijbswa.sf.net/config/
178 dnl * http://ijbswa.sourceforge.net/config/
179 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
180 dnl - Internal changes so that intercepted and fast redirect pages
181 dnl are not replaced with an image.
182 dnl - Interceptors now have the option to send a binary page direct
183 dnl to the client. (i.e. ijb-send-banner uses this)
184 dnl - Implemented show-url-info interceptor. (Which is why I needed
185 dnl the above interceptors changes - a typical URL is
186 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
187 dnl The previous mechanism would not have intercepted that, and
188 dnl if it had been intercepted then it then it would have replaced
189 dnl it with an image.)
191 dnl Revision 1.3 2001/05/22 18:46:04 oes
193 dnl - Enabled filtering banners by size rather than URL
194 dnl by adding patterns that replace all standard banner
195 dnl sizes with the "Junkbuster" gif to the re_filterfile
197 dnl - Enabled filtering WebBugs by providing a pattern
198 dnl which kills all 1x1 images
200 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
201 dnl which is selected by the (nonstandard and therefore
202 dnl capital) letter 'U' in the option string.
203 dnl It causes the quantifiers to be ungreedy by default.
204 dnl Appending a ? turns back to greedy (!).
206 dnl - Added a new interceptor ijb-send-banner, which
207 dnl sends back the "Junkbuster" gif. Without imagelist or
208 dnl MSIE detection support, or if tinygif = 1, or the
209 dnl URL isn't recognized as an imageurl, a lame HTML
210 dnl explanation is sent instead.
212 dnl - Added new feature, which permits blocking remote
213 dnl script redirects and firing back a local redirect
215 dnl The feature is conditionally compiled, i.e. it
216 dnl can be disabled with --disable-fast-redirects,
217 dnl plus it must be activated by a "fast-redirects"
218 dnl line in the config file, has its own log level
219 dnl and of course wants to be displayed by show-proxy-args
220 dnl Note: Boy, all the #ifdefs in 1001 locations and
221 dnl all the fumbling with configure.in and acconfig.h
222 dnl were *way* more work than the feature itself :-(
224 dnl - Because a generic redirect template was needed for
225 dnl this, tinygif = 3 now uses the same.
227 dnl - Moved GIFs, and other static HTTP response templates
230 dnl - Some minor fixes
232 dnl - Removed some >400 CRs again (Jon, you really worked
235 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
236 dnl Version 2.9.4 checkin.
237 dnl - Merged popupfile and cookiefile, and added control over PCRS
238 dnl filtering, in new "permissionsfile".
239 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
240 dnl file error you now get a message box (in the Win32 GUI) rather
241 dnl than the program exiting with no explanation.
242 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
244 dnl - Removed tabs from "config"
245 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
246 dnl - Bumped up version number.
248 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
249 dnl Initial import of version 2.9.3 source tree
254 dnl =================================================================
255 dnl AutoConf Initialization
256 dnl =================================================================
258 AC_REVISION($Revision: 1.35 $)
260 AC_CONFIG_HEADER(config.h)
265 AC_ARG_WITH(docbook, dnl
266 --with-docbook=[[yes|no|directory]]
267 Enable docbook documentation creation
268 (default = yes, for gnu and linux),[dnl
269 case "$with_docbook" in
279 dnl =================================================================
280 dnl Application version number
281 dnl =================================================================
288 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
289 dnl used for CGI output
291 dnl =================================================================
292 dnl Substitute the version numbers
293 dnl =================================================================
295 AC_SUBST(VERSION_MAJOR)
296 AC_SUBST(VERSION_MINOR)
297 AC_SUBST(VERSION_POINT)
298 AC_SUBST(CODE_STATUS)
301 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
302 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
303 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
304 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
305 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
307 dnl =================================================================
308 dnl Checks for programs needed to build.
309 dnl =================================================================
316 dnl RANLIB is for PCRE:
319 AC_CHECK_PROG(GDB,gdb,yes,no)
321 dnl =================================================================
322 dnl debug, gcc and gdb support
323 dnl =================================================================
326 [ --with-debug Enable debug mode],
328 if test "x$withval" != "$xno" ; then
329 if test $ac_cv_prog_cc_g = yes; then
330 if test "$GCC" = yes; then
336 CFLAGS="$CFLAGS -Wshadow -Wconversion"
344 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
345 if test "$GCC" = yes; then
354 dnl =================================================================
355 dnl additional gcc flags
356 dnl =================================================================
359 CFLAGS="-pipe $CFLAGS"
363 dnl =================================================================
365 dnl =================================================================
367 dnl Must do this first.
369 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
370 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
371 dnl the compiler will use completely different sets of library
372 dnl and include files.
374 dnl =================================================================
379 if test "$MINGW32" = "yes"; then
382 if test "$CYGWIN" = "yes"; then
389 if test $dodk = auto; then
391 if test $target_type = unix; then
400 dnl Decide what to do based on target_type
401 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
402 dnl This is because we don't know yet whether pthread is enabled.
404 AC_ARG_ENABLE(mingw32,
405 [ --enable-mingw32 Use mingw32 for a Windows GUI],
406 [if test $enableval = yes; then
410 if test $target_type = mingw; then
412 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
413 PTHREAD_LIB=-lpthreadGC
414 echo "Using mingw32 (Win32 GUI)"
417 if test $target_type = cygwin; then
418 SPECIAL_CFLAGS="-mno-win32"
420 echo "Using Cygnus (Win32 command line)"
423 PTHREAD_LIB=-lpthread
428 dnl Checking which text html browser we have avaliable
429 if test $dodk != no; then
430 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
431 if test "$WDUMP" = false; then
432 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
437 dnl If we use rpm, we need to check where %_topdir is
438 AC_CHECK_PROGS(RPMBIN,rpm,false)
439 if test $RPMBIN != false; then
440 RPM_BASE=`rpm --eval "%{_topdir}"`
441 if test "$RPM_BASE" = ""; then
442 RPM_BASE=/usr/src/redhat
447 dnl Check for jade, so we can build the documentation
448 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
451 dnl Checking for the docbook.dsl stylesheet file
452 if test $dodk = yes; then
453 if test $DKPREFIX = none; then
454 AC_CHECK_FILE(/usr/share/sgml/docbook/dsssl-stylesheets/html/docbook.dsl,DKPREFIX=/usr/share/sgml/docbook/dsssl-stylesheets,AC_CHECK_FILE(/usr/share/sgml/docbkdsl/html/docbook.dsl,DKPREFIX=/usr/share/sgml/docbkdsl))
459 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
460 old_CFLAGS_nospecial=$CFLAGS
461 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
463 # Hack to force AutoConf to use the CFLAGS we just set
464 dnl Warning: This may break with a future version of Autoconf
465 dnl Tested with autoconf 2.13
466 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
467 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
468 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
471 dnl =================================================================
473 dnl =================================================================
475 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
477 AC_ARG_ENABLE(pthread,
478 [ --disable-pthread Don't use POSIX threads (pthreads)],
479 [if test $enableval = no; then
484 if test $have_pthread = yes; then
486 AC_DEFINE(FEATURE_PTHREAD)
487 echo Using POSIX threads
488 if test "$GCC" = "yes"; then
489 # Set a GCC specific switch:
490 if test "$target_type" = "unix"; then
491 # This compiler switch makes Linux thread-safe
492 # Don't know about other OS's? Is this switch
495 SPECIAL_CFLAGS="-pthread"
500 echo Using native threads
503 AC_SUBST(PTHREAD_ONLY)
505 dnl =================================================================
506 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
507 dnl gmtime and localtime
508 dnl =================================================================
510 dnl Next line needed to find the gethost*_r functions on Solaris
511 AC_CHECK_LIB(nsl, gethostbyname)
513 AC_CHECK_FUNC(gethostbyaddr_r, [
514 AC_MSG_CHECKING([signature of gethostbyaddr_r])
518 struct hostent *h, *hp;
521 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
523 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
524 AC_MSG_RESULT([8 args])
532 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
534 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
535 AC_MSG_RESULT([7 args])
540 struct hostent_data *d;
544 (void) gethostbyaddr_r(a, l, t, h, d)
546 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
547 AC_MSG_RESULT([5 args])
549 AC_MSG_RESULT(unrecognised)
557 AC_CHECK_FUNC(gethostbyname_r, [
558 AC_MSG_CHECKING([signature of gethostbyname_r])
562 struct hostent *h, *r;
565 (void) gethostbyname_r(n, h, b, bl, &r, &e)
567 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
568 AC_MSG_RESULT([6 args])
576 (void) gethostbyname_r(n, h, b, bl, &e)
578 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
579 AC_MSG_RESULT([5 args])
584 struct hostent_data *d;
587 (void) gethostbyname_r(n, h, d)
589 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
590 AC_MSG_RESULT([3 args])
592 AC_MSG_RESULT(unrecognised)
600 AC_CHECK_FUNC(gmtime_r, [
601 AC_MSG_CHECKING([signature of gmtime_r])
607 (void) gmtime_r(t, tm)
610 AC_DEFINE(HAVE_GMTIME_R)
612 AC_MSG_RESULT(unrecognised)
618 AC_CHECK_FUNC(localtime_r, [
619 AC_MSG_CHECKING([signature of localtime_r])
625 (void) localtime_r(t, tm)
628 AC_DEFINE(HAVE_LOCALTIME_R)
630 AC_MSG_RESULT(unrecognised)
636 dnl =================================================================
638 dnl FIXME: Not tested on Solaris yet...
639 dnl =================================================================
645 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
646 AC_DEFINE(__EXTENSIONS__)
647 if test "$GCC" = "yes"; then
648 # Set a GCC specific switch:
649 # This compiler switch makes Solaris thread-safe
651 SPECIAL_CFLAGS="-pthreads"
653 # What do we do without GCC? Guess this:
654 SPECIAL_CFLAGS="-D_REENTRANT"
661 dnl =================================================================
663 dnl =================================================================
666 *-os2-emx*) SOCKET_LIB=-lsocket
672 dnl =================================================================
674 dnl =================================================================
679 *-amigaos) AMIGAOS_ONLY=
683 AC_SUBST(AMIGAOS_ONLY)
685 dnl =================================================================
686 dnl Check for standard compiler stuff
687 dnl =================================================================
694 AC_CHECK_SIZEOF(int, 4)
695 AC_CHECK_SIZEOF(char *, 4)
696 AC_CHECK_SIZEOF(long, 4)
697 AC_CHECK_SIZEOF(long long, 8)
698 AC_CHECK_SIZEOF(size_t, 4)
700 dnl Checks for header files.
701 dnl AC_HEADER_SYS_WAIT
702 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
704 dnl Checks for library functions.
706 dnl AC_CHECK_FUNC(strstr)
707 dnl bcopy and memmove are for PCRE
708 AC_CHECK_FUNCS(strerror bcopy memmove)
711 dnl =================================================================
712 dnl Checks for libraries.
713 dnl =================================================================
714 dnl Note: Some systems may have the library but not the system header
715 dnl file, so we must check for both.
716 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
717 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
718 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
721 dnl =================================================================
723 dnl =================================================================
727 dnl =================================================================
729 dnl =================================================================
731 AC_ARG_ENABLE(toggle,
732 [ --disable-toggle Don't support temporary disable],
733 [if test $enableval = yes; then
734 AC_DEFINE(FEATURE_TOGGLE)
735 fi],AC_DEFINE(FEATURE_TOGGLE))
738 [ --disable-force Don't allow single-page disable],
739 [if test $enableval = yes; then
740 AC_DEFINE(FEATURE_FORCE_LOAD)
741 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
743 AC_ARG_ENABLE(fast-redirects,
744 [ --disable-fast-redirects Don't support fast redirects],
745 [if test $enableval = yes; then
746 AC_DEFINE(FEATURE_FAST_REDIRECTS)
747 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
749 AC_ARG_ENABLE(killpopup,
750 [ --disable-killpopup Never block popups],
751 [if test $enableval = yes; then
752 AC_DEFINE(FEATURE_KILL_POPUPS)
753 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
756 [ --disable-stats Don't keep statistics],
757 [if test $enableval = yes; then
758 AC_DEFINE(FEATURE_STATISTICS)
759 fi],AC_DEFINE(FEATURE_STATISTICS))
761 AC_ARG_ENABLE(ie-images,
762 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
763 Explorer is for an image or HTML.],
764 [if test $enableval = yes; then
765 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
767 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
769 AC_ARG_ENABLE(image-blocking,
770 [ --disable-image-blocking Don't try to figure out whether a request is
771 for an image or HTML - assume HTML.],
772 [if test $enableval = yes; then
773 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
775 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
777 AC_ARG_ENABLE(acl-files,
778 [ --disable-acl-files Prevents the use of ACL files to control access to
779 the proxy by IP address.],
780 [if test $enableval = yes; then
781 AC_DEFINE(FEATURE_ACL)
783 AC_DEFINE(FEATURE_ACL))
785 AC_ARG_ENABLE(trust-files,
786 [ --disable-trust-files Prevents the use of trust files.],
787 [if test $enableval = yes; then
788 AC_DEFINE(FEATURE_TRUST)
790 AC_DEFINE(FEATURE_TRUST))
792 AC_ARG_ENABLE(jar-files,
793 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
794 [if test $enableval = yes; then
795 AC_DEFINE(FEATURE_COOKIE_JAR)
797 AC_DEFINE(FEATURE_COOKIE_JAR))
799 AC_ARG_ENABLE(editor,
800 [ --disable-editor Prevents the use of the web-based actions file
801 editor and web-based temporary disable setting.],
802 [if test $enableval = yes; then
803 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
805 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
807 dnl pcre/pcrs is needed for CGI anyway, so
808 dnl the choice is only between static and
811 AC_ARG_ENABLE(regex-matching,
812 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
813 pattern matching (default)
814 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
815 matching (-> bigger binary)
816 --disable-regex-matching Don't use regex matching, compare URL
817 prefix instead (won't shrink birary)],
818 [ regex_matching=$enableval ],
819 [ regex_matching=pcre ])
821 AC_ARG_ENABLE(dynamic-pcre,
822 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
823 libpcre is available],
824 [ if test $enableval = "no"; then have_pcre=no; fi ])
826 AC_ARG_ENABLE(dynamic-pcrs,
827 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
828 libpcrs is available],
829 [ if test $enableval = "no"; then have_pcrs=no; fi ])
832 # Is the regex URL matching based on libpcreposix, but we
833 # don't have that library?
835 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
836 dont_miss_pcreposix=yes
838 dont_miss_pcreposix=no
841 # If we have libpcre and either we also have pcreposix or
842 # we don't need pcreposix, then link pcre dynamically; else
843 # build it and link statically
845 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
851 echo "using built-in static pcre"
853 AC_DEFINE(STATIC_PCRE)
857 # If we have libpcrs and pcre is linked dynamically
858 # then also link pcrs dynamically, else build and link
861 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
866 echo "using built-in static pcrs"
867 AC_DEFINE(STATIC_PCRS)
871 # Which method should be used for URL matching?
872 # pcre, gnu regex or prefix matching?
874 if test $regex_matching = "gnu"; then
875 echo "using gnu regex for URL matching"
879 elif test $regex_matching = "pcre"; then
880 echo "using pcre regex for URL matching"
881 AC_DEFINE(REGEX_PCRE)
884 if test $pcre_dyn = "yes"; then
885 LIBS="$LIBS -lpcreposix"
888 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
893 AC_SUBST(GNU_REGEX_ONLY)
894 AC_SUBST(PCRE_REGEX_ONLY)
895 AC_SUBST(STATIC_PCRE_ONLY)
896 AC_SUBST(STATIC_PCRS_ONLY)
898 dnl =================================================================
899 dnl Final cleanup and output
900 dnl =================================================================
902 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
904 CFLAGS=$old_CFLAGS_nospecial
905 AC_SUBST(SPECIAL_CFLAGS)
907 AC_SUBST(PTHREAD_LIB)
909 AC_OUTPUT(GNUmakefile)