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