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