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