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