1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.68.2.7 2002/10/25 02:44:22 hal9 Exp $
5 dnl Written by and Copyright (C) 2001, 2002 the SourceForge
6 dnl Privoxy team. http://www.privoxy.org/
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
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.
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.
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.
30 dnl $Log: configure.in,v $
31 dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9
32 dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
33 dnl support, and other related changes. Update related docs.
35 dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes
36 dnl Marking as non-release
38 dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9
39 dnl Getting ready for 3.0 release.
41 dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes
42 dnl - Set Version to 2.9.20 (beta)
43 dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
44 dnl are located in a pcre/ subdir to the include path.
46 dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
47 dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
49 dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
50 dnl Bump version to 2.9.17.
52 dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
53 dnl Bumped version number for 2.9.16 freeze
55 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
56 dnl Detect if the compiler supports -pthread.
57 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
58 dnl machine to test this!)
60 dnl Revision 1.67 2002/05/03 14:33:59 oes
61 dnl Generate doc/soucre/ldp.dsl
63 dnl Revision 1.66 2002/05/03 00:41:56 oes
64 dnl Set version to 2.9.15 to comply with new versioning scheme
66 dnl Revision 1.65 2002/04/25 19:13:57 morcego
67 dnl Removed RPM release number declaration on configure.in
68 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
69 dnl targets (will produce an error, explaining who to do it, if no value
72 dnl Revision 1.64 2002/04/22 16:32:31 morcego
73 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
74 dnl -rh.spec: uid and gid are now macros
75 dnl -suse.spec: Changing the header Copyright to License (Copyright is
78 dnl Revision 1.63 2002/04/11 11:00:21 oes
79 dnl Applied Moritz' fix for socklen_t on Solaris
81 dnl Revision 1.62 2002/04/11 10:09:20 oes
84 dnl Revision 1.61 2002/04/10 18:14:45 morcego
85 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
86 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
88 dnl Revision 1.60 2002/04/09 16:38:49 oes
89 dnl Added detection of missing config.h.in
91 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
92 dnl Removing unnessacery tests (C++, ranlib)
94 dnl Revision 1.58 2002/04/04 20:49:20 swa
95 dnl attempt to consolidate the
96 dnl different dokbook versions.
98 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
99 dnl always use pcre for matching
101 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
102 dnl Removed references to gnu_regex
104 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
105 dnl Checking pcre version
107 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
108 dnl More changes needed around regex support.
110 dnl Revision 1.53 2002/03/29 20:09:01 swa
113 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
114 dnl Correcting compile problem with Debian
116 dnl Revision 1.51 2002/03/28 20:43:00 swa
117 dnl set make correctly
119 dnl Revision 1.50 2002/03/27 03:03:45 hal9
120 dnl Add test for man2html
122 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
123 dnl More Mac OSX support:
124 dnl - Get rid of extraneous, noisy -pthread warnings
125 dnl - Define unix so we get oes' unix-tagged changes
127 dnl Revision 1.48 2002/03/26 22:29:54 swa
128 dnl we have a new homepage!
130 dnl Revision 1.47 2002/03/26 16:41:00 hal9
131 dnl Upped RPM Release to 3 (need to build new RH packages)
133 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
134 dnl Making Docbook work under Windows
136 dnl Revision 1.45 2002/03/24 14:19:55 swa
137 dnl set rpm package release in configure.in. nowhere else.
139 dnl Revision 1.44 2002/03/24 13:25:43 swa
140 dnl name change related issues
142 dnl Revision 1.43 2002/03/24 12:56:21 swa
143 dnl name change related issues.
145 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
146 dnl Bumping version number to 2.9.12
148 dnl Revision 1.41 2002/03/19 19:30:04 morcego
149 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
152 dnl - configure will now check for db2html or docbook2html (should work now
153 dnl on SuSe without the docbktls package)
155 dnl Revision 1.40 2002/03/09 14:33:30 oes
156 dnl Fixing the (harmless) AC_CHECK_FILE warnings
158 dnl Revision 1.39 2002/03/08 16:46:13 oes
159 dnl Added --enable-no-gifs
161 dnl Revision 1.38 2002/03/08 14:13:50 morcego
162 dnl Fixing configure, to remove a command not found error.
164 dnl Revision 1.37 2002/03/08 12:58:21 oes
165 dnl Tiny bugfix in AC_ARG_WITH(debug)
167 dnl Revision 1.36 2002/03/06 23:50:36 morcego
168 dnl Will not test for a text browser if we are not using docbook.
170 dnl Revision 1.35 2002/03/06 21:55:52 morcego
171 dnl New configure option: --with-docbook=(yes|no|directory)
172 dnl Preliminary new platform detection code included. Will work with the
173 dnl old one for now. No use just trowing it away
175 dnl Revision 1.34 2002/03/06 20:57:00 morcego
176 dnl Fixing detection of stylesheets on SuSe.
178 dnl Revision 1.33 2002/03/05 17:31:11 morcego
179 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
181 dnl Revision 1.32 2002/03/05 14:07:43 morcego
182 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
183 dnl (based on sugestion by Sarantis Paskalis)
185 dnl Revision 1.31 2002/03/05 13:43:28 morcego
186 dnl Checking for text browser, so redhat-dok can work.
188 dnl Revision 1.30 2002/03/04 17:58:01 oes
189 dnl Deleted _DEBUG and PID_FILE_PATH
191 dnl Revision 1.29 2002/02/28 14:20:53 oes
192 dnl Fixed detection of gethost*_r functions on Solaris
194 dnl Revision 1.28 2002/02/27 15:02:38 oes
195 dnl Incremented version number
197 dnl Revision 1.27 2002/01/10 12:35:18 oes
198 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
199 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
200 dnl Is there a better way?
202 dnl Revision 1.26 2002/01/09 14:29:49 oes
203 dnl - Added AC_CHECK_FUNC tests for the availability of
204 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
205 dnl localtime_r, as well as AC_TRY_COMPILE tests to
206 dnl determine their signatures.
208 dnl - Fixed a bug with the init of CFLAGS that was
209 dnl reported by barsnick
211 dnl Revision 1.25 2002/01/04 15:27:18 oes
212 dnl Changed quoting of CODE_STATUS for use in make
214 dnl Revision 1.24 2001/12/30 14:07:31 steudten
215 dnl - Add signal handling (unix)
216 dnl - Add SIGHUP handler (unix)
217 dnl - Add creation of pidfile (unix)
218 dnl - Add action 'top' in rc file (RH)
219 dnl - Add entry 'SIGNALS' to manpage
220 dnl - Add exit message to logfile (unix)
222 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
223 dnl Change from "alpha" to "beta" in configure.in
225 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
226 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
227 dnl make break in a more obvious way.
229 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
230 dnl Bumping version number to 2.9.10
232 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
233 dnl Support for FEATURE_CGI_EDIT_ACTIONS
235 dnl Revision 1.19 2001/10/07 15:33:14 oes
236 dnl Removed FEATURE_DENY_GZIP
237 dnl Bumped up version number
239 dnl Revision 1.18 2001/09/13 13:10:24 steudten
241 dnl PreWork for Debug Interface.
242 dnl Add new option "--with-debug" to enable debugging (flags aso.)
244 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
245 dnl Mac OSX (Darwin) support added.
247 dnl Revision 1.16 2001/09/12 22:55:45 joergs
248 dnl AmigaOS support added.
250 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
252 dnl OS/2 port: update autoconf'd support for the platform.
254 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
255 dnl Fixing Solaris build (I hope) and tidying up #defines:
256 dnl - All feature #defines are now of the form FEATURE_xxx
257 dnl - Permanently turned off WIN_GUI_EDIT
258 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
260 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
261 dnl Major changes to build system in order to fix these bugs:
262 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
263 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
264 dnl which shared libraries are available
265 dnl - Solaris support (?) (Not tested under Solaris yet)
267 dnl Revision 1.12 2001/07/25 19:16:27 oes
268 dnl Bumping version number to 2.9.8
270 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
271 dnl Bumping version number to 2.9.7
273 dnl Revision 1.10 2001/07/18 17:25:04 oes
276 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
277 dnl Added support for linking with POSIX threads library
279 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
280 dnl Renaming #define STATIC to STATIC_PCRE
281 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
282 dnl POSIX threads support.
284 dnl Revision 1.7 2001/07/13 13:58:05 oes
285 dnl Completely reorganized the selection scheme for
286 dnl pcre, pcreposix, pcrs and gnu_regex:
288 dnl The presence of shared pcre, pcreposix or pcrs
289 dnl libraried is now autodetected. Additionally, the
290 dnl user can enforce using the built-in static variants
291 dnl by specifying --disable-dynamic-(pcre|pcrs).
292 dnl Care is taken to avoid that pcre is dyn, while pcreposix
293 dnl is static, if both are used and that pcrs is static if
296 dnl The choice between pcre, gnu or no regex for actionsfile
297 dnl URL matching is now via
298 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
299 dnl default being pcre.
301 dnl Revision 1.6 2001/06/29 21:56:40 oes
304 dnl Revision 1.5 2001/06/29 13:26:27 oes
305 dnl Introduced #define CODE_STATUS
307 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
308 dnl Unified blocklist/imagelist/permissionslist.
309 dnl File format is still under discussion, but the internal changes
310 dnl are (mostly) done.
312 dnl Also modified interceptor behaviour:
313 dnl - We now intercept all URLs beginning with one of the following
314 dnl prefixes (and *only* these prefixes):
316 dnl * http://ijbswa.sf.net/config/
317 dnl * http://ijbswa.sourceforge.net/config/
318 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
319 dnl - Internal changes so that intercepted and fast redirect pages
320 dnl are not replaced with an image.
321 dnl - Interceptors now have the option to send a binary page direct
322 dnl to the client. (i.e. ijb-send-banner uses this)
323 dnl - Implemented show-url-info interceptor. (Which is why I needed
324 dnl the above interceptors changes - a typical URL is
325 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
326 dnl The previous mechanism would not have intercepted that, and
327 dnl if it had been intercepted then it then it would have replaced
328 dnl it with an image.)
330 dnl Revision 1.3 2001/05/22 18:46:04 oes
332 dnl - Enabled filtering banners by size rather than URL
333 dnl by adding patterns that replace all standard banner
334 dnl sizes with the "Junkbuster" gif to the re_filterfile
336 dnl - Enabled filtering WebBugs by providing a pattern
337 dnl which kills all 1x1 images
339 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
340 dnl which is selected by the (nonstandard and therefore
341 dnl capital) letter 'U' in the option string.
342 dnl It causes the quantifiers to be ungreedy by default.
343 dnl Appending a ? turns back to greedy (!).
345 dnl - Added a new interceptor ijb-send-banner, which
346 dnl sends back the "Junkbuster" gif. Without imagelist or
347 dnl MSIE detection support, or if tinygif = 1, or the
348 dnl URL isn't recognized as an imageurl, a lame HTML
349 dnl explanation is sent instead.
351 dnl - Added new feature, which permits blocking remote
352 dnl script redirects and firing back a local redirect
354 dnl The feature is conditionally compiled, i.e. it
355 dnl can be disabled with --disable-fast-redirects,
356 dnl plus it must be activated by a "fast-redirects"
357 dnl line in the config file, has its own log level
358 dnl and of course wants to be displayed by show-proxy-args
359 dnl Note: Boy, all the #ifdefs in 1001 locations and
360 dnl all the fumbling with configure.in and acconfig.h
361 dnl were *way* more work than the feature itself :-(
363 dnl - Because a generic redirect template was needed for
364 dnl this, tinygif = 3 now uses the same.
366 dnl - Moved GIFs, and other static HTTP response templates
369 dnl - Some minor fixes
371 dnl - Removed some >400 CRs again (Jon, you really worked
374 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
375 dnl Version 2.9.4 checkin.
376 dnl - Merged popupfile and cookiefile, and added control over PCRS
377 dnl filtering, in new "permissionsfile".
378 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
379 dnl file error you now get a message box (in the Win32 GUI) rather
380 dnl than the program exiting with no explanation.
381 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
383 dnl - Removed tabs from "config"
384 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
385 dnl - Bumped up version number.
387 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
388 dnl Initial import of version 2.9.3 source tree
393 dnl =================================================================
394 dnl AutoConf Initialization
395 dnl =================================================================
397 AC_REVISION($Revision: 1.68.2.7 $)
400 if test ! -f config.h.in; then
401 echo "You need to run autoheader first. "
402 echo -n "Shall I do this for you now? (y/n) "
404 if test "$answer" != "y"; then
411 AC_CONFIG_HEADER([config.h])
416 AC_ARG_WITH(docbook, dnl
417 --with-docbook=[[yes|no|directory]]
418 Enable docbook documentation creation
419 (default = yes, for gnu and linux),[dnl
420 case "$with_docbook" in
430 AC_ARG_WITH(db2html, dnl
431 --with-db2html=<path/executable>
432 Set the location of the docbook to html converter
433 (default = search),[dnl
437 dnl =================================================================
438 dnl Application version number
439 dnl =================================================================
444 CODE_STATUS="UNRELEASED"
446 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
447 dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
448 dnl whenever CVS in a stable branch differs from the last release.
450 dnl =================================================================
451 dnl Substitute the version numbers
452 dnl =================================================================
454 AC_SUBST(VERSION_MAJOR)
455 AC_SUBST(VERSION_MINOR)
456 AC_SUBST(VERSION_POINT)
457 AC_SUBST(CODE_STATUS)
460 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
461 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
462 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
463 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
464 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
466 dnl =================================================================
467 dnl Checks for programs needed to build.
468 dnl =================================================================
470 dnl Keep AC_PROG_CC from setting its own defaults:
471 if test "X$CFLAGS" = "X"; then
482 AC_CHECK_PROG(GDB,gdb,yes,no)
483 AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
484 AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
488 dnl =================================================================
489 dnl debug, gcc and gdb support
490 dnl =================================================================
493 [ --with-debug Enable debug mode],
495 if test "x$withval" != "xno" ; then
496 if test $ac_cv_prog_cc_g = yes; then
497 if test "$GCC" = yes; then
499 CFLAGS="$CFLAGS -ggdb"
503 CFLAGS="$CFLAGS -Wshadow -Wconversion"
511 if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
512 if test "$GCC" = yes; then
519 dnl =================================================================
520 dnl Check for user and group validity
521 dnl =================================================================
523 $ID privoxy >/dev/null 2>/dev/null
524 if test $? -ne 0 ; then
525 AC_MSG_WARN(There is no user 'privoxy' on this system)
527 AC_MSG_CHECKING([for user])
529 [ --with-user=privoxy Set user under which privoxy will run],
531 if test "x$withval" != "xyes"; then
532 if test $ID = no ; then
533 AC_MSG_ERROR(There is no 'id' program on this system)
535 AC_MSG_RESULT($with_user)
536 $ID $with_user 2>/dev/null >/dev/null
537 if test $? -eq 0 ; then
540 AC_MSG_ERROR(There is no user '$with_user' on this system)
544 AC_MSG_ERROR(We need a user if you give me this parameter)
548 if test $ID = no ; then
549 AC_MSG_ERROR(There is no 'id' programm on this system)
551 AC_MSG_RESULT(none specified)
558 AC_MSG_CHECKING([for group])
560 [ --with-group=privoxy Set group for privoxy],
562 if test "x$withval" != "xyes"; then
563 if test $BGROUPS = no ; then
564 AC_MSG_ERROR(There is no 'groups' program on this system)
566 AC_MSG_RESULT($with_group)
567 $BGROUPS $USER >/dev/null
568 if test $? -eq 0 ; then
569 # FIXME: this fails if valid group, but not first group
571 if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
572 AC_MSG_ERROR(The given value '$withval' does not match group entry)
577 AC_MSG_ERROR(There is no group entry for user '$USER')
581 AC_MSG_ERROR(We need a group if you give me this parameter)
585 if test $BGROUPS = no ; then
586 AC_MSG_ERROR(There is no 'groups' programm on this system)
588 AC_MSG_RESULT(none specified)
595 dnl =================================================================
596 dnl additional gcc flags
597 dnl =================================================================
600 CFLAGS="-pipe $CFLAGS"
604 dnl =================================================================
606 dnl =================================================================
608 dnl Must do this first.
610 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
611 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
612 dnl the compiler will use completely different sets of library
613 dnl and include files.
615 dnl =================================================================
620 if test "$MINGW32" = "yes"; then
623 if test "$CYGWIN" = "yes"; then
630 if test $dodk = auto; then
632 if test $target_type = unix; then
641 dnl Decide what to do based on target_type
642 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
643 dnl This is because we don't know yet whether pthread is enabled.
645 AC_ARG_ENABLE(mingw32,
646 [ --enable-mingw32 Use mingw32 for a Windows GUI],
647 [if test $enableval = yes; then
651 if test $target_type = mingw; then
653 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
654 PTHREAD_LIB=-lpthreadGC
655 echo "Using mingw32 (Win32 GUI)"
658 if test $target_type = cygwin; then
659 SPECIAL_CFLAGS="-mno-win32"
661 echo "Using Cygnus (Win32 command line)"
664 PTHREAD_LIB=-lpthread
669 dnl Checking which text html browser we have avaliable
670 if test $dodk != no; then
671 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
672 if test "$WDUMP" = false; then
673 AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\))
675 if test $DB2HTML = false; then
676 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
679 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
685 dnl If we use rpm, we need to check where %_topdir is
686 AC_CHECK_PROGS(RPMBIN,rpm,false)
687 if test $RPMBIN != false; then
688 RPM_BASE=`rpm --eval "%{_topdir}"`
689 if test "$RPM_BASE" = ""; then
690 RPM_BASE=/usr/src/redhat
695 dnl Check for jade, so we can build the documentation
696 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
699 dnl Check for man2html for docs.
700 AC_CHECK_PROGS(MAN2HTML,man2html,false)
703 dnl Set doc status flag for conditional content inclusions
704 DOC_STATUS=p-not-stable
705 if test $CODE_STATUS = stable; then
706 DOC_STATUS="p-stable"
710 dnl Checking for the docbook.dsl stylesheet file
711 dnl It is still not portable (directory slash)
713 if test $dodk = yes; then
714 if test $DKPREFIX = none; then
715 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
716 dnl echo -n does not fly with /bin/sh.
717 dnl echo -n "checking for $i/html/docbook.dsl..."
718 AC_MSG_CHECKING([for $i])
719 if test -f $i/html/docbook.dsl; then
727 # where are the catalogs?
728 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
729 dnl echo -n "checking for $i..."
730 AC_MSG_CHECKING([for $i])
733 JADECAT="$JADECAT -c $i"
743 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
744 old_CFLAGS_nospecial=$CFLAGS
745 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
747 # Hack to force AutoConf to use the CFLAGS we just set
748 dnl Warning: This may break with a future version of Autoconf
749 dnl Tested with autoconf 2.13
750 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
751 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
752 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
755 dnl =================================================================
757 dnl =================================================================
759 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
761 AC_ARG_ENABLE(pthread,
762 [ --disable-pthread Don't use POSIX threads (pthreads)],
763 [if test $enableval = no; then
768 if test $have_pthread = yes; then
770 AC_DEFINE(FEATURE_PTHREAD)
771 echo Using POSIX threads
772 if test "$GCC" = "yes"; then
773 # Set a GCC specific switch:
774 if test "$target_type" = "unix"; then
775 ac_jgf_save_CFLAGS=$CFLAGS
776 CFLAGS="$CFLAGS -pthread"
777 AC_TRY_LINK([#include <pthread.h>],
778 [void *p = pthread_create;],
780 # This compiler switch makes GCC on Linux thread-safe
781 # However, it's not supported on most other OS.
783 SPECIAL_CFLAGS="-pthread"
785 CFLAGS=$ac_jgf_save_CFLAGS
790 echo Using native threads
793 AC_SUBST(PTHREAD_ONLY)
795 dnl =================================================================
796 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
797 dnl gmtime and localtime
798 dnl =================================================================
800 dnl Next line needed to find the gethost*_r functions on Solaris
801 AC_CHECK_LIB(nsl, gethostbyname)
803 AC_CHECK_FUNC(gethostbyaddr_r, [
804 AC_MSG_CHECKING([signature of gethostbyaddr_r])
808 struct hostent *h, *hp;
811 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
813 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
814 AC_MSG_RESULT([8 args])
822 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
824 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
825 AC_MSG_RESULT([7 args])
830 struct hostent_data *d;
834 (void) gethostbyaddr_r(a, l, t, h, d)
836 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
837 AC_MSG_RESULT([5 args])
839 AC_MSG_RESULT(unrecognised)
847 AC_CHECK_FUNC(gethostbyname_r, [
848 AC_MSG_CHECKING([signature of gethostbyname_r])
852 struct hostent *h, *r;
855 (void) gethostbyname_r(n, h, b, bl, &r, &e)
857 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
858 AC_MSG_RESULT([6 args])
866 (void) gethostbyname_r(n, h, b, bl, &e)
868 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
869 AC_MSG_RESULT([5 args])
874 struct hostent_data *d;
877 (void) gethostbyname_r(n, h, d)
879 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
880 AC_MSG_RESULT([3 args])
882 AC_MSG_RESULT(unrecognised)
890 AC_CHECK_FUNC(gmtime_r, [
891 AC_MSG_CHECKING([signature of gmtime_r])
897 (void) gmtime_r(t, tm)
900 AC_DEFINE(HAVE_GMTIME_R)
902 AC_MSG_RESULT(unrecognised)
908 AC_CHECK_FUNC(localtime_r, [
909 AC_MSG_CHECKING([signature of localtime_r])
915 (void) localtime_r(t, tm)
918 AC_DEFINE(HAVE_LOCALTIME_R)
920 AC_MSG_RESULT(unrecognised)
926 dnl =================================================================
928 dnl FIXME: Not tested on Solaris yet...
929 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
930 dnl make these checks generic, e.g.:
931 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
932 dnl (Moritz Barsnick <moritz@barsnick.net>)
933 dnl =================================================================
939 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
940 AC_DEFINE(__EXTENSIONS__)
941 if test "$GCC" = "yes"; then
942 # Set a GCC specific switch:
943 # This compiler switch makes Solaris thread-safe
945 SPECIAL_CFLAGS="-pthreads"
947 # What do we do without GCC? Guess this:
948 SPECIAL_CFLAGS="-D_REENTRANT"
955 dnl =================================================================
956 dnl Solaris problem, and others perhaps (socklen_t is undefined)
957 dnl =================================================================
959 AC_MSG_CHECKING([for socklen_t])
960 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
962 AC_DEFINE(socklen_t,int,
963 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
966 dnl =================================================================
968 dnl =================================================================
971 *-os2-emx*) SOCKET_LIB=-lsocket
977 dnl =================================================================
979 dnl =================================================================
982 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
986 dnl =================================================================
988 dnl =================================================================
993 *-amigaos) AMIGAOS_ONLY=
997 AC_SUBST(AMIGAOS_ONLY)
999 dnl =================================================================
1000 dnl Check for standard compiler stuff
1001 dnl =================================================================
1012 AC_CHECK_SIZEOF(int, 4)
1013 AC_CHECK_SIZEOF(char *, 4)
1014 AC_CHECK_SIZEOF(long, 4)
1015 AC_CHECK_SIZEOF(long long, 8)
1016 AC_CHECK_SIZEOF(size_t, 4)
1018 dnl Checks for header files.
1019 dnl AC_HEADER_SYS_WAIT
1020 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
1021 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])
1023 dnl Checks for library functions.
1025 dnl AC_CHECK_FUNC(strstr)
1026 dnl bcopy and memmove are for PCRE
1027 AC_CHECK_FUNCS([strerror bcopy memmove])
1028 AC_PROG_GCC_TRADITIONAL
1029 dnl uncommenting does not work for swa. suse linux
1033 dnl uncommenting does not work for swa. suse linux
1035 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
1038 dnl =================================================================
1039 dnl Checks for libraries.
1040 dnl =================================================================
1041 dnl Note: Some systems may have the library but not the system header
1042 dnl file, so we must check for both.
1043 dnl Also check for correct version
1044 AC_CHECK_LIB(pcre, pcre_compile, [
1045 AC_CHECK_HEADER(pcre.h, [
1046 AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1048 AC_CHECK_HEADER(pcre/pcre.h, [
1049 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])
1054 AC_CHECK_LIB(pcreposix, regcomp, [
1055 AC_CHECK_HEADER(pcreposix.h, [
1056 AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
1058 AC_CHECK_HEADER(pcre/pcreposix.h, [
1059 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)])
1060 ], [have_pcreposix=no])
1062 ], [have_pcreposix=no], -lpcre)
1064 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
1066 dnl =================================================================
1068 dnl =================================================================
1072 dnl =================================================================
1074 dnl =================================================================
1076 AC_ARG_ENABLE(toggle,
1077 [ --disable-toggle Don't support temporary disable],
1078 [if test $enableval = yes; then
1079 AC_DEFINE(FEATURE_TOGGLE)
1080 fi],AC_DEFINE(FEATURE_TOGGLE))
1082 AC_ARG_ENABLE(force,
1083 [ --disable-force Don't allow single-page disable],
1084 [if test $enableval = yes; then
1085 AC_DEFINE(FEATURE_FORCE_LOAD)
1086 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
1088 AC_ARG_ENABLE(fast-redirects,
1089 [ --disable-fast-redirects Don't support fast redirects],
1090 [if test $enableval = yes; then
1091 AC_DEFINE(FEATURE_FAST_REDIRECTS)
1092 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1094 AC_ARG_ENABLE(killpopup,
1095 [ --disable-killpopup Never block popups],
1096 [if test $enableval = yes; then
1097 AC_DEFINE(FEATURE_KILL_POPUPS)
1098 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1100 AC_ARG_ENABLE(stats,
1101 [ --disable-stats Don't keep statistics],
1102 [if test $enableval = yes; then
1103 AC_DEFINE(FEATURE_STATISTICS)
1104 fi],AC_DEFINE(FEATURE_STATISTICS))
1106 AC_ARG_ENABLE(ie-images,
1107 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
1108 Explorer is for an image or HTML.],
1109 [if test $enableval = yes; then
1110 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1112 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
1114 AC_ARG_ENABLE(image-blocking,
1115 [ --disable-image-blocking Don't try to figure out whether a request is
1116 for an image or HTML - assume HTML.],
1117 [if test $enableval = yes; then
1118 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1120 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1122 AC_ARG_ENABLE(acl-files,
1123 [ --disable-acl-files Prevents the use of ACL files to control access to
1124 the proxy by IP address.],
1125 [if test $enableval = yes; then
1126 AC_DEFINE(FEATURE_ACL)
1128 AC_DEFINE(FEATURE_ACL))
1130 AC_ARG_ENABLE(trust-files,
1131 [ --disable-trust-files Prevents the use of trust files.],
1132 [if test $enableval = yes; then
1133 AC_DEFINE(FEATURE_TRUST)
1135 AC_DEFINE(FEATURE_TRUST))
1137 AC_ARG_ENABLE(jar-files,
1138 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1139 [if test $enableval = yes; then
1140 AC_DEFINE(FEATURE_COOKIE_JAR)
1142 AC_DEFINE(FEATURE_COOKIE_JAR))
1144 AC_ARG_ENABLE(editor,
1145 [ --disable-editor Prevents the use of the web-based actions file
1146 editor and web-based temporary disable setting.],
1147 [if test $enableval = yes; then
1148 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1150 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1152 AC_ARG_ENABLE(no-gifs,
1153 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1154 for built-in images. May not work with all browsers.],
1155 [if test $enableval = yes; then
1156 AC_DEFINE(FEATURE_NO_GIFS)
1160 dnl pcre/pcrs is needed for CGI anyway, so
1161 dnl the choice is only between static and
1164 AC_ARG_ENABLE(dynamic-pcre,
1165 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1166 libpcre is available],
1167 [ if test $enableval = "no"; then have_pcre=no; fi ])
1169 AC_ARG_ENABLE(dynamic-pcrs,
1170 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1171 libpcrs is available],
1172 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1175 # If we have libpcre and either we also have pcreposix or
1176 # we don't need pcreposix, then link pcre dynamically; else
1177 # build it and link statically
1179 if test $have_pcre = "yes"; then
1180 echo "using libpcre"
1183 LIBS="$LIBS -lpcre -lpcreposix"
1185 echo "using built-in static pcre"
1187 AC_DEFINE(STATIC_PCRE)
1191 # If we have libpcrs and pcre is linked dynamically
1192 # then also link pcrs dynamically, else build and link
1195 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1196 echo "using libpcrs"
1200 echo "using built-in static pcrs"
1201 AC_DEFINE(STATIC_PCRS)
1205 AC_SUBST(STATIC_PCRE_ONLY)
1206 AC_SUBST(STATIC_PCRS_ONLY)
1208 dnl =================================================================
1209 dnl Final cleanup and output
1210 dnl =================================================================
1212 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1214 CFLAGS=$old_CFLAGS_nospecial
1215 AC_SUBST(SPECIAL_CFLAGS)
1217 AC_SUBST(PTHREAD_LIB)
1219 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)