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