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