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