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