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