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