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