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