Added documentation for new --chroot option
[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.68.2.11 2003/03/06 15:22:37 oes Exp $
4 dnl 
5 dnl Written by and Copyright (C) 2001, 2002 the SourceForge
6 dnl Privoxy team. http://www.privoxy.org/
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.68.2.11  2003/03/06 15:22:37  oes
32 dnl Fixed minor shell syntax bug
33 dnl
34 dnl Revision 1.68.2.10  2003/01/08 16:39:41  oes
35 dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs
36 dnl
37 dnl Revision 1.68.2.9  2002/12/13 23:47:45  hal9
38 dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org
39 dnl
40 dnl Revision 1.68.2.8  2002/11/27 12:55:26  oes
41 dnl Fixed broken handling of pre-set CFLAGS
42 dnl
43 dnl Revision 1.68.2.7  2002/10/25 02:44:22  hal9
44 dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
45 dnl support, and other related changes. Update related docs.
46 dnl
47 dnl Revision 1.68.2.6  2002/09/25 15:35:15  oes
48 dnl Marking as non-release
49 dnl
50 dnl Revision 1.68.2.5  2002/08/25 23:37:00  hal9
51 dnl Getting ready for 3.0 release.
52 dnl
53 dnl Revision 1.68.2.4  2002/08/10 11:21:57  oes
54 dnl - Set Version to 2.9.20 (beta)
55 dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
56 dnl   are located in a pcre/ subdir to the include path.
57 dnl
58 dnl Revision 1.68.2.3  2002/08/06 11:29:36  oes
59 dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
60 dnl
61 dnl Revision 1.68.2.2  2002/07/30 19:36:09  hal9
62 dnl Bump version to 2.9.17.
63 dnl
64 dnl Revision 1.68.2.1  2002/07/26 15:21:12  oes
65 dnl  Bumped version number for 2.9.16 freeze
66 dnl
67 dnl Revision 1.68  2002/05/25 16:54:54  jongfoster
68 dnl Detect if the compiler supports -pthread.
69 dnl Hopefully this will fix bug 560442.  (I don't have a HP PA-RISC
70 dnl machine to test this!)
71 dnl
72 dnl Revision 1.67  2002/05/03 14:33:59  oes
73 dnl Generate doc/soucre/ldp.dsl
74 dnl
75 dnl Revision 1.66  2002/05/03 00:41:56  oes
76 dnl Set version to 2.9.15 to comply with new versioning scheme
77 dnl
78 dnl Revision 1.65  2002/04/25 19:13:57  morcego
79 dnl Removed RPM release number declaration on configure.in
80 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
81 dnl targets (will produce an error, explaining who to do it, if no value
82 dnl if provided).
83 dnl
84 dnl Revision 1.64  2002/04/22 16:32:31  morcego
85 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
86 dnl -rh.spec: uid and gid are now macros
87 dnl -suse.spec: Changing the header Copyright to License (Copyright is
88 dnl             deprecable)
89 dnl
90 dnl Revision 1.63  2002/04/11 11:00:21  oes
91 dnl Applied Moritz' fix for socklen_t on Solaris
92 dnl
93 dnl Revision 1.62  2002/04/11 10:09:20  oes
94 dnl Version 2.9.14
95 dnl
96 dnl Revision 1.61  2002/04/10 18:14:45  morcego
97 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
98 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
99 dnl
100 dnl Revision 1.60  2002/04/09 16:38:49  oes
101 dnl Added detection of missing config.h.in
102 dnl
103 dnl Revision 1.59  2002/04/06 20:23:55  jongfoster
104 dnl Removing unnessacery tests (C++, ranlib)
105 dnl
106 dnl Revision 1.58  2002/04/04 20:49:20  swa
107 dnl attempt to consolidate the
108 dnl different dokbook versions.
109 dnl
110 dnl Revision 1.57  2002/04/04 00:36:36  gliptak
111 dnl always use pcre for matching
112 dnl
113 dnl Revision 1.56  2002/04/03 22:28:03  gliptak
114 dnl Removed references to gnu_regex
115 dnl
116 dnl Revision 1.55  2002/04/03 03:54:38  gliptak
117 dnl Checking pcre version
118 dnl
119 dnl Revision 1.54  2002/04/01 00:54:24  gliptak
120 dnl More changes needed around regex support.
121 dnl
122 dnl Revision 1.53  2002/03/29 20:09:01  swa
123 dnl al's patch
124 dnl
125 dnl Revision 1.52  2002/03/29 19:51:40  gliptak
126 dnl Correcting compile problem with Debian
127 dnl
128 dnl Revision 1.51  2002/03/28 20:43:00  swa
129 dnl set make correctly
130 dnl
131 dnl Revision 1.50  2002/03/27 03:03:45  hal9
132 dnl Add test for man2html
133 dnl
134 dnl Revision 1.49  2002/03/27 02:19:52  david__schmidt
135 dnl More Mac OSX support:
136 dnl - Get rid of extraneous, noisy -pthread warnings
137 dnl - Define unix so we get oes' unix-tagged changes
138 dnl
139 dnl Revision 1.48  2002/03/26 22:29:54  swa
140 dnl we have a new homepage!
141 dnl
142 dnl Revision 1.47  2002/03/26 16:41:00  hal9
143 dnl Upped RPM Release to 3 (need to build new RH packages)
144 dnl
145 dnl Revision 1.46  2002/03/24 18:55:06  jongfoster
146 dnl Making Docbook work under Windows
147 dnl
148 dnl Revision 1.45  2002/03/24 14:19:55  swa
149 dnl set rpm package release in configure.in. nowhere else.
150 dnl
151 dnl Revision 1.44  2002/03/24 13:25:43  swa
152 dnl name change related issues
153 dnl
154 dnl Revision 1.43  2002/03/24 12:56:21  swa
155 dnl name change related issues.
156 dnl
157 dnl Revision 1.42  2002/03/22 18:11:37  jongfoster
158 dnl Bumping version number to 2.9.12
159 dnl
160 dnl Revision 1.41  2002/03/19 19:30:04  morcego
161 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
162 dnl   should be done
163 dnl
164 dnl - configure will now check for db2html or docbook2html (should work now
165 dnl   on SuSe without the docbktls package)
166 dnl
167 dnl Revision 1.40  2002/03/09 14:33:30  oes
168 dnl Fixing the (harmless) AC_CHECK_FILE warnings
169 dnl
170 dnl Revision 1.39  2002/03/08 16:46:13  oes
171 dnl Added --enable-no-gifs
172 dnl
173 dnl Revision 1.38  2002/03/08 14:13:50  morcego
174 dnl Fixing configure, to remove a command not found error.
175 dnl
176 dnl Revision 1.37  2002/03/08 12:58:21  oes
177 dnl Tiny bugfix in AC_ARG_WITH(debug)
178 dnl
179 dnl Revision 1.36  2002/03/06 23:50:36  morcego
180 dnl Will not test for a text browser if we are not using docbook.
181 dnl
182 dnl Revision 1.35  2002/03/06 21:55:52  morcego
183 dnl New configure option: --with-docbook=(yes|no|directory)
184 dnl Preliminary new platform detection code included. Will work with the
185 dnl old one for now. No use just trowing it away
186 dnl
187 dnl Revision 1.34  2002/03/06 20:57:00  morcego
188 dnl Fixing detection of stylesheets on SuSe.
189 dnl
190 dnl Revision 1.33  2002/03/05 17:31:11  morcego
191 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
192 dnl
193 dnl Revision 1.32  2002/03/05 14:07:43  morcego
194 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
195 dnl    (based on sugestion by Sarantis Paskalis)
196 dnl
197 dnl Revision 1.31  2002/03/05 13:43:28  morcego
198 dnl Checking for text browser, so redhat-dok can work.
199 dnl
200 dnl Revision 1.30  2002/03/04 17:58:01  oes
201 dnl Deleted _DEBUG and PID_FILE_PATH
202 dnl
203 dnl Revision 1.29  2002/02/28 14:20:53  oes
204 dnl Fixed detection of gethost*_r functions on Solaris
205 dnl
206 dnl Revision 1.28  2002/02/27 15:02:38  oes
207 dnl Incremented version number
208 dnl
209 dnl Revision 1.27  2002/01/10 12:35:18  oes
210 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
211 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
212 dnl Is there a better way?
213 dnl
214 dnl Revision 1.26  2002/01/09 14:29:49  oes
215 dnl - Added AC_CHECK_FUNC tests for the availability of
216 dnl   gethostbyname_r, gethostbyaddr_r, gmtime_r and
217 dnl   localtime_r, as well as AC_TRY_COMPILE tests to
218 dnl   determine their signatures.
219 dnl
220 dnl - Fixed a bug with the init of CFLAGS that was
221 dnl   reported by barsnick
222 dnl
223 dnl Revision 1.25  2002/01/04 15:27:18  oes
224 dnl Changed quoting of CODE_STATUS for use in make
225 dnl
226 dnl Revision 1.24  2001/12/30 14:07:31  steudten
227 dnl - Add signal handling (unix)
228 dnl - Add SIGHUP handler (unix)
229 dnl - Add creation of pidfile (unix)
230 dnl - Add action 'top' in rc file (RH)
231 dnl - Add entry 'SIGNALS' to manpage
232 dnl - Add exit message to logfile (unix)
233 dnl
234 dnl Revision 1.23  2001/12/09 20:24:42  david__schmidt
235 dnl Change from "alpha" to "beta" in configure.in
236 dnl
237 dnl Revision 1.22  2001/12/01 11:24:01  jongfoster
238 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
239 dnl make break in a more obvious way.
240 dnl
241 dnl Revision 1.21  2001/11/30 21:35:54  jongfoster
242 dnl Bumping version number to 2.9.10
243 dnl
244 dnl Revision 1.20  2001/10/23 21:24:09  jongfoster
245 dnl Support for FEATURE_CGI_EDIT_ACTIONS
246 dnl
247 dnl Revision 1.19  2001/10/07 15:33:14  oes
248 dnl Removed FEATURE_DENY_GZIP
249 dnl Bumped up version number
250 dnl
251 dnl Revision 1.18  2001/09/13 13:10:24  steudten
252 dnl
253 dnl PreWork for Debug Interface.
254 dnl Add new option "--with-debug" to enable debugging (flags aso.)
255 dnl
256 dnl Revision 1.17  2001/09/12 23:44:55  david__schmidt
257 dnl Mac OSX (Darwin) support added.
258 dnl
259 dnl Revision 1.16  2001/09/12 22:55:45  joergs
260 dnl AmigaOS support added.
261 dnl
262 dnl Revision 1.15  2001/09/12 17:28:59  david__schmidt
263 dnl
264 dnl OS/2 port: update autoconf'd support for the platform.
265 dnl
266 dnl Revision 1.14  2001/07/30 22:12:11  jongfoster
267 dnl Fixing Solaris build (I hope) and tidying up #defines:
268 dnl - All feature #defines are now of the form FEATURE_xxx
269 dnl - Permanently turned off WIN_GUI_EDIT
270 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
271 dnl
272 dnl Revision 1.13  2001/07/29 17:09:17  jongfoster
273 dnl Major changes to build system in order to fix these bugs:
274 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
275 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
276 dnl   which shared libraries are available
277 dnl - Solaris support (?) (Not tested under Solaris yet)
278 dnl
279 dnl Revision 1.12  2001/07/25 19:16:27  oes
280 dnl Bumping version number to 2.9.8
281 dnl
282 dnl Revision 1.11  2001/07/21 18:00:07  jongfoster
283 dnl Bumping version number to 2.9.7
284 dnl
285 dnl Revision 1.10  2001/07/18 17:25:04  oes
286 dnl Fixed a typo
287 dnl
288 dnl Revision 1.9  2001/07/15 19:45:13  jongfoster
289 dnl Added support for linking with POSIX threads library
290 dnl
291 dnl Revision 1.8  2001/07/15 17:54:29  jongfoster
292 dnl Renaming #define STATIC to STATIC_PCRE
293 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
294 dnl POSIX threads support.
295 dnl
296 dnl Revision 1.7  2001/07/13 13:58:05  oes
297 dnl    Completely reorganized the selection scheme for
298 dnl    pcre, pcreposix, pcrs and gnu_regex:
299 dnl
300 dnl    The presence of shared pcre, pcreposix or pcrs
301 dnl    libraried is now autodetected. Additionally, the
302 dnl    user can enforce using the built-in static variants
303 dnl    by specifying --disable-dynamic-(pcre|pcrs).
304 dnl    Care is taken to avoid that pcre is dyn, while pcreposix
305 dnl    is static, if both are used and that pcrs is static if
306 dnl    pcrs is.
307 dnl
308 dnl    The choice between pcre, gnu or no regex for actionsfile
309 dnl    URL matching is now via
310 dnl    --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
311 dnl    default being pcre.
312 dnl
313 dnl Revision 1.6  2001/06/29 21:56:40  oes
314 dnl Version -> 2.9.5
315 dnl
316 dnl Revision 1.5  2001/06/29 13:26:27  oes
317 dnl Introduced #define CODE_STATUS
318 dnl
319 dnl Revision 1.4  2001/05/29 09:50:24  jongfoster
320 dnl Unified blocklist/imagelist/permissionslist.
321 dnl File format is still under discussion, but the internal changes
322 dnl are (mostly) done.
323 dnl
324 dnl Also modified interceptor behaviour:
325 dnl - We now intercept all URLs beginning with one of the following
326 dnl   prefixes (and *only* these prefixes):
327 dnl     * http://i.j.b/
328 dnl     * http://ijbswa.sf.net/config/
329 dnl     * http://ijbswa.sourceforge.net/config/
330 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
331 dnl - Internal changes so that intercepted and fast redirect pages
332 dnl   are not replaced with an image.
333 dnl - Interceptors now have the option to send a binary page direct
334 dnl   to the client. (i.e. ijb-send-banner uses this)
335 dnl - Implemented show-url-info interceptor.  (Which is why I needed
336 dnl   the above interceptors changes - a typical URL is
337 dnl   "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
338 dnl   The previous mechanism would not have intercepted that, and
339 dnl   if it had been intercepted then it then it would have replaced
340 dnl   it with an image.)
341 dnl
342 dnl Revision 1.3  2001/05/22 18:46:04  oes
343 dnl
344 dnl - Enabled filtering banners by size rather than URL
345 dnl   by adding patterns that replace all standard banner
346 dnl   sizes with the "Junkbuster" gif to the re_filterfile
347 dnl
348 dnl - Enabled filtering WebBugs by providing a pattern
349 dnl   which kills all 1x1 images
350 dnl
351 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
352 dnl   which is selected by the (nonstandard and therefore
353 dnl   capital) letter 'U' in the option string.
354 dnl   It causes the quantifiers to be ungreedy by default.
355 dnl   Appending a ? turns back to greedy (!).
356 dnl
357 dnl - Added a new interceptor ijb-send-banner, which
358 dnl   sends back the "Junkbuster" gif. Without imagelist or
359 dnl   MSIE detection support, or if tinygif = 1, or the
360 dnl   URL isn't recognized as an imageurl, a lame HTML
361 dnl   explanation is sent instead.
362 dnl
363 dnl - Added new feature, which permits blocking remote
364 dnl   script redirects and firing back a local redirect
365 dnl   to the browser.
366 dnl   The feature is conditionally compiled, i.e. it
367 dnl   can be disabled with --disable-fast-redirects,
368 dnl   plus it must be activated by a "fast-redirects"
369 dnl   line in the config file, has its own log level
370 dnl   and of course wants to be displayed by show-proxy-args
371 dnl   Note: Boy, all the #ifdefs in 1001 locations and
372 dnl   all the fumbling with configure.in and acconfig.h
373 dnl   were *way* more work than the feature itself :-(
374 dnl
375 dnl - Because a generic redirect template was needed for
376 dnl   this, tinygif = 3 now uses the same.
377 dnl
378 dnl - Moved GIFs, and other static HTTP response templates
379 dnl   to project.h
380 dnl
381 dnl - Some minor fixes
382 dnl
383 dnl - Removed some >400 CRs again (Jon, you really worked
384 dnl   a lot! ;-)
385 dnl
386 dnl Revision 1.2  2001/05/20 01:21:20  jongfoster
387 dnl Version 2.9.4 checkin.
388 dnl - Merged popupfile and cookiefile, and added control over PCRS
389 dnl   filtering, in new "permissionsfile".
390 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
391 dnl   file error you now get a message box (in the Win32 GUI) rather
392 dnl   than the program exiting with no explanation.
393 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
394 dnl   skipping.
395 dnl - Removed tabs from "config"
396 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
397 dnl - Bumped up version number.
398 dnl
399 dnl Revision 1.1.1.1  2001/05/15 13:58:50  oes
400 dnl Initial import of version 2.9.3 source tree
401 dnl
402 dnl 
403
404
405 dnl =================================================================
406 dnl AutoConf Initialization
407 dnl =================================================================
408
409 AC_REVISION($Revision: 1.68.2.11 $)
410 AC_INIT(jcc.c)
411
412 if test ! -f config.h.in; then
413    echo "You need to run autoheader first. "
414    echo -n "Shall I do this for you now? (y/n) "
415    read answer
416    if test "$answer" != "y"; then
417       exit 1
418    else
419       autoheader
420   fi
421 fi  
422
423 AC_CONFIG_HEADER([config.h])
424 AC_CANONICAL_HOST
425
426 dodk=auto
427 DKPREFIX=none
428 AC_ARG_WITH(docbook, dnl
429   --with-docbook=[[yes|no|directory]]   
430                            Enable docbook documentation creation 
431                            (default = yes, for gnu and linux),[dnl
432 case "$with_docbook" in
433 yes) dodk=yes;;
434 no) dodk=no;;
435 *) 
436         dodk=no
437         DKPREFIX=$withval
438         ;;
439 esac
440 ])
441 DB2HTML=false
442 AC_ARG_WITH(db2html, dnl
443   --with-db2html=<path/executable>
444                           Set the location of the docbook to html converter
445                           (default = search),[dnl
446 DB2HTML=$withval
447 ])
448
449 dnl =================================================================
450 dnl Application version number
451 dnl =================================================================
452
453 VERSION_MAJOR=0
454 VERSION_MINOR=0
455 VERSION_POINT=0
456 CODE_STATUS="UNRELEASED"
457
458 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
459 dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
460 dnl whenever CVS in a stable branch differs from the last release.
461
462 dnl =================================================================
463 dnl Substitute the version numbers
464 dnl =================================================================
465
466 AC_SUBST(VERSION_MAJOR)
467 AC_SUBST(VERSION_MINOR)
468 AC_SUBST(VERSION_POINT)
469 AC_SUBST(CODE_STATUS)
470
471 dnl
472 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
473 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
474 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
475 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
476 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
477
478 dnl =================================================================
479 dnl Checks for programs needed to build.
480 dnl =================================================================
481
482 dnl Keep AC_PROG_CC from setting its own defaults:
483 if test "X$CFLAGS" = "X"; then
484    CFLAGS=" "
485 fi
486
487 AC_PROG_CC
488 AC_PROG_CPP
489 AC_PROG_INSTALL
490 AC_PROG_LN_S
491 AC_PROG_MAKE_SET
492 AC_PROG_AWK
493
494 AC_CHECK_PROG(GDB,gdb,yes,no)
495 AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
496 AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
497 AC_SUBST(ID)
498 AC_SUBST(BGROUPS)
499
500 dnl =================================================================
501 dnl debug, gcc and gdb support 
502 dnl =================================================================
503
504 AC_ARG_WITH(debug,
505         [  --with-debug            Enable debug mode],
506         [
507                 if test "x$withval" != "xno" ; then
508                     if test $ac_cv_prog_cc_g = yes; then
509                       if test "$GCC" = yes; then
510                         if test "$GDB"; then
511                           CFLAGS="$CFLAGS -ggdb"
512                         else
513                           CFLAGS="$CFLAGS -g"
514                         fi
515                         CFLAGS="$CFLAGS -Wshadow  -Wconversion"
516                       else
517                         CFLAGS="$CFLAGS -g"
518                       fi
519                    fi
520                 fi
521         ],
522         [
523             if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
524               if test "$GCC" = yes; then
525                 CFLAGS="-O2"
526               fi
527             fi
528         ]
529 )
530
531 dnl =================================================================
532 dnl Check for user and group validity
533 dnl =================================================================
534
535 $ID privoxy >/dev/null 2>/dev/null
536 if test $? -ne 0 ; then
537  AC_MSG_WARN(There is no user 'privoxy' on this system)
538 fi
539 AC_MSG_CHECKING([for user])
540 AC_ARG_WITH(user,
541         [  --with-user=privoxy          Set user under which privoxy will run],
542         [
543                 if test "x$withval" != "xyes"; then
544                   if test $ID = no ; then
545                     AC_MSG_ERROR(There is no 'id' program on this system)
546                   else
547                     AC_MSG_RESULT($with_user)
548                     $ID $with_user 2>/dev/null >/dev/null
549                     if test $? -eq 0 ; then
550                       USER=$with_user;
551                     else
552                       AC_MSG_ERROR(There is no user '$with_user' on this system)
553                     fi
554                   fi
555                   else
556                    AC_MSG_ERROR(We need a user if you give me this parameter)
557                 fi
558         ],
559         [
560           if test $ID = no ; then
561             AC_MSG_ERROR(There is no 'id' programm on this system)
562           else
563             AC_MSG_RESULT(none specified)
564             USER=$with_user
565           fi
566         ]
567 )
568 AC_SUBST(USER)
569
570 AC_MSG_CHECKING([for group])
571 AC_ARG_WITH(group,
572         [  --with-group=privoxy         Set group for privoxy],
573         [ 
574                 if test "x$withval" != "xyes"; then
575                   if test $BGROUPS = no ; then
576                     AC_MSG_ERROR(There is no 'groups' program on this system)
577                   else
578                     AC_MSG_RESULT($with_group)
579                     $BGROUPS $USER >/dev/null
580                     if test $? -eq 0 ; then
581                     # FIXME: this fails if valid group, but not first group
582                     # listed.
583                       if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
584                         AC_MSG_ERROR(The given value '$withval' does not match group entry)
585                       else
586                         GROUP=$with_group;
587                       fi
588                     else
589                       AC_MSG_ERROR(There is no group entry for user '$USER')
590                     fi
591                   fi
592                 else
593                    AC_MSG_ERROR(We need a group if you give me this parameter)
594                 fi
595         ],
596         [
597           if test $BGROUPS = no ; then
598             AC_MSG_ERROR(There is no 'groups' programm on this system)
599           else
600             AC_MSG_RESULT(none specified)
601             GROUP=$with_group;
602           fi
603         ]
604 )
605 AC_SUBST(GROUP)
606
607 dnl =================================================================
608 dnl additional gcc flags
609 dnl =================================================================
610 dnl 
611 if test "$GCC"; then
612   CFLAGS="-pipe $CFLAGS"
613 fi
614
615
616 dnl =================================================================
617 dnl Build type
618 dnl =================================================================
619 dnl
620 dnl Must do this first.
621 dnl
622 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
623 dnl into Cygwin or MinGW32 modes.  Depending on the mode selected,
624 dnl the compiler will use completely different sets of library
625 dnl and include files.
626 dnl 
627 dnl =================================================================
628
629 AC_MINGW32
630 AC_CYGWIN
631
632 if test "$MINGW32" = "yes"; then
633   target_type=mingw
634 else
635   if test "$CYGWIN" = "yes"; then
636     target_type=cygwin
637   else
638     target_type=unix
639   fi
640 fi
641
642 if test $dodk = auto; then
643         dodk=no
644         if test $target_type = unix; then
645                 case "$host_os" in
646                 linux* | gnu*)
647                         dodk=yes
648                 ;;
649                 esac
650         fi
651 fi
652
653 dnl Decide what to do based on target_type
654 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
655 dnl This is because we don't know yet whether pthread is enabled.
656
657 AC_ARG_ENABLE(mingw32,
658 [  --enable-mingw32        Use mingw32 for a Windows GUI],
659 [if test $enableval = yes; then
660   target_type=mingw
661 fi])
662
663 if test $target_type = mingw; then
664   WIN_ONLY=
665   SPECIAL_CFLAGS="-mwindows -mno-cygwin"
666   PTHREAD_LIB=-lpthreadGC
667   echo "Using mingw32 (Win32 GUI)"
668 else
669   WIN_ONLY=#
670   if test $target_type = cygwin; then
671     SPECIAL_CFLAGS="-mno-win32"
672     PTHREAD_LIB=
673     echo "Using Cygnus (Win32 command line)"
674   else
675     SPECIAL_CFLAGS=
676     PTHREAD_LIB=-lpthread
677   fi
678 fi
679 AC_SUBST(WIN_ONLY)
680
681 dnl Checking which text html browser we have avaliable
682 if test $dodk != no; then
683         AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
684         if test "$WDUMP" = false; then
685                 AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\))
686         fi
687         if test $DB2HTML = false; then
688                 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
689                 dnl will fail   
690                 DB2HTML=""
691                 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
692         fi
693 fi
694 AC_SUBST(WDUMP)
695 AC_SUBST(DB2HTML)
696
697 dnl If we use rpm, we need to check where %_topdir is
698 AC_CHECK_PROGS(RPMBIN,rpm,false)
699 if test $RPMBIN != false; then
700                 RPM_BASE=`rpm --eval "%{_topdir}"`
701                 if test "$RPM_BASE" = ""; then
702                         RPM_BASE=/usr/src/redhat
703                 fi
704 fi
705 AC_SUBST(RPM_BASE)
706
707 dnl Check for jade, so we can build the documentation
708 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
709 AC_SUBST(JADEBIN)
710
711 dnl Check for man2html for docs.
712 AC_CHECK_PROGS(MAN2HTML,man2html,false)
713 AC_SUBST(MAN2HTML)
714
715 dnl Set doc status flag for conditional content inclusions
716 DOC_STATUS=p-not-stable
717 if  test $CODE_STATUS = stable; then
718      DOC_STATUS="p-stable"
719 fi
720 AC_SUBST(DOC_STATUS)
721
722 dnl Checking for the docbook.dsl stylesheet file
723 dnl It is still not portable (directory slash)
724 JADECAT=""
725 if test $dodk = yes; then
726   if test $DKPREFIX = none; then
727     for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
728 dnl  echo -n does not fly with /bin/sh.
729 dnl      echo -n "checking for $i/html/docbook.dsl..."
730       AC_MSG_CHECKING([for $i])
731       if test -f $i/html/docbook.dsl; then
732         echo "yes"
733         DKPREFIX=$i
734         break
735       else
736         echo "no"
737       fi
738     done
739 # where are the catalogs?
740     for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
741 dnl     echo -n "checking for $i..."
742       AC_MSG_CHECKING([for $i])
743       if test -f $i; then
744         echo "yes"
745         JADECAT="$JADECAT -c $i"
746       else
747         echo "no"
748       fi
749     done
750   fi
751 fi
752 AC_SUBST(JADECAT)
753 AC_SUBST(DKPREFIX)
754
755 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
756 old_CFLAGS_nospecial=$CFLAGS
757 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
758
759 # Hack to force AutoConf to use the CFLAGS we just set
760 dnl Warning: This may break with a future version of Autoconf
761 dnl          Tested with autoconf 2.13
762 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
763 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
764 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
765
766
767 dnl =================================================================
768 dnl Thread support
769 dnl =================================================================
770
771 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
772
773 AC_ARG_ENABLE(pthread,
774 [  --disable-pthread       Don't use POSIX threads (pthreads)],
775 [if test $enableval = no; then
776   # Disable pthreads
777   have_pthread=no
778 fi])
779
780 if test $have_pthread = yes; then
781   PTHREAD_ONLY=
782   AC_DEFINE(FEATURE_PTHREAD)
783   echo Using POSIX threads
784   if test "$GCC" = "yes"; then
785     # Set a GCC specific switch:
786     if test "$target_type" = "unix"; then
787       ac_jgf_save_CFLAGS=$CFLAGS
788       CFLAGS="$CFLAGS -pthread"
789       AC_TRY_LINK([#include <pthread.h>],
790         [void *p = pthread_create;],
791         [
792           # This compiler switch makes GCC on Linux thread-safe
793           # However, it's not supported on most other OS.
794           PTHREAD_LIB=
795           SPECIAL_CFLAGS="-pthread"
796         ])
797       CFLAGS=$ac_jgf_save_CFLAGS
798     fi
799   fi
800 else
801   PTHREAD_ONLY=#
802   echo Using native threads
803 fi
804
805 AC_SUBST(PTHREAD_ONLY)
806
807 dnl =================================================================
808 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
809 dnl gmtime and localtime
810 dnl =================================================================
811
812 dnl Next line needed to find the gethost*_r functions on Solaris
813 AC_CHECK_LIB(nsl, gethostbyname)
814
815 AC_CHECK_FUNC(gethostbyaddr_r, [
816   AC_MSG_CHECKING([signature of gethostbyaddr_r])
817   AC_TRY_COMPILE([
818 #   include <netdb.h>
819   ], [
820     struct hostent *h, *hp;
821     char *a, *b;
822     int l, bl, t, e;
823     (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
824   ], [
825     AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
826     AC_MSG_RESULT([8 args])
827   ], [
828     AC_TRY_COMPILE([
829 #     include <netdb.h>
830     ], [
831       struct hostent *h;
832       char *a, *b;
833       int l, bl, t, e;
834       (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
835     ], [
836       AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
837       AC_MSG_RESULT([7 args])
838     ], [
839       AC_TRY_COMPILE([
840 #       include <netdb.h>
841       ], [
842         struct hostent_data *d;
843         struct hostent *h;
844         char a,
845         int l, t;
846         (void) gethostbyaddr_r(a, l, t, h, d)
847       ], [
848         AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
849         AC_MSG_RESULT([5 args])
850       ], [
851         AC_MSG_RESULT(unrecognised)
852       ])
853     ])
854   ])
855 ], [
856   AC_MSG_RESULT(no)
857 ])
858
859 AC_CHECK_FUNC(gethostbyname_r, [
860   AC_MSG_CHECKING([signature of gethostbyname_r])
861   AC_TRY_COMPILE([
862 #   include <netdb.h>
863   ], [
864     struct hostent *h, *r;
865     char *n, *b;
866     int bl, e;
867     (void) gethostbyname_r(n, h, b, bl, &r, &e)
868   ], [
869     AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
870     AC_MSG_RESULT([6 args])
871   ], [
872     AC_TRY_COMPILE([
873 #     include <netdb.h>
874     ], [
875       struct hostent *h;
876       char *n, *b;
877       int bl, e;
878       (void) gethostbyname_r(n, h, b, bl, &e)
879     ], [
880       AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
881       AC_MSG_RESULT([5 args])
882     ], [
883       AC_TRY_COMPILE([
884 #       include <netdb.h>
885       ], [
886         struct hostent_data *d;
887         struct hostent *h;
888         char *n,
889         (void) gethostbyname_r(n, h, d)
890       ], [
891         AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
892         AC_MSG_RESULT([3 args])
893       ], [
894         AC_MSG_RESULT(unrecognised)
895       ])
896     ])
897   ])
898 ], [
899   AC_MSG_RESULT(no)
900 ])
901
902 AC_CHECK_FUNC(gmtime_r, [
903   AC_MSG_CHECKING([signature of gmtime_r])
904   AC_TRY_COMPILE([
905 #   include <time.h>
906   ], [
907     struct time *t;
908     struct tm *tm;
909     (void) gmtime_r(t, tm)
910   ], [
911     AC_MSG_RESULT(ok)
912     AC_DEFINE(HAVE_GMTIME_R)
913   ], [
914     AC_MSG_RESULT(unrecognised)
915   ])
916 ], [
917   AC_MSG_RESULT(no)
918 ])
919
920 AC_CHECK_FUNC(localtime_r, [
921   AC_MSG_CHECKING([signature of localtime_r])
922   AC_TRY_COMPILE([
923 #   include <time.h>
924   ], [
925     struct time *t;
926     struct tm *tm;
927     (void) localtime_r(t, tm)
928   ], [
929     AC_MSG_RESULT(ok)
930     AC_DEFINE(HAVE_LOCALTIME_R)
931   ], [
932     AC_MSG_RESULT(unrecognised)
933   ])
934 ], [
935   AC_MSG_RESULT(no)
936 ])
937
938 dnl =================================================================
939 dnl Solaris specific
940 dnl FIXME: Not tested on Solaris yet...
941 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
942 dnl     make these checks generic, e.g.:
943 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
944 dnl     (Moritz Barsnick <moritz@barsnick.net>)
945 dnl =================================================================
946
947
948 SOCKET_LIB=
949
950 case "$host" in
951 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
952             AC_DEFINE(__EXTENSIONS__)
953             if test "$GCC" = "yes"; then
954               # Set a GCC specific switch:
955               # This compiler switch makes Solaris thread-safe
956               PTHREAD_LIB=
957               SPECIAL_CFLAGS="-pthreads"
958             else
959               # What do we do without GCC? Guess this:
960               SPECIAL_CFLAGS="-D_REENTRANT"
961             fi
962 ;;
963 esac
964
965 AC_SUBST(SOCKET_LIB)
966
967 dnl =================================================================
968 dnl Solaris problem, and others perhaps (socklen_t is undefined)
969 dnl =================================================================
970
971 AC_MSG_CHECKING([for socklen_t])
972 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
973         AC_MSG_RESULT([no])
974         AC_DEFINE(socklen_t,int,
975                 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
976
977
978 dnl =================================================================
979 dnl OS/2 specific
980 dnl =================================================================
981
982 case "$host" in
983 *-os2-emx*) SOCKET_LIB=-lsocket
984 ;;
985 esac
986
987 AC_SUBST(SOCKET_LIB)
988
989 dnl =================================================================
990 dnl Mac OSX specific
991 dnl =================================================================
992     
993 case "$host" in
994 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix -DOSX_DARWIN"
995 ;;  
996 esac
997
998 dnl =================================================================
999 dnl OpenBSD specific
1000 dnl =================================================================
1001
1002 case "$host" in
1003 *-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
1004 ;;
1005 esac
1006
1007 dnl =================================================================
1008 dnl AmigaOS specific
1009 dnl =================================================================
1010
1011 AMIGAOS_ONLY=#
1012
1013 case "$host" in
1014 *-amigaos) AMIGAOS_ONLY=
1015 ;;
1016 esac
1017
1018 AC_SUBST(AMIGAOS_ONLY)
1019
1020 dnl =================================================================
1021 dnl Check for standard compiler stuff
1022 dnl =================================================================
1023
1024 AC_EXEEXT
1025 AC_OBJEXT
1026 AC_HEADER_STDC
1027 AC_HEADER_DIRENT
1028 AC_C_CONST
1029 AC_TYPE_SIZE_T
1030 AC_TYPE_PID_T
1031 AC_HEADER_TIME
1032 AC_STRUCT_TM
1033 AC_CHECK_SIZEOF(int, 4)
1034 AC_CHECK_SIZEOF(char *, 4)
1035 AC_CHECK_SIZEOF(long, 4)
1036 AC_CHECK_SIZEOF(long long, 8)
1037 AC_CHECK_SIZEOF(size_t, 4)
1038
1039 dnl Checks for header files.
1040 dnl AC_HEADER_SYS_WAIT
1041 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
1042 AC_CHECK_HEADERS([OS.h arpa/inet.h errno.h fcntl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h sys/timeb.h sys/wait.h unistd.h])
1043
1044 dnl Checks for library functions.
1045 dnl AC_TYPE_SIGNAL
1046 dnl AC_CHECK_FUNC(strstr)
1047 dnl bcopy and memmove are for PCRE
1048 AC_CHECK_FUNCS([strerror bcopy memmove])
1049 AC_PROG_GCC_TRADITIONAL
1050 dnl uncommenting does not work for swa. suse linux
1051 dnl AC_FUNC_MALLOC
1052 AC_FUNC_SETPGRP
1053 AC_TYPE_SIGNAL
1054 dnl uncommenting does not work for swa. suse linux
1055 dnl AC_FUNC_STAT
1056 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
1057
1058
1059 dnl =================================================================
1060 dnl Checks for libraries.
1061 dnl =================================================================
1062 dnl Note: Some systems may have the library but not the system header
1063 dnl       file, so we must check for both.
1064 dnl       Also check for correct version
1065 AC_CHECK_LIB(pcre, pcre_compile, [
1066    AC_CHECK_HEADER(pcre.h, [
1067       AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1068    ], [
1069       AC_CHECK_HEADER(pcre/pcre.h, [
1070          AC_EGREP_HEADER(pcre_fullinfo, pcre/pcre.h, [have_pcre=yes]; [AC_DEFINE(PCRE_H_IN_SUBDIR)], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1071       ], [have_pcre=no])
1072    ])
1073 ], [have_pcre=no])
1074  
1075 AC_CHECK_LIB(pcreposix, regcomp, [
1076    AC_CHECK_HEADER(pcreposix.h, [
1077       AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
1078    ], [
1079       AC_CHECK_HEADER(pcre/pcreposix.h, [
1080          AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)])
1081       ], [have_pcreposix=no])
1082    ])
1083 ], [have_pcreposix=no], -lpcre) 
1084
1085 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
1086
1087 dnl =================================================================
1088 dnl Always defined
1089 dnl =================================================================
1090
1091 AC_DEFINE(__MT__)
1092
1093 dnl =================================================================
1094 dnl Features
1095 dnl =================================================================
1096
1097 AC_ARG_ENABLE(toggle,
1098 [  --disable-toggle         Don't support temporary disable],
1099 [if test $enableval = yes; then
1100   AC_DEFINE(FEATURE_TOGGLE)
1101 fi],AC_DEFINE(FEATURE_TOGGLE))
1102
1103 AC_ARG_ENABLE(force,
1104 [  --disable-force          Don't allow single-page disable],
1105 [if test $enableval = yes; then
1106   AC_DEFINE(FEATURE_FORCE_LOAD)
1107 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
1108
1109 AC_ARG_ENABLE(fast-redirects,
1110 [  --disable-fast-redirects Don't support fast redirects],
1111 [if test $enableval = yes; then
1112   AC_DEFINE(FEATURE_FAST_REDIRECTS)
1113 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1114
1115 AC_ARG_ENABLE(killpopup,
1116 [  --disable-killpopup      Never block popups],
1117 [if test $enableval = yes; then
1118   AC_DEFINE(FEATURE_KILL_POPUPS)
1119 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1120
1121 AC_ARG_ENABLE(stats,
1122 [  --disable-stats          Don't keep statistics],
1123 [if test $enableval = yes; then
1124   AC_DEFINE(FEATURE_STATISTICS)
1125 fi],AC_DEFINE(FEATURE_STATISTICS))
1126
1127 AC_ARG_ENABLE(ie-images,
1128 [  --enable-ie-images       Enable a quick but not always reliable auto-detect whether requests from
1129                            MS Internet Explorer are for an image or not.],
1130 [if test $enableval = yes; then
1131   AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1132 fi],)
1133
1134 AC_ARG_ENABLE(image-blocking,
1135 [  --disable-image-blocking Don't try to figure out whether a request is 
1136                            for an image or HTML - assume HTML.],
1137 [if test $enableval = yes; then
1138   AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1139 fi],
1140 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1141
1142 AC_ARG_ENABLE(acl-files,
1143 [  --disable-acl-files      Prevents the use of ACL files to control access to
1144                            the proxy by IP address.],
1145 [if test $enableval = yes; then
1146   AC_DEFINE(FEATURE_ACL)
1147 fi],
1148 AC_DEFINE(FEATURE_ACL))
1149
1150 AC_ARG_ENABLE(trust-files,
1151 [  --disable-trust-files    Prevents the use of trust files.],
1152 [if test $enableval = yes; then
1153   AC_DEFINE(FEATURE_TRUST)
1154 fi],
1155 AC_DEFINE(FEATURE_TRUST))
1156
1157 AC_ARG_ENABLE(jar-files,
1158 [  --disable-jar-files      Prevents the use of jar files to capture cookies.],
1159 [if test $enableval = yes; then
1160   AC_DEFINE(FEATURE_COOKIE_JAR)
1161 fi],
1162 AC_DEFINE(FEATURE_COOKIE_JAR))
1163
1164 AC_ARG_ENABLE(editor,
1165 [  --disable-editor         Prevents the use of the web-based actions file
1166                            editor and web-based temporary disable setting.],
1167 [if test $enableval = yes; then
1168   AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1169 fi],
1170 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1171
1172 AC_ARG_ENABLE(no-gifs,
1173 [  --enable-no-gifs         Use politically correct PNG format instead of GIF
1174                            for built-in images. May not work with all browsers.],
1175 [if test $enableval = yes; then
1176   AC_DEFINE(FEATURE_NO_GIFS)
1177 fi])
1178
1179
1180 dnl pcre/pcrs is needed for CGI anyway, so
1181 dnl the choice is only between static and
1182 dnl dynamic:
1183
1184 AC_ARG_ENABLE(dynamic-pcre,
1185 [  --disable-dynamic-pcre        Use the built-in, static pcre, even if
1186                                 libpcre is available],
1187 [ if test $enableval = "no"; then have_pcre=no; fi ])
1188
1189 AC_ARG_ENABLE(dynamic-pcrs,
1190 [  --disable-dynamic-pcrs        Use the built-in, static pcrs, even if
1191                                 libpcrs is available],
1192 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1193
1194
1195 # If we have libpcre and either we also have pcreposix or
1196 # we don't need pcreposix, then link pcre dynamically; else
1197 # build it and link statically
1198 #
1199 if test $have_pcre = "yes"; then
1200   echo "using libpcre"
1201   pcre_dyn=yes
1202   STATIC_PCRE_ONLY=#
1203   LIBS="$LIBS -lpcre -lpcreposix"
1204 else
1205   echo "using built-in static pcre"
1206   pcre_dyn=no
1207   AC_DEFINE(STATIC_PCRE)
1208   STATIC_PCRE_ONLY=
1209 fi
1210
1211 # If we have libpcrs and pcre is linked dynamically
1212 # then also link pcrs dynamically, else build and link
1213 # pcrs statically
1214 #
1215 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1216   echo "using libpcrs"
1217   STATIC_PCRS_ONLY=#
1218   LIBS="$LIBS -lpcrs"
1219 else
1220   echo "using built-in static pcrs"
1221   AC_DEFINE(STATIC_PCRS)
1222   STATIC_PCRS_ONLY=
1223 fi
1224
1225 AC_SUBST(STATIC_PCRE_ONLY)
1226 AC_SUBST(STATIC_PCRS_ONLY)
1227
1228 dnl =================================================================
1229 dnl Final cleanup and output
1230 dnl =================================================================
1231
1232 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1233 dnl in the Makefile
1234 CFLAGS=$old_CFLAGS_nospecial
1235 AC_SUBST(SPECIAL_CFLAGS)
1236
1237 AC_SUBST(PTHREAD_LIB)
1238
1239 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)