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