d9a7e87b34240ab2646a592c9c3c35781bd6c16b
[privoxy.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 dnl 
3 dnl $Id: configure.in,v 1.24 2001/12/30 14:07:31 steudten Exp $
4 dnl 
5 dnl Written by and Copyright (C) 2001 the SourceForge
6 dnl IJBSWA team.  http://ijbswa.sourceforge.net
7 dnl
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
11 dnl
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.
17 dnl 
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.
23 dnl 
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.
29 dnl 
30 dnl $Log: configure.in,v $
31 dnl Revision 1.24  2001/12/30 14:07:31  steudten
32 dnl - Add signal handling (unix)
33 dnl - Add SIGHUP handler (unix)
34 dnl - Add creation of pidfile (unix)
35 dnl - Add action 'top' in rc file (RH)
36 dnl - Add entry 'SIGNALS' to manpage
37 dnl - Add exit message to logfile (unix)
38 dnl
39 dnl Revision 1.23  2001/12/09 20:24:42  david__schmidt
40 dnl Change from "alpha" to "beta" in configure.in
41 dnl
42 dnl Revision 1.22  2001/12/01 11:24:01  jongfoster
43 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
44 dnl make break in a more obvious way.
45 dnl
46 dnl Revision 1.21  2001/11/30 21:35:54  jongfoster
47 dnl Bumping version number to 2.9.10
48 dnl
49 dnl Revision 1.20  2001/10/23 21:24:09  jongfoster
50 dnl Support for FEATURE_CGI_EDIT_ACTIONS
51 dnl
52 dnl Revision 1.19  2001/10/07 15:33:14  oes
53 dnl Removed FEATURE_DENY_GZIP
54 dnl Bumped up version number
55 dnl
56 dnl Revision 1.18  2001/09/13 13:10:24  steudten
57 dnl
58 dnl PreWork for Debug Interface.
59 dnl Add new option "--with-debug" to enable debugging (flags aso.)
60 dnl
61 dnl Revision 1.17  2001/09/12 23:44:55  david__schmidt
62 dnl Mac OSX (Darwin) support added.
63 dnl
64 dnl Revision 1.16  2001/09/12 22:55:45  joergs
65 dnl AmigaOS support added.
66 dnl
67 dnl Revision 1.15  2001/09/12 17:28:59  david__schmidt
68 dnl
69 dnl OS/2 port: update autoconf'd support for the platform.
70 dnl
71 dnl Revision 1.14  2001/07/30 22:12:11  jongfoster
72 dnl Fixing Solaris build (I hope) and tidying up #defines:
73 dnl - All feature #defines are now of the form FEATURE_xxx
74 dnl - Permanently turned off WIN_GUI_EDIT
75 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
76 dnl
77 dnl Revision 1.13  2001/07/29 17:09:17  jongfoster
78 dnl Major changes to build system in order to fix these bugs:
79 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
80 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
81 dnl   which shared libraries are available
82 dnl - Solaris support (?) (Not tested under Solaris yet)
83 dnl
84 dnl Revision 1.12  2001/07/25 19:16:27  oes
85 dnl Bumping version number to 2.9.8
86 dnl
87 dnl Revision 1.11  2001/07/21 18:00:07  jongfoster
88 dnl Bumping version number to 2.9.7
89 dnl
90 dnl Revision 1.10  2001/07/18 17:25:04  oes
91 dnl Fixed a typo
92 dnl
93 dnl Revision 1.9  2001/07/15 19:45:13  jongfoster
94 dnl Added support for linking with POSIX threads library
95 dnl
96 dnl Revision 1.8  2001/07/15 17:54:29  jongfoster
97 dnl Renaming #define STATIC to STATIC_PCRE
98 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
99 dnl POSIX threads support.
100 dnl
101 dnl Revision 1.7  2001/07/13 13:58:05  oes
102 dnl    Completely reorganized the selection scheme for
103 dnl    pcre, pcreposix, pcrs and gnu_regex:
104 dnl
105 dnl    The presence of shared pcre, pcreposix or pcrs
106 dnl    libraried is now autodetected. Additionally, the
107 dnl    user can enforce using the built-in static variants
108 dnl    by specifying --disable-dynamic-(pcre|pcrs).
109 dnl    Care is taken to avoid that pcre is dyn, while pcreposix
110 dnl    is static, if both are used and that pcrs is static if
111 dnl    pcrs is.
112 dnl
113 dnl    The choice between pcre, gnu or no regex for actionsfile
114 dnl    URL matching is now via
115 dnl    --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
116 dnl    default being pcre.
117 dnl
118 dnl Revision 1.6  2001/06/29 21:56:40  oes
119 dnl Version -> 2.9.5
120 dnl
121 dnl Revision 1.5  2001/06/29 13:26:27  oes
122 dnl Introduced #define CODE_STATUS
123 dnl
124 dnl Revision 1.4  2001/05/29 09:50:24  jongfoster
125 dnl Unified blocklist/imagelist/permissionslist.
126 dnl File format is still under discussion, but the internal changes
127 dnl are (mostly) done.
128 dnl
129 dnl Also modified interceptor behaviour:
130 dnl - We now intercept all URLs beginning with one of the following
131 dnl   prefixes (and *only* these prefixes):
132 dnl     * http://i.j.b/
133 dnl     * http://ijbswa.sf.net/config/
134 dnl     * http://ijbswa.sourceforge.net/config/
135 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
136 dnl - Internal changes so that intercepted and fast redirect pages
137 dnl   are not replaced with an image.
138 dnl - Interceptors now have the option to send a binary page direct
139 dnl   to the client. (i.e. ijb-send-banner uses this)
140 dnl - Implemented show-url-info interceptor.  (Which is why I needed
141 dnl   the above interceptors changes - a typical URL is
142 dnl   "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
143 dnl   The previous mechanism would not have intercepted that, and
144 dnl   if it had been intercepted then it then it would have replaced
145 dnl   it with an image.)
146 dnl
147 dnl Revision 1.3  2001/05/22 18:46:04  oes
148 dnl
149 dnl - Enabled filtering banners by size rather than URL
150 dnl   by adding patterns that replace all standard banner
151 dnl   sizes with the "Junkbuster" gif to the re_filterfile
152 dnl
153 dnl - Enabled filtering WebBugs by providing a pattern
154 dnl   which kills all 1x1 images
155 dnl
156 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
157 dnl   which is selected by the (nonstandard and therefore
158 dnl   capital) letter 'U' in the option string.
159 dnl   It causes the quantifiers to be ungreedy by default.
160 dnl   Appending a ? turns back to greedy (!).
161 dnl
162 dnl - Added a new interceptor ijb-send-banner, which
163 dnl   sends back the "Junkbuster" gif. Without imagelist or
164 dnl   MSIE detection support, or if tinygif = 1, or the
165 dnl   URL isn't recognized as an imageurl, a lame HTML
166 dnl   explanation is sent instead.
167 dnl
168 dnl - Added new feature, which permits blocking remote
169 dnl   script redirects and firing back a local redirect
170 dnl   to the browser.
171 dnl   The feature is conditionally compiled, i.e. it
172 dnl   can be disabled with --disable-fast-redirects,
173 dnl   plus it must be activated by a "fast-redirects"
174 dnl   line in the config file, has its own log level
175 dnl   and of course wants to be displayed by show-proxy-args
176 dnl   Note: Boy, all the #ifdefs in 1001 locations and
177 dnl   all the fumbling with configure.in and acconfig.h
178 dnl   were *way* more work than the feature itself :-(
179 dnl
180 dnl - Because a generic redirect template was needed for
181 dnl   this, tinygif = 3 now uses the same.
182 dnl
183 dnl - Moved GIFs, and other static HTTP response templates
184 dnl   to project.h
185 dnl
186 dnl - Some minor fixes
187 dnl
188 dnl - Removed some >400 CRs again (Jon, you really worked
189 dnl   a lot! ;-)
190 dnl
191 dnl Revision 1.2  2001/05/20 01:21:20  jongfoster
192 dnl Version 2.9.4 checkin.
193 dnl - Merged popupfile and cookiefile, and added control over PCRS
194 dnl   filtering, in new "permissionsfile".
195 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
196 dnl   file error you now get a message box (in the Win32 GUI) rather
197 dnl   than the program exiting with no explanation.
198 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
199 dnl   skipping.
200 dnl - Removed tabs from "config"
201 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
202 dnl - Bumped up version number.
203 dnl
204 dnl Revision 1.1.1.1  2001/05/15 13:58:50  oes
205 dnl Initial import of version 2.9.3 source tree
206 dnl
207 dnl 
208
209
210 dnl =================================================================
211 dnl AutoConf Initialization
212 dnl =================================================================
213
214 AC_REVISION($Revision: 1.24 $)
215 AC_INIT(jcc.c)
216 AC_CONFIG_HEADER(config.h)
217 AC_CANONICAL_HOST
218
219
220 dnl =================================================================
221 dnl Application version number
222 dnl =================================================================
223
224 VERSION_MAJOR=2
225 VERSION_MINOR=9
226 VERSION_POINT=10
227 CODE_STATUS="beta"
228
229 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
230 dnl used for CGI output
231
232 dnl =================================================================
233 dnl Substitute the version numbers
234 dnl =================================================================
235
236 AC_SUBST(VERSION_MAJOR)
237 AC_SUBST(VERSION_MINOR)
238 AC_SUBST(VERSION_POINT)
239 AC_SUBST(CODE_STATUS)
240
241 dnl
242 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
243 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
244 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
245 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
246 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
247
248 dnl =================================================================
249 dnl pid file only for unix 
250 dnl =================================================================
251 dnl 
252 PID_FILE_PATH="\"/etc/junkbuster"\"
253
254 dnl =================================================================
255 dnl Checks for programs needed to build.
256 dnl =================================================================
257 AC_PROG_CC
258 AC_PROG_CPP
259 dnl AC_PROG_CXX
260 dnl AC_PROG_INSTALL
261 dnl AC_PROG_LN_S
262 dnl AC_PROG_MAKE_SET
263 dnl RANLIB is for PCRE:
264 dnl AC_PROG_RANLIB
265
266 AC_CHECK_PROG(GDB,gdb,yes,no)
267
268 dnl =================================================================
269 dnl debug, gcc and gdb support 
270 dnl =================================================================
271
272 AC_ARG_WITH(debug,
273         [  --with-debug            Enable debug mode],
274         [
275                 if test "x$withval" != "$xno" ; then
276                     if test $ac_cv_prog_cc_g = yes; then
277                       if test "$GCC" = yes; then
278                         if test "$GDB"; then
279                           CFLAGS="-ggdb"
280                         else
281                           CFLAGS="-g"
282                         fi
283                         CFLAGS="$CFLAGS -Wshadow  -Wconversion"
284                       else
285                         CFLAGS="-g"
286                       fi
287                    fi
288                    CFLAGS="$CFLAGS -D_DEBUG"
289                 fi
290         ],
291         [
292             if test "$GCC" = yes; then
293               CFLAGS="-O2"
294             else
295               CFLAGS=
296             fi
297         ]
298 )
299
300 dnl =================================================================
301 dnl additional gcc flags
302 dnl =================================================================
303 dnl 
304 if test "$GCC"; then
305   CFLAGS="-pipe $CFLAGS"
306 fi
307
308
309 dnl =================================================================
310 dnl Build type
311 dnl =================================================================
312 dnl
313 dnl Must do this first.
314 dnl
315 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
316 dnl into Cygwin or MinGW32 modes.  Depending on the mode selected,
317 dnl the compiler will use completely different sets of library
318 dnl and include files.
319 dnl 
320 dnl =================================================================
321
322 AC_MINGW32
323 AC_CYGWIN
324
325 if test "$MINGW32" = "yes"; then
326   target_type=mingw
327 else
328   if test "$CYGWIN" = "yes"; then
329     target_type=cygwin
330   else
331     target_type=unix
332   fi
333 fi
334
335 dnl Decide what to do based on target_type
336 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
337 dnl This is because we don't know yet whether pthread is enabled.
338
339 AC_ARG_ENABLE(mingw32,
340 [  --enable-mingw32        Use mingw32 for a Windows GUI],
341 [if test $enableval = yes; then
342   target_type=mingw
343 fi])
344
345 if test $target_type = mingw; then
346   WIN_ONLY=
347   SPECIAL_CFLAGS="-mwindows -mno-cygwin"
348   PTHREAD_LIB=-lpthreadGC
349   echo "Using mingw32 (Win32 GUI)"
350 else
351   WIN_ONLY=#
352   if test $target_type = cygwin; then
353     SPECIAL_CFLAGS="-mno-win32"
354     PTHREAD_LIB=
355     echo "Using Cygnus (Win32 command line)"
356   else
357     SPECIAL_CFLAGS=
358     PTHREAD_LIB=-lpthread
359   fi
360 fi
361 AC_SUBST(WIN_ONLY)
362
363
364 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
365 old_CFLAGS_nospecial=$CFLAGS
366 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
367
368 # Hack to force AutoConf to use the CFLAGS we just set
369 dnl Warning: This may break with a future version of Autoconf
370 dnl          Tested with autoconf 2.13
371 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
372 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
373 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
374
375
376 dnl =================================================================
377 dnl Thread support
378 dnl =================================================================
379
380 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
381
382 AC_ARG_ENABLE(pthread,
383 [  --disable-pthread       Don't use POSIX threads (pthreads)],
384 [if test $enableval = no; then
385   # Disable pthreads
386   have_pthread=no
387 fi])
388
389 if test $have_pthread = yes; then
390   PTHREAD_ONLY=
391   AC_DEFINE(FEATURE_PTHREAD)
392   echo Using POSIX threads
393   if test "$GCC" = "yes"; then
394     # Set a GCC specific switch:
395     if test "$target_type" = "unix"; then
396       # This compiler switch makes Linux thread-safe
397       # Don't know about other OS's?  Is this switch
398       # supported?
399       PTHREAD_LIB=
400       SPECIAL_CFLAGS="-pthread"
401     fi
402   fi
403 else
404   PTHREAD_ONLY=#
405   echo Using native threads
406 fi
407
408 AC_SUBST(PTHREAD_ONLY)
409
410
411 dnl =================================================================
412 dnl Solaris specific
413 dnl FIXME: Not tested on Solaris yet...
414 dnl =================================================================
415
416
417 SOCKET_LIB=
418
419 case "$host" in
420 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
421             AC_DEFINE(__EXTENSIONS__)
422             if test "$GCC" = "yes"; then
423               # Set a GCC specific switch:
424               # This compiler switch makes Solaris thread-safe
425               PTHREAD_LIB=
426               SPECIAL_CFLAGS="-pthreads"
427             else
428               # What do we do without GCC? Guess this:
429               SPECIAL_CFLAGS="-D_REENTRANT"
430             fi
431 ;;
432 esac
433
434 AC_SUBST(SOCKET_LIB)
435
436 dnl =================================================================
437 dnl OS/2 specific
438 dnl =================================================================
439
440 case "$host" in
441 *-os2-emx*) SOCKET_LIB=-lsocket
442 ;;
443 esac
444
445 AC_SUBST(SOCKET_LIB)
446
447 dnl =================================================================
448 dnl AmigaOS specific
449 dnl =================================================================
450
451 AMIGAOS_ONLY=#
452
453 case "$host" in
454 *-amigaos) AMIGAOS_ONLY=
455 ;;
456 esac
457
458 AC_SUBST(AMIGAOS_ONLY)
459
460 dnl =================================================================
461 dnl Check for standard compiler stuff
462 dnl =================================================================
463
464 AC_EXEEXT
465 AC_OBJEXT
466 AC_HEADER_STDC
467 AC_C_CONST
468 AC_TYPE_SIZE_T
469 AC_CHECK_SIZEOF(int)
470 AC_CHECK_SIZEOF(char *)
471 AC_CHECK_SIZEOF(long)
472 AC_CHECK_SIZEOF(long long)
473 AC_CHECK_SIZEOF(size_t)
474
475 dnl Checks for header files.
476 dnl AC_HEADER_SYS_WAIT
477 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
478
479 dnl Checks for library functions.
480 dnl AC_TYPE_SIGNAL
481 dnl AC_CHECK_FUNC(strstr)
482 dnl bcopy and memmove are for PCRE
483 AC_CHECK_FUNCS(strerror bcopy memmove)
484
485
486 dnl =================================================================
487 dnl Checks for libraries.
488 dnl =================================================================
489 dnl Note: Some systems may have the library but not the system header
490 dnl       file, so we must check for both.
491 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [have_pcre=yes], [have_pcre=no])], [have_pcre=no])
492 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [have_pcreposix=yes], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
493 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
494
495
496 dnl =================================================================
497 dnl Always defined
498 dnl =================================================================
499
500 AC_DEFINE(__MT__)
501
502 dnl =================================================================
503 dnl Features
504 dnl =================================================================
505
506 AC_ARG_ENABLE(toggle,
507 [  --disable-toggle         Don't support temporary disable],
508 [if test $enableval = yes; then
509   AC_DEFINE(FEATURE_TOGGLE)
510 fi],AC_DEFINE(FEATURE_TOGGLE))
511
512 AC_ARG_ENABLE(force,
513 [  --disable-force          Don't allow single-page disable],
514 [if test $enableval = yes; then
515   AC_DEFINE(FEATURE_FORCE_LOAD)
516 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
517
518 AC_ARG_ENABLE(fast-redirects,
519 [  --disable-fast-redirects Don't support fast redirects],
520 [if test $enableval = yes; then
521   AC_DEFINE(FEATURE_FAST_REDIRECTS)
522 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
523
524 AC_ARG_ENABLE(killpopup,
525 [  --disable-killpopup      Never block popups],
526 [if test $enableval = yes; then
527   AC_DEFINE(FEATURE_KILL_POPUPS)
528 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
529
530 AC_ARG_ENABLE(stats,
531 [  --disable-stats          Don't keep statistics],
532 [if test $enableval = yes; then
533   AC_DEFINE(FEATURE_STATISTICS)
534 fi],AC_DEFINE(FEATURE_STATISTICS))
535
536 AC_ARG_ENABLE(ie-images,
537 [  --disable-ie-images      Don't auto-detect whether a request from MS Internet
538                            Explorer is for an image or HTML.],
539 [if test $enableval = yes; then
540   AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
541 fi],
542 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
543
544 AC_ARG_ENABLE(image-blocking,
545 [  --disable-image-blocking Don't try to figure out whether a request is 
546                            for an image or HTML - assume HTML.],
547 [if test $enableval = yes; then
548   AC_DEFINE(FEATURE_IMAGE_BLOCKING)
549 fi],
550 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
551
552 AC_ARG_ENABLE(acl-files,
553 [  --disable-acl-files      Prevents the use of ACL files to control access to
554                            the proxy by IP address.],
555 [if test $enableval = yes; then
556   AC_DEFINE(FEATURE_ACL)
557 fi],
558 AC_DEFINE(FEATURE_ACL))
559
560 AC_ARG_ENABLE(trust-files,
561 [  --disable-trust-files    Prevents the use of trust files.],
562 [if test $enableval = yes; then
563   AC_DEFINE(FEATURE_TRUST)
564 fi],
565 AC_DEFINE(FEATURE_TRUST))
566
567 AC_ARG_ENABLE(jar-files,
568 [  --disable-jar-files      Prevents the use of jar files to capture cookies.],
569 [if test $enableval = yes; then
570   AC_DEFINE(FEATURE_COOKIE_JAR)
571 fi],
572 AC_DEFINE(FEATURE_COOKIE_JAR))
573
574 AC_ARG_ENABLE(editor,
575 [  --disable-editor         Prevents the use of the web-based actions file
576                            editor and web-based temporary disable setting.],
577 [if test $enableval = yes; then
578   AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
579 fi],
580 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
581
582 dnl pcre/pcrs is needed for CGI anyway, so
583 dnl the choice is only between static and
584 dnl dynamic:
585
586 AC_ARG_ENABLE(regex-matching,
587 [  --enable-regex-matching=pcre  Use perl-compatible regex for actionsfile
588                                 pattern matching (default)
589   --enable-regex-matching=gnu   Use gnu style regex for actionsfile pattern
590                                 matching (-> bigger binary)
591   --disable-regex-matching      Don't use regex matching, compare URL
592                                 prefix instead (won't shrink birary)],
593 [ regex_matching=$enableval ],
594 [ regex_matching=pcre ])
595
596 AC_ARG_ENABLE(dynamic-pcre,
597 [  --disable-dynamic-pcre        Use the built-in, static pcre, even if
598                                 libpcre is available],
599 [ if test $enableval = "no"; then have_pcre=no; fi ])
600
601 AC_ARG_ENABLE(dynamic-pcrs,
602 [  --disable-dynamic-pcrs        Use the built-in, static pcrs, even if
603                                 libpcrs is available],
604 [ if test $enableval = "no"; then have_pcrs=no; fi ])
605
606
607 # Is the regex URL matching based on libpcreposix, but we
608 # don't have that library?
609 #
610 if test $have_pcreposix = "yes" -o $regex_matching != "pcre"; then
611   dont_miss_pcreposix=yes
612 else
613   dont_miss_pcreposix=no
614 fi
615
616 # If we have libpcre and either we also have pcreposix or
617 # we don't need pcreposix, then link pcre dynamically; else
618 # build it and link statically
619 #
620 if test $have_pcre = "yes" -a $dont_miss_pcreposix = "yes"; then
621   echo "using libpcre"
622   pcre_dyn=yes
623   STATIC_PCRE_ONLY=#
624   LIBS="$LIBS -lpcre"
625 else
626   echo "using built-in static pcre"
627   pcre_dyn=no
628   AC_DEFINE(STATIC_PCRE)
629   STATIC_PCRE_ONLY=
630 fi
631
632 # If we have libpcrs and pcre is linked dynamically
633 # then also link pcrs dynamically, else build and link
634 # pcrs statically
635 #
636 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
637   echo "using libpcrs"
638   STATIC_PCRS_ONLY=#
639   LIBS="$LIBS -lpcrs"
640 else
641   echo "using built-in static pcrs"
642   AC_DEFINE(STATIC_PCRS)
643   STATIC_PCRS_ONLY=
644 fi
645
646 # Which method should be used for URL matching?
647 # pcre, gnu regex or prefix matching?
648 #
649 if test $regex_matching = "gnu"; then
650   echo "using gnu regex for URL matching"
651   AC_DEFINE(REGEX_GNU)
652   GNU_REGEX_ONLY=
653   PCRE_REGEX_ONLY=#
654 elif test $regex_matching = "pcre"; then
655   echo "using pcre regex for URL matching"
656   AC_DEFINE(REGEX_PCRE)
657   GNU_REGEX_ONLY=#
658   PCRE_REGEX_ONLY=
659   if test $pcre_dyn = "yes"; then
660     LIBS="$LIBS -lpcreposix"
661   fi
662 else
663   echo -e "using prefix matching for URLs\nHint: This does NOT make the executable any smaller!"
664   GNU_REGEX_ONLY=#
665   PCRE_REGEX_ONLY=#
666 fi
667
668 AC_SUBST(GNU_REGEX_ONLY)
669 AC_SUBST(PCRE_REGEX_ONLY)
670 AC_SUBST(STATIC_PCRE_ONLY)
671 AC_SUBST(STATIC_PCRS_ONLY)
672
673 dnl =================================================================
674 dnl Final cleanup and output
675 dnl =================================================================
676
677 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
678 dnl in the Makefile
679 CFLAGS=$old_CFLAGS_nospecial
680 AC_SUBST(SPECIAL_CFLAGS)
681
682 AC_SUBST(PID_FILE_PATH)
683 AC_DEFINE_UNQUOTED(PID_FILE_PATH,${PID_FILE_PATH})
684
685 AC_SUBST(PTHREAD_LIB)
686
687 AC_OUTPUT(GNUmakefile)