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