1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.33 2002/03/05 17:31:11 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.33 2002/03/05 17:31:11 morcego
32 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
34 dnl Revision 1.32 2002/03/05 14:07:43 morcego
35 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
36 dnl (based on sugestion by Sarantis Paskalis)
38 dnl Revision 1.31 2002/03/05 13:43:28 morcego
39 dnl Checking for text browser, so redhat-dok can work.
41 dnl Revision 1.30 2002/03/04 17:58:01 oes
42 dnl Deleted _DEBUG and PID_FILE_PATH
44 dnl Revision 1.29 2002/02/28 14:20:53 oes
45 dnl Fixed detection of gethost*_r functions on Solaris
47 dnl Revision 1.28 2002/02/27 15:02:38 oes
48 dnl Incremented version number
50 dnl Revision 1.27 2002/01/10 12:35:18 oes
51 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
52 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
53 dnl Is there a better way?
55 dnl Revision 1.26 2002/01/09 14:29:49 oes
56 dnl - Added AC_CHECK_FUNC tests for the availability of
57 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
58 dnl localtime_r, as well as AC_TRY_COMPILE tests to
59 dnl determine their signatures.
61 dnl - Fixed a bug with the init of CFLAGS that was
62 dnl reported by barsnick
64 dnl Revision 1.25 2002/01/04 15:27:18 oes
65 dnl Changed quoting of CODE_STATUS for use in make
67 dnl Revision 1.24 2001/12/30 14:07:31 steudten
68 dnl - Add signal handling (unix)
69 dnl - Add SIGHUP handler (unix)
70 dnl - Add creation of pidfile (unix)
71 dnl - Add action 'top' in rc file (RH)
72 dnl - Add entry 'SIGNALS' to manpage
73 dnl - Add exit message to logfile (unix)
75 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
76 dnl Change from "alpha" to "beta" in configure.in
78 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
79 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
80 dnl make break in a more obvious way.
82 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
83 dnl Bumping version number to 2.9.10
85 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
86 dnl Support for FEATURE_CGI_EDIT_ACTIONS
88 dnl Revision 1.19 2001/10/07 15:33:14 oes
89 dnl Removed FEATURE_DENY_GZIP
90 dnl Bumped up version number
92 dnl Revision 1.18 2001/09/13 13:10:24 steudten
94 dnl PreWork for Debug Interface.
95 dnl Add new option "--with-debug" to enable debugging (flags aso.)
97 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
98 dnl Mac OSX (Darwin) support added.
100 dnl Revision 1.16 2001/09/12 22:55:45 joergs
101 dnl AmigaOS support added.
103 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
105 dnl OS/2 port: update autoconf'd support for the platform.
107 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
108 dnl Fixing Solaris build (I hope) and tidying up #defines:
109 dnl - All feature #defines are now of the form FEATURE_xxx
110 dnl - Permanently turned off WIN_GUI_EDIT
111 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
113 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
114 dnl Major changes to build system in order to fix these bugs:
115 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
116 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
117 dnl which shared libraries are available
118 dnl - Solaris support (?) (Not tested under Solaris yet)
120 dnl Revision 1.12 2001/07/25 19:16:27 oes
121 dnl Bumping version number to 2.9.8
123 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
124 dnl Bumping version number to 2.9.7
126 dnl Revision 1.10 2001/07/18 17:25:04 oes
129 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
130 dnl Added support for linking with POSIX threads library
132 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
133 dnl Renaming #define STATIC to STATIC_PCRE
134 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
135 dnl POSIX threads support.
137 dnl Revision 1.7 2001/07/13 13:58:05 oes
138 dnl Completely reorganized the selection scheme for
139 dnl pcre, pcreposix, pcrs and gnu_regex:
141 dnl The presence of shared pcre, pcreposix or pcrs
142 dnl libraried is now autodetected. Additionally, the
143 dnl user can enforce using the built-in static variants
144 dnl by specifying --disable-dynamic-(pcre|pcrs).
145 dnl Care is taken to avoid that pcre is dyn, while pcreposix
146 dnl is static, if both are used and that pcrs is static if
149 dnl The choice between pcre, gnu or no regex for actionsfile
150 dnl URL matching is now via
151 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
152 dnl default being pcre.
154 dnl Revision 1.6 2001/06/29 21:56:40 oes
157 dnl Revision 1.5 2001/06/29 13:26:27 oes
158 dnl Introduced #define CODE_STATUS
160 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
161 dnl Unified blocklist/imagelist/permissionslist.
162 dnl File format is still under discussion, but the internal changes
163 dnl are (mostly) done.
165 dnl Also modified interceptor behaviour:
166 dnl - We now intercept all URLs beginning with one of the following
167 dnl prefixes (and *only* these prefixes):
169 dnl * http://ijbswa.sf.net/config/
170 dnl * http://ijbswa.sourceforge.net/config/
171 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
172 dnl - Internal changes so that intercepted and fast redirect pages
173 dnl are not replaced with an image.
174 dnl - Interceptors now have the option to send a binary page direct
175 dnl to the client. (i.e. ijb-send-banner uses this)
176 dnl - Implemented show-url-info interceptor. (Which is why I needed
177 dnl the above interceptors changes - a typical URL is
178 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
179 dnl The previous mechanism would not have intercepted that, and
180 dnl if it had been intercepted then it then it would have replaced
181 dnl it with an image.)
183 dnl Revision 1.3 2001/05/22 18:46:04 oes
185 dnl - Enabled filtering banners by size rather than URL
186 dnl by adding patterns that replace all standard banner
187 dnl sizes with the "Junkbuster" gif to the re_filterfile
189 dnl - Enabled filtering WebBugs by providing a pattern
190 dnl which kills all 1x1 images
192 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
193 dnl which is selected by the (nonstandard and therefore
194 dnl capital) letter 'U' in the option string.
195 dnl It causes the quantifiers to be ungreedy by default.
196 dnl Appending a ? turns back to greedy (!).
198 dnl - Added a new interceptor ijb-send-banner, which
199 dnl sends back the "Junkbuster" gif. Without imagelist or
200 dnl MSIE detection support, or if tinygif = 1, or the
201 dnl URL isn't recognized as an imageurl, a lame HTML
202 dnl explanation is sent instead.
204 dnl - Added new feature, which permits blocking remote
205 dnl script redirects and firing back a local redirect
207 dnl The feature is conditionally compiled, i.e. it
208 dnl can be disabled with --disable-fast-redirects,
209 dnl plus it must be activated by a "fast-redirects"
210 dnl line in the config file, has its own log level
211 dnl and of course wants to be displayed by show-proxy-args
212 dnl Note: Boy, all the #ifdefs in 1001 locations and
213 dnl all the fumbling with configure.in and acconfig.h
214 dnl were *way* more work than the feature itself :-(
216 dnl - Because a generic redirect template was needed for
217 dnl this, tinygif = 3 now uses the same.
219 dnl - Moved GIFs, and other static HTTP response templates
222 dnl - Some minor fixes
224 dnl - Removed some >400 CRs again (Jon, you really worked
227 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
228 dnl Version 2.9.4 checkin.
229 dnl - Merged popupfile and cookiefile, and added control over PCRS
230 dnl filtering, in new "permissionsfile".
231 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
232 dnl file error you now get a message box (in the Win32 GUI) rather
233 dnl than the program exiting with no explanation.
234 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
236 dnl - Removed tabs from "config"
237 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
238 dnl - Bumped up version number.
240 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
241 dnl Initial import of version 2.9.3 source tree
246 dnl =================================================================
247 dnl AutoConf Initialization
248 dnl =================================================================
250 AC_REVISION($Revision: 1.33 $)
252 AC_CONFIG_HEADER(config.h)
256 dnl =================================================================
257 dnl Application version number
258 dnl =================================================================
265 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
266 dnl used for CGI output
268 dnl =================================================================
269 dnl Substitute the version numbers
270 dnl =================================================================
272 AC_SUBST(VERSION_MAJOR)
273 AC_SUBST(VERSION_MINOR)
274 AC_SUBST(VERSION_POINT)
275 AC_SUBST(CODE_STATUS)
278 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
279 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
280 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
281 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
282 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
284 dnl =================================================================
285 dnl Checks for programs needed to build.
286 dnl =================================================================
293 dnl RANLIB is for PCRE:
296 AC_CHECK_PROG(GDB,gdb,yes,no)
298 dnl =================================================================
299 dnl debug, gcc and gdb support
300 dnl =================================================================
303 [ --with-debug Enable debug mode],
305 if test "x$withval" != "$xno" ; then
306 if test $ac_cv_prog_cc_g = yes; then
307 if test "$GCC" = yes; then
313 CFLAGS="$CFLAGS -Wshadow -Wconversion"
321 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
322 if test "$GCC" = yes; then
331 dnl =================================================================
332 dnl additional gcc flags
333 dnl =================================================================
336 CFLAGS="-pipe $CFLAGS"
340 dnl =================================================================
342 dnl =================================================================
344 dnl Must do this first.
346 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
347 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
348 dnl the compiler will use completely different sets of library
349 dnl and include files.
351 dnl =================================================================
356 if test "$MINGW32" = "yes"; then
359 if test "$CYGWIN" = "yes"; then
366 dnl Decide what to do based on target_type
367 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
368 dnl This is because we don't know yet whether pthread is enabled.
370 AC_ARG_ENABLE(mingw32,
371 [ --enable-mingw32 Use mingw32 for a Windows GUI],
372 [if test $enableval = yes; then
376 if test $target_type = mingw; then
378 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
379 PTHREAD_LIB=-lpthreadGC
380 echo "Using mingw32 (Win32 GUI)"
383 if test $target_type = cygwin; then
384 SPECIAL_CFLAGS="-mno-win32"
386 echo "Using Cygnus (Win32 command line)"
389 PTHREAD_LIB=-lpthread
394 dnl Checking which text html browser we have avaliable
395 if test $target_type = unix; then
396 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
397 if test "$WDUMP" = false; then
398 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
403 dnl If we use rpm, we need to check where %_topdir is
404 AC_CHECK_PROGS(RPMBIN,rpm,false)
405 if test $RPMBIN != false; then
406 RPM_BASE=`rpm --eval "%{_topdir}"`
407 if test "$RPM_BASE" = ""; then
408 RPM_BASE=/usr/src/redhat
413 dnl Check for jade, so we can build the documentation
414 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
417 dnl Checking for the docbook.dsl stylesheet file
419 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))
422 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
423 old_CFLAGS_nospecial=$CFLAGS
424 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
426 # Hack to force AutoConf to use the CFLAGS we just set
427 dnl Warning: This may break with a future version of Autoconf
428 dnl Tested with autoconf 2.13
429 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
430 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
431 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
434 dnl =================================================================
436 dnl =================================================================
438 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
440 AC_ARG_ENABLE(pthread,
441 [ --disable-pthread Don't use POSIX threads (pthreads)],
442 [if test $enableval = no; then
447 if test $have_pthread = yes; then
449 AC_DEFINE(FEATURE_PTHREAD)
450 echo Using POSIX threads
451 if test "$GCC" = "yes"; then
452 # Set a GCC specific switch:
453 if test "$target_type" = "unix"; then
454 # This compiler switch makes Linux thread-safe
455 # Don't know about other OS's? Is this switch
458 SPECIAL_CFLAGS="-pthread"
463 echo Using native threads
466 AC_SUBST(PTHREAD_ONLY)
468 dnl =================================================================
469 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
470 dnl gmtime and localtime
471 dnl =================================================================
473 dnl Next line needed to find the gethost*_r functions on Solaris
474 AC_CHECK_LIB(nsl, gethostbyname)
476 AC_CHECK_FUNC(gethostbyaddr_r, [
477 AC_MSG_CHECKING([signature of gethostbyaddr_r])
481 struct hostent *h, *hp;
484 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
486 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
487 AC_MSG_RESULT([8 args])
495 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
497 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
498 AC_MSG_RESULT([7 args])
503 struct hostent_data *d;
507 (void) gethostbyaddr_r(a, l, t, h, d)
509 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
510 AC_MSG_RESULT([5 args])
512 AC_MSG_RESULT(unrecognised)
520 AC_CHECK_FUNC(gethostbyname_r, [
521 AC_MSG_CHECKING([signature of gethostbyname_r])
525 struct hostent *h, *r;
528 (void) gethostbyname_r(n, h, b, bl, &r, &e)
530 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
531 AC_MSG_RESULT([6 args])
539 (void) gethostbyname_r(n, h, b, bl, &e)
541 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
542 AC_MSG_RESULT([5 args])
547 struct hostent_data *d;
550 (void) gethostbyname_r(n, h, d)
552 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
553 AC_MSG_RESULT([3 args])
555 AC_MSG_RESULT(unrecognised)
563 AC_CHECK_FUNC(gmtime_r, [
564 AC_MSG_CHECKING([signature of gmtime_r])
570 (void) gmtime_r(t, tm)
573 AC_DEFINE(HAVE_GMTIME_R)
575 AC_MSG_RESULT(unrecognised)
581 AC_CHECK_FUNC(localtime_r, [
582 AC_MSG_CHECKING([signature of localtime_r])
588 (void) localtime_r(t, tm)
591 AC_DEFINE(HAVE_LOCALTIME_R)
593 AC_MSG_RESULT(unrecognised)
599 dnl =================================================================
601 dnl FIXME: Not tested on Solaris yet...
602 dnl =================================================================
608 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
609 AC_DEFINE(__EXTENSIONS__)
610 if test "$GCC" = "yes"; then
611 # Set a GCC specific switch:
612 # This compiler switch makes Solaris thread-safe
614 SPECIAL_CFLAGS="-pthreads"
616 # What do we do without GCC? Guess this:
617 SPECIAL_CFLAGS="-D_REENTRANT"
624 dnl =================================================================
626 dnl =================================================================
629 *-os2-emx*) SOCKET_LIB=-lsocket
635 dnl =================================================================
637 dnl =================================================================
642 *-amigaos) AMIGAOS_ONLY=
646 AC_SUBST(AMIGAOS_ONLY)
648 dnl =================================================================
649 dnl Check for standard compiler stuff
650 dnl =================================================================
657 AC_CHECK_SIZEOF(int, 4)
658 AC_CHECK_SIZEOF(char *, 4)
659 AC_CHECK_SIZEOF(long, 4)
660 AC_CHECK_SIZEOF(long long, 8)
661 AC_CHECK_SIZEOF(size_t, 4)
663 dnl Checks for header files.
664 dnl AC_HEADER_SYS_WAIT
665 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
667 dnl Checks for library functions.
669 dnl AC_CHECK_FUNC(strstr)
670 dnl bcopy and memmove are for PCRE
671 AC_CHECK_FUNCS(strerror bcopy memmove)
674 dnl =================================================================
675 dnl Checks for libraries.
676 dnl =================================================================
677 dnl Note: Some systems may have the library but not the system header
678 dnl file, so we must check for both.
679 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
680 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
681 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
684 dnl =================================================================
686 dnl =================================================================
690 dnl =================================================================
692 dnl =================================================================
694 AC_ARG_ENABLE(toggle,
695 [ --disable-toggle Don't support temporary disable],
696 [if test $enableval = yes; then
697 AC_DEFINE(FEATURE_TOGGLE)
698 fi],AC_DEFINE(FEATURE_TOGGLE))
701 [ --disable-force Don't allow single-page disable],
702 [if test $enableval = yes; then
703 AC_DEFINE(FEATURE_FORCE_LOAD)
704 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
706 AC_ARG_ENABLE(fast-redirects,
707 [ --disable-fast-redirects Don't support fast redirects],
708 [if test $enableval = yes; then
709 AC_DEFINE(FEATURE_FAST_REDIRECTS)
710 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
712 AC_ARG_ENABLE(killpopup,
713 [ --disable-killpopup Never block popups],
714 [if test $enableval = yes; then
715 AC_DEFINE(FEATURE_KILL_POPUPS)
716 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
719 [ --disable-stats Don't keep statistics],
720 [if test $enableval = yes; then
721 AC_DEFINE(FEATURE_STATISTICS)
722 fi],AC_DEFINE(FEATURE_STATISTICS))
724 AC_ARG_ENABLE(ie-images,
725 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
726 Explorer is for an image or HTML.],
727 [if test $enableval = yes; then
728 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
730 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
732 AC_ARG_ENABLE(image-blocking,
733 [ --disable-image-blocking Don't try to figure out whether a request is
734 for an image or HTML - assume HTML.],
735 [if test $enableval = yes; then
736 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
738 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
740 AC_ARG_ENABLE(acl-files,
741 [ --disable-acl-files Prevents the use of ACL files to control access to
742 the proxy by IP address.],
743 [if test $enableval = yes; then
744 AC_DEFINE(FEATURE_ACL)
746 AC_DEFINE(FEATURE_ACL))
748 AC_ARG_ENABLE(trust-files,
749 [ --disable-trust-files Prevents the use of trust files.],
750 [if test $enableval = yes; then
751 AC_DEFINE(FEATURE_TRUST)
753 AC_DEFINE(FEATURE_TRUST))
755 AC_ARG_ENABLE(jar-files,
756 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
757 [if test $enableval = yes; then
758 AC_DEFINE(FEATURE_COOKIE_JAR)
760 AC_DEFINE(FEATURE_COOKIE_JAR))
762 AC_ARG_ENABLE(editor,
763 [ --disable-editor Prevents the use of the web-based actions file
764 editor and web-based temporary disable setting.],
765 [if test $enableval = yes; then
766 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
768 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
770 dnl pcre/pcrs is needed for CGI anyway, so
771 dnl the choice is only between static and
774 AC_ARG_ENABLE(regex-matching,
775 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
776 pattern matching (default)
777 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
778 matching (-> bigger binary)
779 --disable-regex-matching Don't use regex matching, compare URL
780 prefix instead (won't shrink birary)],
781 [ regex_matching=$enableval ],
782 [ regex_matching=pcre ])
784 AC_ARG_ENABLE(dynamic-pcre,
785 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
786 libpcre is available],
787 [ if test $enableval = "no"; then have_pcre=no; fi ])
789 AC_ARG_ENABLE(dynamic-pcrs,
790 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
791 libpcrs is available],
792 [ if test $enableval = "no"; then have_pcrs=no; fi ])
795 # Is the regex URL matching based on libpcreposix, but we
796 # don't have that library?
798 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
799 dont_miss_pcreposix=yes
801 dont_miss_pcreposix=no
804 # If we have libpcre and either we also have pcreposix or
805 # we don't need pcreposix, then link pcre dynamically; else
806 # build it and link statically
808 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
814 echo "using built-in static pcre"
816 AC_DEFINE(STATIC_PCRE)
820 # If we have libpcrs and pcre is linked dynamically
821 # then also link pcrs dynamically, else build and link
824 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
829 echo "using built-in static pcrs"
830 AC_DEFINE(STATIC_PCRS)
834 # Which method should be used for URL matching?
835 # pcre, gnu regex or prefix matching?
837 if test $regex_matching = "gnu"; then
838 echo "using gnu regex for URL matching"
842 elif test $regex_matching = "pcre"; then
843 echo "using pcre regex for URL matching"
844 AC_DEFINE(REGEX_PCRE)
847 if test $pcre_dyn = "yes"; then
848 LIBS="$LIBS -lpcreposix"
851 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
856 AC_SUBST(GNU_REGEX_ONLY)
857 AC_SUBST(PCRE_REGEX_ONLY)
858 AC_SUBST(STATIC_PCRE_ONLY)
859 AC_SUBST(STATIC_PCRS_ONLY)
861 dnl =================================================================
862 dnl Final cleanup and output
863 dnl =================================================================
865 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
867 CFLAGS=$old_CFLAGS_nospecial
868 AC_SUBST(SPECIAL_CFLAGS)
870 AC_SUBST(PTHREAD_LIB)
872 AC_OUTPUT(GNUmakefile)