1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.34 2002/03/06 20:57:00 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.34 2002/03/06 20:57:00 morcego
32 dnl Fixing detection of stylesheets on SuSe.
34 dnl Revision 1.33 2002/03/05 17:31:11 morcego
35 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
37 dnl Revision 1.32 2002/03/05 14:07:43 morcego
38 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
39 dnl (based on sugestion by Sarantis Paskalis)
41 dnl Revision 1.31 2002/03/05 13:43:28 morcego
42 dnl Checking for text browser, so redhat-dok can work.
44 dnl Revision 1.30 2002/03/04 17:58:01 oes
45 dnl Deleted _DEBUG and PID_FILE_PATH
47 dnl Revision 1.29 2002/02/28 14:20:53 oes
48 dnl Fixed detection of gethost*_r functions on Solaris
50 dnl Revision 1.28 2002/02/27 15:02:38 oes
51 dnl Incremented version number
53 dnl Revision 1.27 2002/01/10 12:35:18 oes
54 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
55 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
56 dnl Is there a better way?
58 dnl Revision 1.26 2002/01/09 14:29:49 oes
59 dnl - Added AC_CHECK_FUNC tests for the availability of
60 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
61 dnl localtime_r, as well as AC_TRY_COMPILE tests to
62 dnl determine their signatures.
64 dnl - Fixed a bug with the init of CFLAGS that was
65 dnl reported by barsnick
67 dnl Revision 1.25 2002/01/04 15:27:18 oes
68 dnl Changed quoting of CODE_STATUS for use in make
70 dnl Revision 1.24 2001/12/30 14:07:31 steudten
71 dnl - Add signal handling (unix)
72 dnl - Add SIGHUP handler (unix)
73 dnl - Add creation of pidfile (unix)
74 dnl - Add action 'top' in rc file (RH)
75 dnl - Add entry 'SIGNALS' to manpage
76 dnl - Add exit message to logfile (unix)
78 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
79 dnl Change from "alpha" to "beta" in configure.in
81 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
82 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
83 dnl make break in a more obvious way.
85 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
86 dnl Bumping version number to 2.9.10
88 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
89 dnl Support for FEATURE_CGI_EDIT_ACTIONS
91 dnl Revision 1.19 2001/10/07 15:33:14 oes
92 dnl Removed FEATURE_DENY_GZIP
93 dnl Bumped up version number
95 dnl Revision 1.18 2001/09/13 13:10:24 steudten
97 dnl PreWork for Debug Interface.
98 dnl Add new option "--with-debug" to enable debugging (flags aso.)
100 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
101 dnl Mac OSX (Darwin) support added.
103 dnl Revision 1.16 2001/09/12 22:55:45 joergs
104 dnl AmigaOS support added.
106 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
108 dnl OS/2 port: update autoconf'd support for the platform.
110 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
111 dnl Fixing Solaris build (I hope) and tidying up #defines:
112 dnl - All feature #defines are now of the form FEATURE_xxx
113 dnl - Permanently turned off WIN_GUI_EDIT
114 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
116 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
117 dnl Major changes to build system in order to fix these bugs:
118 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
119 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
120 dnl which shared libraries are available
121 dnl - Solaris support (?) (Not tested under Solaris yet)
123 dnl Revision 1.12 2001/07/25 19:16:27 oes
124 dnl Bumping version number to 2.9.8
126 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
127 dnl Bumping version number to 2.9.7
129 dnl Revision 1.10 2001/07/18 17:25:04 oes
132 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
133 dnl Added support for linking with POSIX threads library
135 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
136 dnl Renaming #define STATIC to STATIC_PCRE
137 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
138 dnl POSIX threads support.
140 dnl Revision 1.7 2001/07/13 13:58:05 oes
141 dnl Completely reorganized the selection scheme for
142 dnl pcre, pcreposix, pcrs and gnu_regex:
144 dnl The presence of shared pcre, pcreposix or pcrs
145 dnl libraried is now autodetected. Additionally, the
146 dnl user can enforce using the built-in static variants
147 dnl by specifying --disable-dynamic-(pcre|pcrs).
148 dnl Care is taken to avoid that pcre is dyn, while pcreposix
149 dnl is static, if both are used and that pcrs is static if
152 dnl The choice between pcre, gnu or no regex for actionsfile
153 dnl URL matching is now via
154 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
155 dnl default being pcre.
157 dnl Revision 1.6 2001/06/29 21:56:40 oes
160 dnl Revision 1.5 2001/06/29 13:26:27 oes
161 dnl Introduced #define CODE_STATUS
163 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
164 dnl Unified blocklist/imagelist/permissionslist.
165 dnl File format is still under discussion, but the internal changes
166 dnl are (mostly) done.
168 dnl Also modified interceptor behaviour:
169 dnl - We now intercept all URLs beginning with one of the following
170 dnl prefixes (and *only* these prefixes):
172 dnl * http://ijbswa.sf.net/config/
173 dnl * http://ijbswa.sourceforge.net/config/
174 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
175 dnl - Internal changes so that intercepted and fast redirect pages
176 dnl are not replaced with an image.
177 dnl - Interceptors now have the option to send a binary page direct
178 dnl to the client. (i.e. ijb-send-banner uses this)
179 dnl - Implemented show-url-info interceptor. (Which is why I needed
180 dnl the above interceptors changes - a typical URL is
181 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
182 dnl The previous mechanism would not have intercepted that, and
183 dnl if it had been intercepted then it then it would have replaced
184 dnl it with an image.)
186 dnl Revision 1.3 2001/05/22 18:46:04 oes
188 dnl - Enabled filtering banners by size rather than URL
189 dnl by adding patterns that replace all standard banner
190 dnl sizes with the "Junkbuster" gif to the re_filterfile
192 dnl - Enabled filtering WebBugs by providing a pattern
193 dnl which kills all 1x1 images
195 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
196 dnl which is selected by the (nonstandard and therefore
197 dnl capital) letter 'U' in the option string.
198 dnl It causes the quantifiers to be ungreedy by default.
199 dnl Appending a ? turns back to greedy (!).
201 dnl - Added a new interceptor ijb-send-banner, which
202 dnl sends back the "Junkbuster" gif. Without imagelist or
203 dnl MSIE detection support, or if tinygif = 1, or the
204 dnl URL isn't recognized as an imageurl, a lame HTML
205 dnl explanation is sent instead.
207 dnl - Added new feature, which permits blocking remote
208 dnl script redirects and firing back a local redirect
210 dnl The feature is conditionally compiled, i.e. it
211 dnl can be disabled with --disable-fast-redirects,
212 dnl plus it must be activated by a "fast-redirects"
213 dnl line in the config file, has its own log level
214 dnl and of course wants to be displayed by show-proxy-args
215 dnl Note: Boy, all the #ifdefs in 1001 locations and
216 dnl all the fumbling with configure.in and acconfig.h
217 dnl were *way* more work than the feature itself :-(
219 dnl - Because a generic redirect template was needed for
220 dnl this, tinygif = 3 now uses the same.
222 dnl - Moved GIFs, and other static HTTP response templates
225 dnl - Some minor fixes
227 dnl - Removed some >400 CRs again (Jon, you really worked
230 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
231 dnl Version 2.9.4 checkin.
232 dnl - Merged popupfile and cookiefile, and added control over PCRS
233 dnl filtering, in new "permissionsfile".
234 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
235 dnl file error you now get a message box (in the Win32 GUI) rather
236 dnl than the program exiting with no explanation.
237 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
239 dnl - Removed tabs from "config"
240 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
241 dnl - Bumped up version number.
243 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
244 dnl Initial import of version 2.9.3 source tree
249 dnl =================================================================
250 dnl AutoConf Initialization
251 dnl =================================================================
253 AC_REVISION($Revision: 1.34 $)
255 AC_CONFIG_HEADER(config.h)
260 AC_ARG_WITH(docbook, dnl
261 --with-docbook=[[yes|no|directory]]
262 Enable docbook documentation creation
263 (default = yes, for gnu and linux),[dnl
264 case "$with_docbook" in
274 dnl =================================================================
275 dnl Application version number
276 dnl =================================================================
283 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
284 dnl used for CGI output
286 dnl =================================================================
287 dnl Substitute the version numbers
288 dnl =================================================================
290 AC_SUBST(VERSION_MAJOR)
291 AC_SUBST(VERSION_MINOR)
292 AC_SUBST(VERSION_POINT)
293 AC_SUBST(CODE_STATUS)
296 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
297 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
298 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
299 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
300 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
302 dnl =================================================================
303 dnl Checks for programs needed to build.
304 dnl =================================================================
311 dnl RANLIB is for PCRE:
314 AC_CHECK_PROG(GDB,gdb,yes,no)
316 dnl =================================================================
317 dnl debug, gcc and gdb support
318 dnl =================================================================
321 [ --with-debug Enable debug mode],
323 if test "x$withval" != "$xno" ; then
324 if test $ac_cv_prog_cc_g = yes; then
325 if test "$GCC" = yes; then
331 CFLAGS="$CFLAGS -Wshadow -Wconversion"
339 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
340 if test "$GCC" = yes; then
349 dnl =================================================================
350 dnl additional gcc flags
351 dnl =================================================================
354 CFLAGS="-pipe $CFLAGS"
358 dnl =================================================================
360 dnl =================================================================
362 dnl Must do this first.
364 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
365 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
366 dnl the compiler will use completely different sets of library
367 dnl and include files.
369 dnl =================================================================
374 if test "$MINGW32" = "yes"; then
377 if test "$CYGWIN" = "yes"; then
384 if test $dodk = dump; then
386 if test $target_type = unix; then
395 dnl Decide what to do based on target_type
396 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
397 dnl This is because we don't know yet whether pthread is enabled.
399 AC_ARG_ENABLE(mingw32,
400 [ --enable-mingw32 Use mingw32 for a Windows GUI],
401 [if test $enableval = yes; then
405 if test $target_type = mingw; then
407 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
408 PTHREAD_LIB=-lpthreadGC
409 echo "Using mingw32 (Win32 GUI)"
412 if test $target_type = cygwin; then
413 SPECIAL_CFLAGS="-mno-win32"
415 echo "Using Cygnus (Win32 command line)"
418 PTHREAD_LIB=-lpthread
423 dnl Checking which text html browser we have avaliable
424 if test $target_type = unix; then
425 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
426 if test "$WDUMP" = false; then
427 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
432 dnl If we use rpm, we need to check where %_topdir is
433 AC_CHECK_PROGS(RPMBIN,rpm,false)
434 if test $RPMBIN != false; then
435 RPM_BASE=`rpm --eval "%{_topdir}"`
436 if test "$RPM_BASE" = ""; then
437 RPM_BASE=/usr/src/redhat
442 dnl Check for jade, so we can build the documentation
443 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
446 dnl Checking for the docbook.dsl stylesheet file
447 if test $dodk = yes; then
448 if test $DKPREFIX = none; then
449 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))
454 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
455 old_CFLAGS_nospecial=$CFLAGS
456 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
458 # Hack to force AutoConf to use the CFLAGS we just set
459 dnl Warning: This may break with a future version of Autoconf
460 dnl Tested with autoconf 2.13
461 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
462 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
463 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
466 dnl =================================================================
468 dnl =================================================================
470 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
472 AC_ARG_ENABLE(pthread,
473 [ --disable-pthread Don't use POSIX threads (pthreads)],
474 [if test $enableval = no; then
479 if test $have_pthread = yes; then
481 AC_DEFINE(FEATURE_PTHREAD)
482 echo Using POSIX threads
483 if test "$GCC" = "yes"; then
484 # Set a GCC specific switch:
485 if test "$target_type" = "unix"; then
486 # This compiler switch makes Linux thread-safe
487 # Don't know about other OS's? Is this switch
490 SPECIAL_CFLAGS="-pthread"
495 echo Using native threads
498 AC_SUBST(PTHREAD_ONLY)
500 dnl =================================================================
501 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
502 dnl gmtime and localtime
503 dnl =================================================================
505 dnl Next line needed to find the gethost*_r functions on Solaris
506 AC_CHECK_LIB(nsl, gethostbyname)
508 AC_CHECK_FUNC(gethostbyaddr_r, [
509 AC_MSG_CHECKING([signature of gethostbyaddr_r])
513 struct hostent *h, *hp;
516 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
518 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
519 AC_MSG_RESULT([8 args])
527 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
529 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
530 AC_MSG_RESULT([7 args])
535 struct hostent_data *d;
539 (void) gethostbyaddr_r(a, l, t, h, d)
541 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
542 AC_MSG_RESULT([5 args])
544 AC_MSG_RESULT(unrecognised)
552 AC_CHECK_FUNC(gethostbyname_r, [
553 AC_MSG_CHECKING([signature of gethostbyname_r])
557 struct hostent *h, *r;
560 (void) gethostbyname_r(n, h, b, bl, &r, &e)
562 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
563 AC_MSG_RESULT([6 args])
571 (void) gethostbyname_r(n, h, b, bl, &e)
573 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
574 AC_MSG_RESULT([5 args])
579 struct hostent_data *d;
582 (void) gethostbyname_r(n, h, d)
584 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
585 AC_MSG_RESULT([3 args])
587 AC_MSG_RESULT(unrecognised)
595 AC_CHECK_FUNC(gmtime_r, [
596 AC_MSG_CHECKING([signature of gmtime_r])
602 (void) gmtime_r(t, tm)
605 AC_DEFINE(HAVE_GMTIME_R)
607 AC_MSG_RESULT(unrecognised)
613 AC_CHECK_FUNC(localtime_r, [
614 AC_MSG_CHECKING([signature of localtime_r])
620 (void) localtime_r(t, tm)
623 AC_DEFINE(HAVE_LOCALTIME_R)
625 AC_MSG_RESULT(unrecognised)
631 dnl =================================================================
633 dnl FIXME: Not tested on Solaris yet...
634 dnl =================================================================
640 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
641 AC_DEFINE(__EXTENSIONS__)
642 if test "$GCC" = "yes"; then
643 # Set a GCC specific switch:
644 # This compiler switch makes Solaris thread-safe
646 SPECIAL_CFLAGS="-pthreads"
648 # What do we do without GCC? Guess this:
649 SPECIAL_CFLAGS="-D_REENTRANT"
656 dnl =================================================================
658 dnl =================================================================
661 *-os2-emx*) SOCKET_LIB=-lsocket
667 dnl =================================================================
669 dnl =================================================================
674 *-amigaos) AMIGAOS_ONLY=
678 AC_SUBST(AMIGAOS_ONLY)
680 dnl =================================================================
681 dnl Check for standard compiler stuff
682 dnl =================================================================
689 AC_CHECK_SIZEOF(int, 4)
690 AC_CHECK_SIZEOF(char *, 4)
691 AC_CHECK_SIZEOF(long, 4)
692 AC_CHECK_SIZEOF(long long, 8)
693 AC_CHECK_SIZEOF(size_t, 4)
695 dnl Checks for header files.
696 dnl AC_HEADER_SYS_WAIT
697 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
699 dnl Checks for library functions.
701 dnl AC_CHECK_FUNC(strstr)
702 dnl bcopy and memmove are for PCRE
703 AC_CHECK_FUNCS(strerror bcopy memmove)
706 dnl =================================================================
707 dnl Checks for libraries.
708 dnl =================================================================
709 dnl Note: Some systems may have the library but not the system header
710 dnl file, so we must check for both.
711 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
712 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
713 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
716 dnl =================================================================
718 dnl =================================================================
722 dnl =================================================================
724 dnl =================================================================
726 AC_ARG_ENABLE(toggle,
727 [ --disable-toggle Don't support temporary disable],
728 [if test $enableval = yes; then
729 AC_DEFINE(FEATURE_TOGGLE)
730 fi],AC_DEFINE(FEATURE_TOGGLE))
733 [ --disable-force Don't allow single-page disable],
734 [if test $enableval = yes; then
735 AC_DEFINE(FEATURE_FORCE_LOAD)
736 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
738 AC_ARG_ENABLE(fast-redirects,
739 [ --disable-fast-redirects Don't support fast redirects],
740 [if test $enableval = yes; then
741 AC_DEFINE(FEATURE_FAST_REDIRECTS)
742 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
744 AC_ARG_ENABLE(killpopup,
745 [ --disable-killpopup Never block popups],
746 [if test $enableval = yes; then
747 AC_DEFINE(FEATURE_KILL_POPUPS)
748 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
751 [ --disable-stats Don't keep statistics],
752 [if test $enableval = yes; then
753 AC_DEFINE(FEATURE_STATISTICS)
754 fi],AC_DEFINE(FEATURE_STATISTICS))
756 AC_ARG_ENABLE(ie-images,
757 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
758 Explorer is for an image or HTML.],
759 [if test $enableval = yes; then
760 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
762 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
764 AC_ARG_ENABLE(image-blocking,
765 [ --disable-image-blocking Don't try to figure out whether a request is
766 for an image or HTML - assume HTML.],
767 [if test $enableval = yes; then
768 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
770 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
772 AC_ARG_ENABLE(acl-files,
773 [ --disable-acl-files Prevents the use of ACL files to control access to
774 the proxy by IP address.],
775 [if test $enableval = yes; then
776 AC_DEFINE(FEATURE_ACL)
778 AC_DEFINE(FEATURE_ACL))
780 AC_ARG_ENABLE(trust-files,
781 [ --disable-trust-files Prevents the use of trust files.],
782 [if test $enableval = yes; then
783 AC_DEFINE(FEATURE_TRUST)
785 AC_DEFINE(FEATURE_TRUST))
787 AC_ARG_ENABLE(jar-files,
788 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
789 [if test $enableval = yes; then
790 AC_DEFINE(FEATURE_COOKIE_JAR)
792 AC_DEFINE(FEATURE_COOKIE_JAR))
794 AC_ARG_ENABLE(editor,
795 [ --disable-editor Prevents the use of the web-based actions file
796 editor and web-based temporary disable setting.],
797 [if test $enableval = yes; then
798 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
800 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
802 dnl pcre/pcrs is needed for CGI anyway, so
803 dnl the choice is only between static and
806 AC_ARG_ENABLE(regex-matching,
807 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
808 pattern matching (default)
809 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
810 matching (-> bigger binary)
811 --disable-regex-matching Don't use regex matching, compare URL
812 prefix instead (won't shrink birary)],
813 [ regex_matching=$enableval ],
814 [ regex_matching=pcre ])
816 AC_ARG_ENABLE(dynamic-pcre,
817 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
818 libpcre is available],
819 [ if test $enableval = "no"; then have_pcre=no; fi ])
821 AC_ARG_ENABLE(dynamic-pcrs,
822 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
823 libpcrs is available],
824 [ if test $enableval = "no"; then have_pcrs=no; fi ])
827 # Is the regex URL matching based on libpcreposix, but we
828 # don't have that library?
830 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
831 dont_miss_pcreposix=yes
833 dont_miss_pcreposix=no
836 # If we have libpcre and either we also have pcreposix or
837 # we don't need pcreposix, then link pcre dynamically; else
838 # build it and link statically
840 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
846 echo "using built-in static pcre"
848 AC_DEFINE(STATIC_PCRE)
852 # If we have libpcrs and pcre is linked dynamically
853 # then also link pcrs dynamically, else build and link
856 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
861 echo "using built-in static pcrs"
862 AC_DEFINE(STATIC_PCRS)
866 # Which method should be used for URL matching?
867 # pcre, gnu regex or prefix matching?
869 if test $regex_matching = "gnu"; then
870 echo "using gnu regex for URL matching"
874 elif test $regex_matching = "pcre"; then
875 echo "using pcre regex for URL matching"
876 AC_DEFINE(REGEX_PCRE)
879 if test $pcre_dyn = "yes"; then
880 LIBS="$LIBS -lpcreposix"
883 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
888 AC_SUBST(GNU_REGEX_ONLY)
889 AC_SUBST(PCRE_REGEX_ONLY)
890 AC_SUBST(STATIC_PCRE_ONLY)
891 AC_SUBST(STATIC_PCRS_ONLY)
893 dnl =================================================================
894 dnl Final cleanup and output
895 dnl =================================================================
897 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
899 CFLAGS=$old_CFLAGS_nospecial
900 AC_SUBST(SPECIAL_CFLAGS)
902 AC_SUBST(PTHREAD_LIB)
904 AC_OUTPUT(GNUmakefile)