1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.68.2.15 2003/03/26 00:25:00 oes 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.15 2003/03/26 00:25:00 oes
32 dnl Bump version for 3.0.2
34 dnl Revision 1.68.2.14 2003/03/25 13:27:12 hal9
35 dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl.
37 dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes
38 dnl Set version info for 3.0.1 release
40 dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt
41 dnl Wrapping all *_r functions (the non-_r versions of them) with mutex semaphores for OSX. Hopefully this will take care of all of those pesky crash reports.
43 dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes
44 dnl Fixed minor shell syntax bug
46 dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes
47 dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs
49 dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9
50 dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org
52 dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes
53 dnl Fixed broken handling of pre-set CFLAGS
55 dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9
56 dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
57 dnl support, and other related changes. Update related docs.
59 dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes
60 dnl Marking as non-release
62 dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9
63 dnl Getting ready for 3.0 release.
65 dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes
66 dnl - Set Version to 2.9.20 (beta)
67 dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
68 dnl are located in a pcre/ subdir to the include path.
70 dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
71 dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
73 dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
74 dnl Bump version to 2.9.17.
76 dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
77 dnl Bumped version number for 2.9.16 freeze
79 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
80 dnl Detect if the compiler supports -pthread.
81 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
82 dnl machine to test this!)
84 dnl Revision 1.67 2002/05/03 14:33:59 oes
85 dnl Generate doc/soucre/ldp.dsl
87 dnl Revision 1.66 2002/05/03 00:41:56 oes
88 dnl Set version to 2.9.15 to comply with new versioning scheme
90 dnl Revision 1.65 2002/04/25 19:13:57 morcego
91 dnl Removed RPM release number declaration on configure.in
92 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
93 dnl targets (will produce an error, explaining who to do it, if no value
96 dnl Revision 1.64 2002/04/22 16:32:31 morcego
97 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
98 dnl -rh.spec: uid and gid are now macros
99 dnl -suse.spec: Changing the header Copyright to License (Copyright is
102 dnl Revision 1.63 2002/04/11 11:00:21 oes
103 dnl Applied Moritz' fix for socklen_t on Solaris
105 dnl Revision 1.62 2002/04/11 10:09:20 oes
108 dnl Revision 1.61 2002/04/10 18:14:45 morcego
109 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
110 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
112 dnl Revision 1.60 2002/04/09 16:38:49 oes
113 dnl Added detection of missing config.h.in
115 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
116 dnl Removing unnessacery tests (C++, ranlib)
118 dnl Revision 1.58 2002/04/04 20:49:20 swa
119 dnl attempt to consolidate the
120 dnl different dokbook versions.
122 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
123 dnl always use pcre for matching
125 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
126 dnl Removed references to gnu_regex
128 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
129 dnl Checking pcre version
131 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
132 dnl More changes needed around regex support.
134 dnl Revision 1.53 2002/03/29 20:09:01 swa
137 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
138 dnl Correcting compile problem with Debian
140 dnl Revision 1.51 2002/03/28 20:43:00 swa
141 dnl set make correctly
143 dnl Revision 1.50 2002/03/27 03:03:45 hal9
144 dnl Add test for man2html
146 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
147 dnl More Mac OSX support:
148 dnl - Get rid of extraneous, noisy -pthread warnings
149 dnl - Define unix so we get oes' unix-tagged changes
151 dnl Revision 1.48 2002/03/26 22:29:54 swa
152 dnl we have a new homepage!
154 dnl Revision 1.47 2002/03/26 16:41:00 hal9
155 dnl Upped RPM Release to 3 (need to build new RH packages)
157 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
158 dnl Making Docbook work under Windows
160 dnl Revision 1.45 2002/03/24 14:19:55 swa
161 dnl set rpm package release in configure.in. nowhere else.
163 dnl Revision 1.44 2002/03/24 13:25:43 swa
164 dnl name change related issues
166 dnl Revision 1.43 2002/03/24 12:56:21 swa
167 dnl name change related issues.
169 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
170 dnl Bumping version number to 2.9.12
172 dnl Revision 1.41 2002/03/19 19:30:04 morcego
173 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
176 dnl - configure will now check for db2html or docbook2html (should work now
177 dnl on SuSe without the docbktls package)
179 dnl Revision 1.40 2002/03/09 14:33:30 oes
180 dnl Fixing the (harmless) AC_CHECK_FILE warnings
182 dnl Revision 1.39 2002/03/08 16:46:13 oes
183 dnl Added --enable-no-gifs
185 dnl Revision 1.38 2002/03/08 14:13:50 morcego
186 dnl Fixing configure, to remove a command not found error.
188 dnl Revision 1.37 2002/03/08 12:58:21 oes
189 dnl Tiny bugfix in AC_ARG_WITH(debug)
191 dnl Revision 1.36 2002/03/06 23:50:36 morcego
192 dnl Will not test for a text browser if we are not using docbook.
194 dnl Revision 1.35 2002/03/06 21:55:52 morcego
195 dnl New configure option: --with-docbook=(yes|no|directory)
196 dnl Preliminary new platform detection code included. Will work with the
197 dnl old one for now. No use just trowing it away
199 dnl Revision 1.34 2002/03/06 20:57:00 morcego
200 dnl Fixing detection of stylesheets on SuSe.
202 dnl Revision 1.33 2002/03/05 17:31:11 morcego
203 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
205 dnl Revision 1.32 2002/03/05 14:07:43 morcego
206 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
207 dnl (based on sugestion by Sarantis Paskalis)
209 dnl Revision 1.31 2002/03/05 13:43:28 morcego
210 dnl Checking for text browser, so redhat-dok can work.
212 dnl Revision 1.30 2002/03/04 17:58:01 oes
213 dnl Deleted _DEBUG and PID_FILE_PATH
215 dnl Revision 1.29 2002/02/28 14:20:53 oes
216 dnl Fixed detection of gethost*_r functions on Solaris
218 dnl Revision 1.28 2002/02/27 15:02:38 oes
219 dnl Incremented version number
221 dnl Revision 1.27 2002/01/10 12:35:18 oes
222 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
223 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
224 dnl Is there a better way?
226 dnl Revision 1.26 2002/01/09 14:29:49 oes
227 dnl - Added AC_CHECK_FUNC tests for the availability of
228 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
229 dnl localtime_r, as well as AC_TRY_COMPILE tests to
230 dnl determine their signatures.
232 dnl - Fixed a bug with the init of CFLAGS that was
233 dnl reported by barsnick
235 dnl Revision 1.25 2002/01/04 15:27:18 oes
236 dnl Changed quoting of CODE_STATUS for use in make
238 dnl Revision 1.24 2001/12/30 14:07:31 steudten
239 dnl - Add signal handling (unix)
240 dnl - Add SIGHUP handler (unix)
241 dnl - Add creation of pidfile (unix)
242 dnl - Add action 'top' in rc file (RH)
243 dnl - Add entry 'SIGNALS' to manpage
244 dnl - Add exit message to logfile (unix)
246 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
247 dnl Change from "alpha" to "beta" in configure.in
249 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
250 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
251 dnl make break in a more obvious way.
253 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
254 dnl Bumping version number to 2.9.10
256 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
257 dnl Support for FEATURE_CGI_EDIT_ACTIONS
259 dnl Revision 1.19 2001/10/07 15:33:14 oes
260 dnl Removed FEATURE_DENY_GZIP
261 dnl Bumped up version number
263 dnl Revision 1.18 2001/09/13 13:10:24 steudten
265 dnl PreWork for Debug Interface.
266 dnl Add new option "--with-debug" to enable debugging (flags aso.)
268 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
269 dnl Mac OSX (Darwin) support added.
271 dnl Revision 1.16 2001/09/12 22:55:45 joergs
272 dnl AmigaOS support added.
274 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
276 dnl OS/2 port: update autoconf'd support for the platform.
278 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
279 dnl Fixing Solaris build (I hope) and tidying up #defines:
280 dnl - All feature #defines are now of the form FEATURE_xxx
281 dnl - Permanently turned off WIN_GUI_EDIT
282 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
284 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
285 dnl Major changes to build system in order to fix these bugs:
286 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
287 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
288 dnl which shared libraries are available
289 dnl - Solaris support (?) (Not tested under Solaris yet)
291 dnl Revision 1.12 2001/07/25 19:16:27 oes
292 dnl Bumping version number to 2.9.8
294 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
295 dnl Bumping version number to 2.9.7
297 dnl Revision 1.10 2001/07/18 17:25:04 oes
300 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
301 dnl Added support for linking with POSIX threads library
303 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
304 dnl Renaming #define STATIC to STATIC_PCRE
305 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
306 dnl POSIX threads support.
308 dnl Revision 1.7 2001/07/13 13:58:05 oes
309 dnl Completely reorganized the selection scheme for
310 dnl pcre, pcreposix, pcrs and gnu_regex:
312 dnl The presence of shared pcre, pcreposix or pcrs
313 dnl libraried is now autodetected. Additionally, the
314 dnl user can enforce using the built-in static variants
315 dnl by specifying --disable-dynamic-(pcre|pcrs).
316 dnl Care is taken to avoid that pcre is dyn, while pcreposix
317 dnl is static, if both are used and that pcrs is static if
320 dnl The choice between pcre, gnu or no regex for actionsfile
321 dnl URL matching is now via
322 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
323 dnl default being pcre.
325 dnl Revision 1.6 2001/06/29 21:56:40 oes
328 dnl Revision 1.5 2001/06/29 13:26:27 oes
329 dnl Introduced #define CODE_STATUS
331 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
332 dnl Unified blocklist/imagelist/permissionslist.
333 dnl File format is still under discussion, but the internal changes
334 dnl are (mostly) done.
336 dnl Also modified interceptor behaviour:
337 dnl - We now intercept all URLs beginning with one of the following
338 dnl prefixes (and *only* these prefixes):
340 dnl * http://ijbswa.sf.net/config/
341 dnl * http://ijbswa.sourceforge.net/config/
342 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
343 dnl - Internal changes so that intercepted and fast redirect pages
344 dnl are not replaced with an image.
345 dnl - Interceptors now have the option to send a binary page direct
346 dnl to the client. (i.e. ijb-send-banner uses this)
347 dnl - Implemented show-url-info interceptor. (Which is why I needed
348 dnl the above interceptors changes - a typical URL is
349 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
350 dnl The previous mechanism would not have intercepted that, and
351 dnl if it had been intercepted then it then it would have replaced
352 dnl it with an image.)
354 dnl Revision 1.3 2001/05/22 18:46:04 oes
356 dnl - Enabled filtering banners by size rather than URL
357 dnl by adding patterns that replace all standard banner
358 dnl sizes with the "Junkbuster" gif to the re_filterfile
360 dnl - Enabled filtering WebBugs by providing a pattern
361 dnl which kills all 1x1 images
363 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
364 dnl which is selected by the (nonstandard and therefore
365 dnl capital) letter 'U' in the option string.
366 dnl It causes the quantifiers to be ungreedy by default.
367 dnl Appending a ? turns back to greedy (!).
369 dnl - Added a new interceptor ijb-send-banner, which
370 dnl sends back the "Junkbuster" gif. Without imagelist or
371 dnl MSIE detection support, or if tinygif = 1, or the
372 dnl URL isn't recognized as an imageurl, a lame HTML
373 dnl explanation is sent instead.
375 dnl - Added new feature, which permits blocking remote
376 dnl script redirects and firing back a local redirect
378 dnl The feature is conditionally compiled, i.e. it
379 dnl can be disabled with --disable-fast-redirects,
380 dnl plus it must be activated by a "fast-redirects"
381 dnl line in the config file, has its own log level
382 dnl and of course wants to be displayed by show-proxy-args
383 dnl Note: Boy, all the #ifdefs in 1001 locations and
384 dnl all the fumbling with configure.in and acconfig.h
385 dnl were *way* more work than the feature itself :-(
387 dnl - Because a generic redirect template was needed for
388 dnl this, tinygif = 3 now uses the same.
390 dnl - Moved GIFs, and other static HTTP response templates
393 dnl - Some minor fixes
395 dnl - Removed some >400 CRs again (Jon, you really worked
398 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
399 dnl Version 2.9.4 checkin.
400 dnl - Merged popupfile and cookiefile, and added control over PCRS
401 dnl filtering, in new "permissionsfile".
402 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
403 dnl file error you now get a message box (in the Win32 GUI) rather
404 dnl than the program exiting with no explanation.
405 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
407 dnl - Removed tabs from "config"
408 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
409 dnl - Bumped up version number.
411 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
412 dnl Initial import of version 2.9.3 source tree
417 dnl =================================================================
418 dnl AutoConf Initialization
419 dnl =================================================================
421 AC_REVISION($Revision: 1.68.2.15 $)
424 if test ! -f config.h.in; then
425 echo "You need to run autoheader first. "
426 echo -n "Shall I do this for you now? (y/n) "
428 if test "$answer" != "y"; then
435 AC_CONFIG_HEADER([config.h])
440 AC_ARG_WITH(docbook, dnl
441 --with-docbook=[[yes|no|directory]]
442 Enable docbook documentation creation
443 (default = yes, for gnu and linux),[dnl
444 case "$with_docbook" in
454 AC_ARG_WITH(db2html, dnl
455 --with-db2html=<path/executable>
456 Set the location of the docbook to html converter
457 (default = search),[dnl
461 dnl =================================================================
462 dnl Application version number
463 dnl =================================================================
468 CODE_STATUS="UNRELEASED"
470 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
471 dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
472 dnl whenever CVS in a stable branch differs from the last release.
474 dnl =================================================================
475 dnl Substitute the version numbers
476 dnl =================================================================
478 AC_SUBST(VERSION_MAJOR)
479 AC_SUBST(VERSION_MINOR)
480 AC_SUBST(VERSION_POINT)
481 AC_SUBST(CODE_STATUS)
484 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
485 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
486 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
487 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
488 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
490 dnl =================================================================
491 dnl Checks for programs needed to build.
492 dnl =================================================================
494 dnl Keep AC_PROG_CC from setting its own defaults:
495 if test "X$CFLAGS" = "X"; then
506 AC_CHECK_PROG(GDB,gdb,yes,no)
507 AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
508 AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
512 dnl =================================================================
513 dnl debug, gcc and gdb support
514 dnl =================================================================
517 [ --with-debug Enable debug mode],
519 if test "x$withval" != "xno" ; then
520 if test $ac_cv_prog_cc_g = yes; then
521 if test "$GCC" = yes; then
523 CFLAGS="$CFLAGS -ggdb"
527 CFLAGS="$CFLAGS -Wshadow -Wconversion"
535 if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
536 if test "$GCC" = yes; then
543 dnl =================================================================
544 dnl Check for user and group validity
545 dnl =================================================================
547 $ID privoxy >/dev/null 2>/dev/null
548 if test $? -ne 0 ; then
549 AC_MSG_WARN(There is no user 'privoxy' on this system)
551 AC_MSG_CHECKING([for user])
553 [ --with-user=privoxy Set user under which privoxy will run],
555 if test "x$withval" != "xyes"; then
556 if test $ID = no ; then
557 AC_MSG_ERROR(There is no 'id' program on this system)
559 AC_MSG_RESULT($with_user)
560 $ID $with_user 2>/dev/null >/dev/null
561 if test $? -eq 0 ; then
564 AC_MSG_ERROR(There is no user '$with_user' on this system)
568 AC_MSG_ERROR(We need a user if you give me this parameter)
572 if test $ID = no ; then
573 AC_MSG_ERROR(There is no 'id' programm on this system)
575 AC_MSG_RESULT(none specified)
582 AC_MSG_CHECKING([for group])
584 [ --with-group=privoxy Set group for privoxy],
586 if test "x$withval" != "xyes"; then
587 if test $BGROUPS = no ; then
588 AC_MSG_ERROR(There is no 'groups' program on this system)
590 AC_MSG_RESULT($with_group)
591 $BGROUPS $USER >/dev/null
592 if test $? -eq 0 ; then
593 # FIXME: this fails if valid group, but not first group
595 if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
596 AC_MSG_ERROR(The given value '$withval' does not match group entry)
601 AC_MSG_ERROR(There is no group entry for user '$USER')
605 AC_MSG_ERROR(We need a group if you give me this parameter)
609 if test $BGROUPS = no ; then
610 AC_MSG_ERROR(There is no 'groups' programm on this system)
612 AC_MSG_RESULT(none specified)
619 dnl =================================================================
620 dnl additional gcc flags
621 dnl =================================================================
624 CFLAGS="-pipe $CFLAGS"
628 dnl =================================================================
630 dnl =================================================================
632 dnl Must do this first.
634 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
635 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
636 dnl the compiler will use completely different sets of library
637 dnl and include files.
639 dnl =================================================================
644 if test "$MINGW32" = "yes"; then
647 if test "$CYGWIN" = "yes"; then
654 if test $dodk = auto; then
656 if test $target_type = unix; then
665 dnl Decide what to do based on target_type
666 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
667 dnl This is because we don't know yet whether pthread is enabled.
669 AC_ARG_ENABLE(mingw32,
670 [ --enable-mingw32 Use mingw32 for a Windows GUI],
671 [if test $enableval = yes; then
675 if test $target_type = mingw; then
677 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
678 PTHREAD_LIB=-lpthreadGC
679 echo "Using mingw32 (Win32 GUI)"
682 if test $target_type = cygwin; then
683 SPECIAL_CFLAGS="-mno-win32"
685 echo "Using Cygnus (Win32 command line)"
688 PTHREAD_LIB=-lpthread
693 dnl Checking which text html browser we have avaliable
694 if test $dodk != no; then
695 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
696 if test "$WDUMP" = false; then
697 AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\))
699 if test $DB2HTML = false; then
700 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
703 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
709 dnl If we use rpm, we need to check where %_topdir is
710 AC_CHECK_PROGS(RPMBIN,rpm,false)
711 if test $RPMBIN != false; then
712 RPM_BASE=`rpm --eval "%{_topdir}"`
713 if test "$RPM_BASE" = ""; then
714 RPM_BASE=/usr/src/redhat
719 dnl Check for jade, so we can build the documentation
720 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
723 dnl Check for man2html for docs.
724 AC_CHECK_PROGS(MAN2HTML,man2html,false)
727 dnl Set doc status flag for conditional content inclusions
728 DOC_STATUS=p-not-stable
729 if test $CODE_STATUS = stable; then
730 DOC_STATUS="p-stable"
734 dnl Checking for the docbook.dsl stylesheet file
735 dnl It is still not portable (directory slash)
737 if test $dodk = yes; then
738 if test $DKPREFIX = none; then
739 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl usr/local/share/sgml/docbook/dsssl/modular; do
740 dnl echo -n does not fly with /bin/sh.
741 dnl echo -n "checking for $i/html/docbook.dsl..."
742 AC_MSG_CHECKING([for $i])
743 if test -f $i/html/docbook.dsl; then
751 # where are the catalogs?
752 for i in /usr/share/sgml/CATALOG.docbk30 \
753 /usr/share/sgml/CATALOG.docbk31 \
754 /usr/share/sgml/CATALOG.docbk31 \
755 /usr/local/share/sgml/docbook/3.0/docbook.cat \
756 /usr/local/share/sgml/docbook/3.1/docbook.cat \
758 dnl echo -n "checking for $i..."
759 AC_MSG_CHECKING([for $i])
762 JADECAT="$JADECAT -c $i"
772 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
773 old_CFLAGS_nospecial=$CFLAGS
774 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
776 # Hack to force AutoConf to use the CFLAGS we just set
777 dnl Warning: This may break with a future version of Autoconf
778 dnl Tested with autoconf 2.13
779 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
780 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
781 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
784 dnl =================================================================
786 dnl =================================================================
788 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
790 AC_ARG_ENABLE(pthread,
791 [ --disable-pthread Don't use POSIX threads (pthreads)],
792 [if test $enableval = no; then
797 if test $have_pthread = yes; then
799 AC_DEFINE(FEATURE_PTHREAD)
800 echo Using POSIX threads
801 if test "$GCC" = "yes"; then
802 # Set a GCC specific switch:
803 if test "$target_type" = "unix"; then
804 ac_jgf_save_CFLAGS=$CFLAGS
805 CFLAGS="$CFLAGS -pthread"
806 AC_TRY_LINK([#include <pthread.h>],
807 [void *p = pthread_create;],
809 # This compiler switch makes GCC on Linux thread-safe
810 # However, it's not supported on most other OS.
812 SPECIAL_CFLAGS="-pthread"
814 CFLAGS=$ac_jgf_save_CFLAGS
819 echo Using native threads
822 AC_SUBST(PTHREAD_ONLY)
824 dnl =================================================================
825 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
826 dnl gmtime and localtime
827 dnl =================================================================
829 dnl Next line needed to find the gethost*_r functions on Solaris
830 AC_CHECK_LIB(nsl, gethostbyname)
832 AC_CHECK_FUNC(gethostbyaddr_r, [
833 AC_MSG_CHECKING([signature of gethostbyaddr_r])
837 struct hostent *h, *hp;
840 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
842 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
843 AC_MSG_RESULT([8 args])
851 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
853 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
854 AC_MSG_RESULT([7 args])
859 struct hostent_data *d;
863 (void) gethostbyaddr_r(a, l, t, h, d)
865 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
866 AC_MSG_RESULT([5 args])
868 AC_MSG_RESULT(unrecognised)
876 AC_CHECK_FUNC(gethostbyname_r, [
877 AC_MSG_CHECKING([signature of gethostbyname_r])
881 struct hostent *h, *r;
884 (void) gethostbyname_r(n, h, b, bl, &r, &e)
886 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
887 AC_MSG_RESULT([6 args])
895 (void) gethostbyname_r(n, h, b, bl, &e)
897 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
898 AC_MSG_RESULT([5 args])
903 struct hostent_data *d;
906 (void) gethostbyname_r(n, h, d)
908 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
909 AC_MSG_RESULT([3 args])
911 AC_MSG_RESULT(unrecognised)
919 AC_CHECK_FUNC(gmtime_r, [
920 AC_MSG_CHECKING([signature of gmtime_r])
926 (void) gmtime_r(t, tm)
929 AC_DEFINE(HAVE_GMTIME_R)
931 AC_MSG_RESULT(unrecognised)
937 AC_CHECK_FUNC(localtime_r, [
938 AC_MSG_CHECKING([signature of localtime_r])
944 (void) localtime_r(t, tm)
947 AC_DEFINE(HAVE_LOCALTIME_R)
949 AC_MSG_RESULT(unrecognised)
955 dnl =================================================================
957 dnl FIXME: Not tested on Solaris yet...
958 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
959 dnl make these checks generic, e.g.:
960 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
961 dnl (Moritz Barsnick <moritz@barsnick.net>)
962 dnl =================================================================
968 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
969 AC_DEFINE(__EXTENSIONS__)
970 if test "$GCC" = "yes"; then
971 # Set a GCC specific switch:
972 # This compiler switch makes Solaris thread-safe
974 SPECIAL_CFLAGS="-pthreads"
976 # What do we do without GCC? Guess this:
977 SPECIAL_CFLAGS="-D_REENTRANT"
984 dnl =================================================================
985 dnl Solaris problem, and others perhaps (socklen_t is undefined)
986 dnl =================================================================
988 AC_MSG_CHECKING([for socklen_t])
989 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
991 AC_DEFINE(socklen_t,int,
992 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
995 dnl =================================================================
997 dnl =================================================================
1000 *-os2-emx*) SOCKET_LIB=-lsocket
1004 AC_SUBST(SOCKET_LIB)
1006 dnl =================================================================
1007 dnl Mac OSX specific
1008 dnl =================================================================
1011 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix -DOSX_DARWIN"
1015 dnl =================================================================
1016 dnl OpenBSD specific
1017 dnl =================================================================
1020 *-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
1024 dnl =================================================================
1025 dnl AmigaOS specific
1026 dnl =================================================================
1031 *-amigaos) AMIGAOS_ONLY=
1035 AC_SUBST(AMIGAOS_ONLY)
1037 dnl =================================================================
1038 dnl Check for standard compiler stuff
1039 dnl =================================================================
1050 AC_CHECK_SIZEOF(int, 4)
1051 AC_CHECK_SIZEOF(char *, 4)
1052 AC_CHECK_SIZEOF(long, 4)
1053 AC_CHECK_SIZEOF(long long, 8)
1054 AC_CHECK_SIZEOF(size_t, 4)
1056 dnl Checks for header files.
1057 dnl AC_HEADER_SYS_WAIT
1058 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
1059 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])
1061 dnl Checks for library functions.
1063 dnl AC_CHECK_FUNC(strstr)
1064 dnl bcopy and memmove are for PCRE
1065 AC_CHECK_FUNCS([strerror bcopy memmove])
1066 AC_PROG_GCC_TRADITIONAL
1067 dnl uncommenting does not work for swa. suse linux
1071 dnl uncommenting does not work for swa. suse linux
1073 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
1076 dnl =================================================================
1077 dnl Checks for libraries.
1078 dnl =================================================================
1079 dnl Note: Some systems may have the library but not the system header
1080 dnl file, so we must check for both.
1081 dnl Also check for correct version
1082 AC_CHECK_LIB(pcre, pcre_compile, [
1083 AC_CHECK_HEADER(pcre.h, [
1084 AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1086 AC_CHECK_HEADER(pcre/pcre.h, [
1087 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])
1092 AC_CHECK_LIB(pcreposix, regcomp, [
1093 AC_CHECK_HEADER(pcreposix.h, [
1094 AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
1096 AC_CHECK_HEADER(pcre/pcreposix.h, [
1097 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)])
1098 ], [have_pcreposix=no])
1100 ], [have_pcreposix=no], -lpcre)
1102 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
1104 dnl =================================================================
1106 dnl =================================================================
1110 dnl =================================================================
1112 dnl =================================================================
1114 AC_ARG_ENABLE(toggle,
1115 [ --disable-toggle Don't support temporary disable],
1116 [if test $enableval = yes; then
1117 AC_DEFINE(FEATURE_TOGGLE)
1118 fi],AC_DEFINE(FEATURE_TOGGLE))
1120 AC_ARG_ENABLE(force,
1121 [ --disable-force Don't allow single-page disable],
1122 [if test $enableval = yes; then
1123 AC_DEFINE(FEATURE_FORCE_LOAD)
1124 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
1126 AC_ARG_ENABLE(fast-redirects,
1127 [ --disable-fast-redirects Don't support fast redirects],
1128 [if test $enableval = yes; then
1129 AC_DEFINE(FEATURE_FAST_REDIRECTS)
1130 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1132 AC_ARG_ENABLE(killpopup,
1133 [ --disable-killpopup Never block popups],
1134 [if test $enableval = yes; then
1135 AC_DEFINE(FEATURE_KILL_POPUPS)
1136 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1138 AC_ARG_ENABLE(stats,
1139 [ --disable-stats Don't keep statistics],
1140 [if test $enableval = yes; then
1141 AC_DEFINE(FEATURE_STATISTICS)
1142 fi],AC_DEFINE(FEATURE_STATISTICS))
1144 AC_ARG_ENABLE(ie-images,
1145 [ --enable-ie-images Enable a quick but not always reliable auto-detect whether requests from
1146 MS Internet Explorer are for an image or not.],
1147 [if test $enableval = yes; then
1148 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1151 AC_ARG_ENABLE(image-blocking,
1152 [ --disable-image-blocking Don't try to figure out whether a request is
1153 for an image or HTML - assume HTML.],
1154 [if test $enableval = yes; then
1155 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1157 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1159 AC_ARG_ENABLE(acl-files,
1160 [ --disable-acl-files Prevents the use of ACL files to control access to
1161 the proxy by IP address.],
1162 [if test $enableval = yes; then
1163 AC_DEFINE(FEATURE_ACL)
1165 AC_DEFINE(FEATURE_ACL))
1167 AC_ARG_ENABLE(trust-files,
1168 [ --disable-trust-files Prevents the use of trust files.],
1169 [if test $enableval = yes; then
1170 AC_DEFINE(FEATURE_TRUST)
1172 AC_DEFINE(FEATURE_TRUST))
1174 AC_ARG_ENABLE(jar-files,
1175 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1176 [if test $enableval = yes; then
1177 AC_DEFINE(FEATURE_COOKIE_JAR)
1179 AC_DEFINE(FEATURE_COOKIE_JAR))
1181 AC_ARG_ENABLE(editor,
1182 [ --disable-editor Prevents the use of the web-based actions file
1183 editor and web-based temporary disable setting.],
1184 [if test $enableval = yes; then
1185 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1187 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1189 AC_ARG_ENABLE(no-gifs,
1190 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1191 for built-in images. May not work with all browsers.],
1192 [if test $enableval = yes; then
1193 AC_DEFINE(FEATURE_NO_GIFS)
1197 dnl pcre/pcrs is needed for CGI anyway, so
1198 dnl the choice is only between static and
1201 AC_ARG_ENABLE(dynamic-pcre,
1202 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1203 libpcre is available],
1204 [ if test $enableval = "no"; then have_pcre=no; fi ])
1206 AC_ARG_ENABLE(dynamic-pcrs,
1207 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1208 libpcrs is available],
1209 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1212 # If we have libpcre and either we also have pcreposix or
1213 # we don't need pcreposix, then link pcre dynamically; else
1214 # build it and link statically
1216 if test $have_pcre = "yes"; then
1217 echo "using libpcre"
1220 LIBS="$LIBS -lpcre -lpcreposix"
1222 echo "using built-in static pcre"
1224 AC_DEFINE(STATIC_PCRE)
1228 # If we have libpcrs and pcre is linked dynamically
1229 # then also link pcrs dynamically, else build and link
1232 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1233 echo "using libpcrs"
1237 echo "using built-in static pcrs"
1238 AC_DEFINE(STATIC_PCRS)
1242 AC_SUBST(STATIC_PCRE_ONLY)
1243 AC_SUBST(STATIC_PCRS_ONLY)
1245 dnl =================================================================
1246 dnl Final cleanup and output
1247 dnl =================================================================
1249 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1251 CFLAGS=$old_CFLAGS_nospecial
1252 AC_SUBST(SPECIAL_CFLAGS)
1254 AC_SUBST(PTHREAD_LIB)
1256 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)