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