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