1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.32 2002/03/05 14:07:43 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.32 2002/03/05 14:07:43 morcego
32 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
33 dnl (based on sugestion by Sarantis Paskalis)
35 dnl Revision 1.31 2002/03/05 13:43:28 morcego
36 dnl Checking for text browser, so redhat-dok can work.
38 dnl Revision 1.30 2002/03/04 17:58:01 oes
39 dnl Deleted _DEBUG and PID_FILE_PATH
41 dnl Revision 1.29 2002/02/28 14:20:53 oes
42 dnl Fixed detection of gethost*_r functions on Solaris
44 dnl Revision 1.28 2002/02/27 15:02:38 oes
45 dnl Incremented version number
47 dnl Revision 1.27 2002/01/10 12:35:18 oes
48 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
49 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
50 dnl Is there a better way?
52 dnl Revision 1.26 2002/01/09 14:29:49 oes
53 dnl - Added AC_CHECK_FUNC tests for the availability of
54 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
55 dnl localtime_r, as well as AC_TRY_COMPILE tests to
56 dnl determine their signatures.
58 dnl - Fixed a bug with the init of CFLAGS that was
59 dnl reported by barsnick
61 dnl Revision 1.25 2002/01/04 15:27:18 oes
62 dnl Changed quoting of CODE_STATUS for use in make
64 dnl Revision 1.24 2001/12/30 14:07:31 steudten
65 dnl - Add signal handling (unix)
66 dnl - Add SIGHUP handler (unix)
67 dnl - Add creation of pidfile (unix)
68 dnl - Add action 'top' in rc file (RH)
69 dnl - Add entry 'SIGNALS' to manpage
70 dnl - Add exit message to logfile (unix)
72 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
73 dnl Change from "alpha" to "beta" in configure.in
75 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
76 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
77 dnl make break in a more obvious way.
79 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
80 dnl Bumping version number to 2.9.10
82 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
83 dnl Support for FEATURE_CGI_EDIT_ACTIONS
85 dnl Revision 1.19 2001/10/07 15:33:14 oes
86 dnl Removed FEATURE_DENY_GZIP
87 dnl Bumped up version number
89 dnl Revision 1.18 2001/09/13 13:10:24 steudten
91 dnl PreWork for Debug Interface.
92 dnl Add new option "--with-debug" to enable debugging (flags aso.)
94 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
95 dnl Mac OSX (Darwin) support added.
97 dnl Revision 1.16 2001/09/12 22:55:45 joergs
98 dnl AmigaOS support added.
100 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
102 dnl OS/2 port: update autoconf'd support for the platform.
104 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
105 dnl Fixing Solaris build (I hope) and tidying up #defines:
106 dnl - All feature #defines are now of the form FEATURE_xxx
107 dnl - Permanently turned off WIN_GUI_EDIT
108 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
110 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
111 dnl Major changes to build system in order to fix these bugs:
112 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
113 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
114 dnl which shared libraries are available
115 dnl - Solaris support (?) (Not tested under Solaris yet)
117 dnl Revision 1.12 2001/07/25 19:16:27 oes
118 dnl Bumping version number to 2.9.8
120 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
121 dnl Bumping version number to 2.9.7
123 dnl Revision 1.10 2001/07/18 17:25:04 oes
126 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
127 dnl Added support for linking with POSIX threads library
129 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
130 dnl Renaming #define STATIC to STATIC_PCRE
131 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
132 dnl POSIX threads support.
134 dnl Revision 1.7 2001/07/13 13:58:05 oes
135 dnl Completely reorganized the selection scheme for
136 dnl pcre, pcreposix, pcrs and gnu_regex:
138 dnl The presence of shared pcre, pcreposix or pcrs
139 dnl libraried is now autodetected. Additionally, the
140 dnl user can enforce using the built-in static variants
141 dnl by specifying --disable-dynamic-(pcre|pcrs).
142 dnl Care is taken to avoid that pcre is dyn, while pcreposix
143 dnl is static, if both are used and that pcrs is static if
146 dnl The choice between pcre, gnu or no regex for actionsfile
147 dnl URL matching is now via
148 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
149 dnl default being pcre.
151 dnl Revision 1.6 2001/06/29 21:56:40 oes
154 dnl Revision 1.5 2001/06/29 13:26:27 oes
155 dnl Introduced #define CODE_STATUS
157 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
158 dnl Unified blocklist/imagelist/permissionslist.
159 dnl File format is still under discussion, but the internal changes
160 dnl are (mostly) done.
162 dnl Also modified interceptor behaviour:
163 dnl - We now intercept all URLs beginning with one of the following
164 dnl prefixes (and *only* these prefixes):
166 dnl * http://ijbswa.sf.net/config/
167 dnl * http://ijbswa.sourceforge.net/config/
168 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
169 dnl - Internal changes so that intercepted and fast redirect pages
170 dnl are not replaced with an image.
171 dnl - Interceptors now have the option to send a binary page direct
172 dnl to the client. (i.e. ijb-send-banner uses this)
173 dnl - Implemented show-url-info interceptor. (Which is why I needed
174 dnl the above interceptors changes - a typical URL is
175 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
176 dnl The previous mechanism would not have intercepted that, and
177 dnl if it had been intercepted then it then it would have replaced
178 dnl it with an image.)
180 dnl Revision 1.3 2001/05/22 18:46:04 oes
182 dnl - Enabled filtering banners by size rather than URL
183 dnl by adding patterns that replace all standard banner
184 dnl sizes with the "Junkbuster" gif to the re_filterfile
186 dnl - Enabled filtering WebBugs by providing a pattern
187 dnl which kills all 1x1 images
189 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
190 dnl which is selected by the (nonstandard and therefore
191 dnl capital) letter 'U' in the option string.
192 dnl It causes the quantifiers to be ungreedy by default.
193 dnl Appending a ? turns back to greedy (!).
195 dnl - Added a new interceptor ijb-send-banner, which
196 dnl sends back the "Junkbuster" gif. Without imagelist or
197 dnl MSIE detection support, or if tinygif = 1, or the
198 dnl URL isn't recognized as an imageurl, a lame HTML
199 dnl explanation is sent instead.
201 dnl - Added new feature, which permits blocking remote
202 dnl script redirects and firing back a local redirect
204 dnl The feature is conditionally compiled, i.e. it
205 dnl can be disabled with --disable-fast-redirects,
206 dnl plus it must be activated by a "fast-redirects"
207 dnl line in the config file, has its own log level
208 dnl and of course wants to be displayed by show-proxy-args
209 dnl Note: Boy, all the #ifdefs in 1001 locations and
210 dnl all the fumbling with configure.in and acconfig.h
211 dnl were *way* more work than the feature itself :-(
213 dnl - Because a generic redirect template was needed for
214 dnl this, tinygif = 3 now uses the same.
216 dnl - Moved GIFs, and other static HTTP response templates
219 dnl - Some minor fixes
221 dnl - Removed some >400 CRs again (Jon, you really worked
224 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
225 dnl Version 2.9.4 checkin.
226 dnl - Merged popupfile and cookiefile, and added control over PCRS
227 dnl filtering, in new "permissionsfile".
228 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
229 dnl file error you now get a message box (in the Win32 GUI) rather
230 dnl than the program exiting with no explanation.
231 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
233 dnl - Removed tabs from "config"
234 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
235 dnl - Bumped up version number.
237 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
238 dnl Initial import of version 2.9.3 source tree
243 dnl =================================================================
244 dnl AutoConf Initialization
245 dnl =================================================================
247 AC_REVISION($Revision: 1.32 $)
249 AC_CONFIG_HEADER(config.h)
253 dnl =================================================================
254 dnl Application version number
255 dnl =================================================================
262 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
263 dnl used for CGI output
265 dnl =================================================================
266 dnl Substitute the version numbers
267 dnl =================================================================
269 AC_SUBST(VERSION_MAJOR)
270 AC_SUBST(VERSION_MINOR)
271 AC_SUBST(VERSION_POINT)
272 AC_SUBST(CODE_STATUS)
275 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
276 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
277 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
278 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
279 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
281 dnl =================================================================
282 dnl Checks for programs needed to build.
283 dnl =================================================================
290 dnl RANLIB is for PCRE:
293 AC_CHECK_PROG(GDB,gdb,yes,no)
295 dnl =================================================================
296 dnl debug, gcc and gdb support
297 dnl =================================================================
300 [ --with-debug Enable debug mode],
302 if test "x$withval" != "$xno" ; then
303 if test $ac_cv_prog_cc_g = yes; then
304 if test "$GCC" = yes; then
310 CFLAGS="$CFLAGS -Wshadow -Wconversion"
318 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
319 if test "$GCC" = yes; then
328 dnl =================================================================
329 dnl additional gcc flags
330 dnl =================================================================
333 CFLAGS="-pipe $CFLAGS"
337 dnl =================================================================
339 dnl =================================================================
341 dnl Must do this first.
343 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
344 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
345 dnl the compiler will use completely different sets of library
346 dnl and include files.
348 dnl =================================================================
353 if test "$MINGW32" = "yes"; then
356 if test "$CYGWIN" = "yes"; then
363 dnl Decide what to do based on target_type
364 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
365 dnl This is because we don't know yet whether pthread is enabled.
367 AC_ARG_ENABLE(mingw32,
368 [ --enable-mingw32 Use mingw32 for a Windows GUI],
369 [if test $enableval = yes; then
373 if test $target_type = mingw; then
375 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
376 PTHREAD_LIB=-lpthreadGC
377 echo "Using mingw32 (Win32 GUI)"
380 if test $target_type = cygwin; then
381 SPECIAL_CFLAGS="-mno-win32"
383 echo "Using Cygnus (Win32 command line)"
386 PTHREAD_LIB=-lpthread
391 dnl Checking which text html browser we have avaliable
392 if test $target_type = unix; then
393 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
394 if test "$WDUMP" = false; then
395 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
400 dnl If we use rpm, we need to check where %_topdir is
401 AC_CHECK_PROGS(RPMBIN,rpm,false)
402 if test $RPMBIN != false; then
403 RPM_BASE=`rpm --eval "%{_topdir}"`
404 if test "$RPM_BASE" = ""; then
405 RPM_BASE=/usr/src/redhat
410 dnl Check for jade, so we can build the documentation
411 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
414 dnl Checking for the docbook.dsl stylesheet file
416 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,/usr/share/sgml/docbkdsl))
419 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
420 old_CFLAGS_nospecial=$CFLAGS
421 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
423 # Hack to force AutoConf to use the CFLAGS we just set
424 dnl Warning: This may break with a future version of Autoconf
425 dnl Tested with autoconf 2.13
426 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
427 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
428 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
431 dnl =================================================================
433 dnl =================================================================
435 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
437 AC_ARG_ENABLE(pthread,
438 [ --disable-pthread Don't use POSIX threads (pthreads)],
439 [if test $enableval = no; then
444 if test $have_pthread = yes; then
446 AC_DEFINE(FEATURE_PTHREAD)
447 echo Using POSIX threads
448 if test "$GCC" = "yes"; then
449 # Set a GCC specific switch:
450 if test "$target_type" = "unix"; then
451 # This compiler switch makes Linux thread-safe
452 # Don't know about other OS's? Is this switch
455 SPECIAL_CFLAGS="-pthread"
460 echo Using native threads
463 AC_SUBST(PTHREAD_ONLY)
465 dnl =================================================================
466 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
467 dnl gmtime and localtime
468 dnl =================================================================
470 dnl Next line needed to find the gethost*_r functions on Solaris
471 AC_CHECK_LIB(nsl, gethostbyname)
473 AC_CHECK_FUNC(gethostbyaddr_r, [
474 AC_MSG_CHECKING([signature of gethostbyaddr_r])
478 struct hostent *h, *hp;
481 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
483 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
484 AC_MSG_RESULT([8 args])
492 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
494 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
495 AC_MSG_RESULT([7 args])
500 struct hostent_data *d;
504 (void) gethostbyaddr_r(a, l, t, h, d)
506 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
507 AC_MSG_RESULT([5 args])
509 AC_MSG_RESULT(unrecognised)
517 AC_CHECK_FUNC(gethostbyname_r, [
518 AC_MSG_CHECKING([signature of gethostbyname_r])
522 struct hostent *h, *r;
525 (void) gethostbyname_r(n, h, b, bl, &r, &e)
527 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
528 AC_MSG_RESULT([6 args])
536 (void) gethostbyname_r(n, h, b, bl, &e)
538 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
539 AC_MSG_RESULT([5 args])
544 struct hostent_data *d;
547 (void) gethostbyname_r(n, h, d)
549 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
550 AC_MSG_RESULT([3 args])
552 AC_MSG_RESULT(unrecognised)
560 AC_CHECK_FUNC(gmtime_r, [
561 AC_MSG_CHECKING([signature of gmtime_r])
567 (void) gmtime_r(t, tm)
570 AC_DEFINE(HAVE_GMTIME_R)
572 AC_MSG_RESULT(unrecognised)
578 AC_CHECK_FUNC(localtime_r, [
579 AC_MSG_CHECKING([signature of localtime_r])
585 (void) localtime_r(t, tm)
588 AC_DEFINE(HAVE_LOCALTIME_R)
590 AC_MSG_RESULT(unrecognised)
596 dnl =================================================================
598 dnl FIXME: Not tested on Solaris yet...
599 dnl =================================================================
605 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
606 AC_DEFINE(__EXTENSIONS__)
607 if test "$GCC" = "yes"; then
608 # Set a GCC specific switch:
609 # This compiler switch makes Solaris thread-safe
611 SPECIAL_CFLAGS="-pthreads"
613 # What do we do without GCC? Guess this:
614 SPECIAL_CFLAGS="-D_REENTRANT"
621 dnl =================================================================
623 dnl =================================================================
626 *-os2-emx*) SOCKET_LIB=-lsocket
632 dnl =================================================================
634 dnl =================================================================
639 *-amigaos) AMIGAOS_ONLY=
643 AC_SUBST(AMIGAOS_ONLY)
645 dnl =================================================================
646 dnl Check for standard compiler stuff
647 dnl =================================================================
654 AC_CHECK_SIZEOF(int, 4)
655 AC_CHECK_SIZEOF(char *, 4)
656 AC_CHECK_SIZEOF(long, 4)
657 AC_CHECK_SIZEOF(long long, 8)
658 AC_CHECK_SIZEOF(size_t, 4)
660 dnl Checks for header files.
661 dnl AC_HEADER_SYS_WAIT
662 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
664 dnl Checks for library functions.
666 dnl AC_CHECK_FUNC(strstr)
667 dnl bcopy and memmove are for PCRE
668 AC_CHECK_FUNCS(strerror bcopy memmove)
671 dnl =================================================================
672 dnl Checks for libraries.
673 dnl =================================================================
674 dnl Note: Some systems may have the library but not the system header
675 dnl file, so we must check for both.
676 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
677 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
678 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
681 dnl =================================================================
683 dnl =================================================================
687 dnl =================================================================
689 dnl =================================================================
691 AC_ARG_ENABLE(toggle,
692 [ --disable-toggle Don't support temporary disable],
693 [if test $enableval = yes; then
694 AC_DEFINE(FEATURE_TOGGLE)
695 fi],AC_DEFINE(FEATURE_TOGGLE))
698 [ --disable-force Don't allow single-page disable],
699 [if test $enableval = yes; then
700 AC_DEFINE(FEATURE_FORCE_LOAD)
701 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
703 AC_ARG_ENABLE(fast-redirects,
704 [ --disable-fast-redirects Don't support fast redirects],
705 [if test $enableval = yes; then
706 AC_DEFINE(FEATURE_FAST_REDIRECTS)
707 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
709 AC_ARG_ENABLE(killpopup,
710 [ --disable-killpopup Never block popups],
711 [if test $enableval = yes; then
712 AC_DEFINE(FEATURE_KILL_POPUPS)
713 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
716 [ --disable-stats Don't keep statistics],
717 [if test $enableval = yes; then
718 AC_DEFINE(FEATURE_STATISTICS)
719 fi],AC_DEFINE(FEATURE_STATISTICS))
721 AC_ARG_ENABLE(ie-images,
722 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
723 Explorer is for an image or HTML.],
724 [if test $enableval = yes; then
725 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
727 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
729 AC_ARG_ENABLE(image-blocking,
730 [ --disable-image-blocking Don't try to figure out whether a request is
731 for an image or HTML - assume HTML.],
732 [if test $enableval = yes; then
733 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
735 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
737 AC_ARG_ENABLE(acl-files,
738 [ --disable-acl-files Prevents the use of ACL files to control access to
739 the proxy by IP address.],
740 [if test $enableval = yes; then
741 AC_DEFINE(FEATURE_ACL)
743 AC_DEFINE(FEATURE_ACL))
745 AC_ARG_ENABLE(trust-files,
746 [ --disable-trust-files Prevents the use of trust files.],
747 [if test $enableval = yes; then
748 AC_DEFINE(FEATURE_TRUST)
750 AC_DEFINE(FEATURE_TRUST))
752 AC_ARG_ENABLE(jar-files,
753 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
754 [if test $enableval = yes; then
755 AC_DEFINE(FEATURE_COOKIE_JAR)
757 AC_DEFINE(FEATURE_COOKIE_JAR))
759 AC_ARG_ENABLE(editor,
760 [ --disable-editor Prevents the use of the web-based actions file
761 editor and web-based temporary disable setting.],
762 [if test $enableval = yes; then
763 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
765 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
767 dnl pcre/pcrs is needed for CGI anyway, so
768 dnl the choice is only between static and
771 AC_ARG_ENABLE(regex-matching,
772 [ --enable-regex-matching=pcre Use perl-compatible regex for actionsfile
773 pattern matching (default)
774 --enable-regex-matching=gnu Use gnu style regex for actionsfile pattern
775 matching (-> bigger binary)
776 --disable-regex-matching Don't use regex matching, compare URL
777 prefix instead (won't shrink birary)],
778 [ regex_matching=$enableval ],
779 [ regex_matching=pcre ])
781 AC_ARG_ENABLE(dynamic-pcre,
782 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
783 libpcre is available],
784 [ if test $enableval = "no"; then have_pcre=no; fi ])
786 AC_ARG_ENABLE(dynamic-pcrs,
787 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
788 libpcrs is available],
789 [ if test $enableval = "no"; then have_pcrs=no; fi ])
792 # Is the regex URL matching based on libpcreposix, but we
793 # don't have that library?
795 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
796 dont_miss_pcreposix=yes
798 dont_miss_pcreposix=no
801 # If we have libpcre and either we also have pcreposix or
802 # we don't need pcreposix, then link pcre dynamically; else
803 # build it and link statically
805 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
811 echo "using built-in static pcre"
813 AC_DEFINE(STATIC_PCRE)
817 # If we have libpcrs and pcre is linked dynamically
818 # then also link pcrs dynamically, else build and link
821 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
826 echo "using built-in static pcrs"
827 AC_DEFINE(STATIC_PCRS)
831 # Which method should be used for URL matching?
832 # pcre, gnu regex or prefix matching?
834 if test $regex_matching = "gnu"; then
835 echo "using gnu regex for URL matching"
839 elif test $regex_matching = "pcre"; then
840 echo "using pcre regex for URL matching"
841 AC_DEFINE(REGEX_PCRE)
844 if test $pcre_dyn = "yes"; then
845 LIBS="$LIBS -lpcreposix"
848 echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
853 AC_SUBST(GNU_REGEX_ONLY)
854 AC_SUBST(PCRE_REGEX_ONLY)
855 AC_SUBST(STATIC_PCRE_ONLY)
856 AC_SUBST(STATIC_PCRS_ONLY)
858 dnl =================================================================
859 dnl Final cleanup and output
860 dnl =================================================================
862 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
864 CFLAGS=$old_CFLAGS_nospecial
865 AC_SUBST(SPECIAL_CFLAGS)
867 AC_SUBST(PTHREAD_LIB)
869 AC_OUTPUT(GNUmakefile)