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