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