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