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