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