1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.90 2006/07/18 14:48:45 david__schmidt Exp $
5 dnl Written by and Copyright (C) 2001 - 2004 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.90 2006/07/18 14:48:45 david__schmidt
32 dnl Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
33 dnl with what was really the latest development (the v_3_0_branch branch)
35 dnl Revision 1.68.2.20 2004/01/31 16:31:46 oes
36 dnl Resetting version info to 0.0.0 UNRELEASED
38 dnl Revision 1.68.2.19 2004/01/30 09:26:03 oes
39 dnl Added docbook paths for debian sarge; set status for release
41 dnl Revision 1.68.2.18 2003/12/08 15:10:29 oes
42 dnl Bugfix: --with-docbook now correctly accepts its path parameter. Thanks, Roland!
44 dnl Revision 1.68.2.17 2003/10/18 18:41:26 david__schmidt
45 dnl Update to remain buildable on OS/2 - remove the failures
46 dnl due to missing unixisms
48 dnl Revision 1.68.2.16 2003/03/26 16:05:14 oes
49 dnl Marked as 0.0.0 UNRELEASED
51 dnl Revision 1.68.2.15 2003/03/26 00:25:00 oes
52 dnl Bump version for 3.0.2
54 dnl Revision 1.68.2.14 2003/03/25 13:27:12 hal9
55 dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl.
57 dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes
58 dnl Set version info for 3.0.1 release
60 dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt
61 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.
63 dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes
64 dnl Fixed minor shell syntax bug
66 dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes
67 dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs
69 dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9
70 dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org
72 dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes
73 dnl Fixed broken handling of pre-set CFLAGS
75 dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9
76 dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
77 dnl support, and other related changes. Update related docs.
79 dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes
80 dnl Marking as non-release
82 dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9
83 dnl Getting ready for 3.0 release.
85 dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes
86 dnl - Set Version to 2.9.20 (beta)
87 dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
88 dnl are located in a pcre/ subdir to the include path.
90 dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
91 dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
93 dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
94 dnl Bump version to 2.9.17.
96 dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
97 dnl Bumped version number for 2.9.16 freeze
99 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
100 dnl Detect if the compiler supports -pthread.
101 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
102 dnl machine to test this!)
104 dnl Revision 1.67 2002/05/03 14:33:59 oes
105 dnl Generate doc/soucre/ldp.dsl
107 dnl Revision 1.66 2002/05/03 00:41:56 oes
108 dnl Set version to 2.9.15 to comply with new versioning scheme
110 dnl Revision 1.65 2002/04/25 19:13:57 morcego
111 dnl Removed RPM release number declaration on configure.in
112 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
113 dnl targets (will produce an error, explaining who to do it, if no value
116 dnl Revision 1.64 2002/04/22 16:32:31 morcego
117 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
118 dnl -rh.spec: uid and gid are now macros
119 dnl -suse.spec: Changing the header Copyright to License (Copyright is
122 dnl Revision 1.63 2002/04/11 11:00:21 oes
123 dnl Applied Moritz' fix for socklen_t on Solaris
125 dnl Revision 1.62 2002/04/11 10:09:20 oes
128 dnl Revision 1.61 2002/04/10 18:14:45 morcego
129 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
130 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
132 dnl Revision 1.60 2002/04/09 16:38:49 oes
133 dnl Added detection of missing config.h.in
135 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
136 dnl Removing unnessacery tests (C++, ranlib)
138 dnl Revision 1.58 2002/04/04 20:49:20 swa
139 dnl attempt to consolidate the
140 dnl different dokbook versions.
142 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
143 dnl always use pcre for matching
145 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
146 dnl Removed references to gnu_regex
148 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
149 dnl Checking pcre version
151 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
152 dnl More changes needed around regex support.
154 dnl Revision 1.53 2002/03/29 20:09:01 swa
157 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
158 dnl Correcting compile problem with Debian
160 dnl Revision 1.51 2002/03/28 20:43:00 swa
161 dnl set make correctly
163 dnl Revision 1.50 2002/03/27 03:03:45 hal9
164 dnl Add test for man2html
166 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
167 dnl More Mac OSX support:
168 dnl - Get rid of extraneous, noisy -pthread warnings
169 dnl - Define unix so we get oes' unix-tagged changes
171 dnl Revision 1.48 2002/03/26 22:29:54 swa
172 dnl we have a new homepage!
174 dnl Revision 1.47 2002/03/26 16:41:00 hal9
175 dnl Upped RPM Release to 3 (need to build new RH packages)
177 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
178 dnl Making Docbook work under Windows
180 dnl Revision 1.45 2002/03/24 14:19:55 swa
181 dnl set rpm package release in configure.in. nowhere else.
183 dnl Revision 1.44 2002/03/24 13:25:43 swa
184 dnl name change related issues
186 dnl Revision 1.43 2002/03/24 12:56:21 swa
187 dnl name change related issues.
189 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
190 dnl Bumping version number to 2.9.12
192 dnl Revision 1.41 2002/03/19 19:30:04 morcego
193 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
196 dnl - configure will now check for db2html or docbook2html (should work now
197 dnl on SuSe without the docbktls package)
199 dnl Revision 1.40 2002/03/09 14:33:30 oes
200 dnl Fixing the (harmless) AC_CHECK_FILE warnings
202 dnl Revision 1.39 2002/03/08 16:46:13 oes
203 dnl Added --enable-no-gifs
205 dnl Revision 1.38 2002/03/08 14:13:50 morcego
206 dnl Fixing configure, to remove a command not found error.
208 dnl Revision 1.37 2002/03/08 12:58:21 oes
209 dnl Tiny bugfix in AC_ARG_WITH(debug)
211 dnl Revision 1.36 2002/03/06 23:50:36 morcego
212 dnl Will not test for a text browser if we are not using docbook.
214 dnl Revision 1.35 2002/03/06 21:55:52 morcego
215 dnl New configure option: --with-docbook=(yes|no|directory)
216 dnl Preliminary new platform detection code included. Will work with the
217 dnl old one for now. No use just trowing it away
219 dnl Revision 1.34 2002/03/06 20:57:00 morcego
220 dnl Fixing detection of stylesheets on SuSe.
222 dnl Revision 1.33 2002/03/05 17:31:11 morcego
223 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
225 dnl Revision 1.32 2002/03/05 14:07:43 morcego
226 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
227 dnl (based on sugestion by Sarantis Paskalis)
229 dnl Revision 1.31 2002/03/05 13:43:28 morcego
230 dnl Checking for text browser, so redhat-dok can work.
232 dnl Revision 1.30 2002/03/04 17:58:01 oes
233 dnl Deleted _DEBUG and PID_FILE_PATH
235 dnl Revision 1.29 2002/02/28 14:20:53 oes
236 dnl Fixed detection of gethost*_r functions on Solaris
238 dnl Revision 1.28 2002/02/27 15:02:38 oes
239 dnl Incremented version number
241 dnl Revision 1.27 2002/01/10 12:35:18 oes
242 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
243 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
244 dnl Is there a better way?
246 dnl Revision 1.26 2002/01/09 14:29:49 oes
247 dnl - Added AC_CHECK_FUNC tests for the availability of
248 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
249 dnl localtime_r, as well as AC_TRY_COMPILE tests to
250 dnl determine their signatures.
252 dnl - Fixed a bug with the init of CFLAGS that was
253 dnl reported by barsnick
255 dnl Revision 1.25 2002/01/04 15:27:18 oes
256 dnl Changed quoting of CODE_STATUS for use in make
258 dnl Revision 1.24 2001/12/30 14:07:31 steudten
259 dnl - Add signal handling (unix)
260 dnl - Add SIGHUP handler (unix)
261 dnl - Add creation of pidfile (unix)
262 dnl - Add action 'top' in rc file (RH)
263 dnl - Add entry 'SIGNALS' to manpage
264 dnl - Add exit message to logfile (unix)
266 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
267 dnl Change from "alpha" to "beta" in configure.in
269 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
270 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
271 dnl make break in a more obvious way.
273 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
274 dnl Bumping version number to 2.9.10
276 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
277 dnl Support for FEATURE_CGI_EDIT_ACTIONS
279 dnl Revision 1.19 2001/10/07 15:33:14 oes
280 dnl Removed FEATURE_DENY_GZIP
281 dnl Bumped up version number
283 dnl Revision 1.18 2001/09/13 13:10:24 steudten
285 dnl PreWork for Debug Interface.
286 dnl Add new option "--with-debug" to enable debugging (flags aso.)
288 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
289 dnl Mac OSX (Darwin) support added.
291 dnl Revision 1.16 2001/09/12 22:55:45 joergs
292 dnl AmigaOS support added.
294 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
296 dnl OS/2 port: update autoconf'd support for the platform.
298 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
299 dnl Fixing Solaris build (I hope) and tidying up #defines:
300 dnl - All feature #defines are now of the form FEATURE_xxx
301 dnl - Permanently turned off WIN_GUI_EDIT
302 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
304 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
305 dnl Major changes to build system in order to fix these bugs:
306 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
307 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
308 dnl which shared libraries are available
309 dnl - Solaris support (?) (Not tested under Solaris yet)
311 dnl Revision 1.12 2001/07/25 19:16:27 oes
312 dnl Bumping version number to 2.9.8
314 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
315 dnl Bumping version number to 2.9.7
317 dnl Revision 1.10 2001/07/18 17:25:04 oes
320 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
321 dnl Added support for linking with POSIX threads library
323 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
324 dnl Renaming #define STATIC to STATIC_PCRE
325 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
326 dnl POSIX threads support.
328 dnl Revision 1.7 2001/07/13 13:58:05 oes
329 dnl Completely reorganized the selection scheme for
330 dnl pcre, pcreposix, pcrs and gnu_regex:
332 dnl The presence of shared pcre, pcreposix or pcrs
333 dnl libraried is now autodetected. Additionally, the
334 dnl user can enforce using the built-in static variants
335 dnl by specifying --disable-dynamic-(pcre|pcrs).
336 dnl Care is taken to avoid that pcre is dyn, while pcreposix
337 dnl is static, if both are used and that pcrs is static if
340 dnl The choice between pcre, gnu or no regex for actionsfile
341 dnl URL matching is now via
342 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
343 dnl default being pcre.
345 dnl Revision 1.6 2001/06/29 21:56:40 oes
348 dnl Revision 1.5 2001/06/29 13:26:27 oes
349 dnl Introduced #define CODE_STATUS
351 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
352 dnl Unified blocklist/imagelist/permissionslist.
353 dnl File format is still under discussion, but the internal changes
354 dnl are (mostly) done.
356 dnl Also modified interceptor behaviour:
357 dnl - We now intercept all URLs beginning with one of the following
358 dnl prefixes (and *only* these prefixes):
360 dnl * http://ijbswa.sf.net/config/
361 dnl * http://ijbswa.sourceforge.net/config/
362 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
363 dnl - Internal changes so that intercepted and fast redirect pages
364 dnl are not replaced with an image.
365 dnl - Interceptors now have the option to send a binary page direct
366 dnl to the client. (i.e. ijb-send-banner uses this)
367 dnl - Implemented show-url-info interceptor. (Which is why I needed
368 dnl the above interceptors changes - a typical URL is
369 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
370 dnl The previous mechanism would not have intercepted that, and
371 dnl if it had been intercepted then it then it would have replaced
372 dnl it with an image.)
374 dnl Revision 1.3 2001/05/22 18:46:04 oes
376 dnl - Enabled filtering banners by size rather than URL
377 dnl by adding patterns that replace all standard banner
378 dnl sizes with the "Junkbuster" gif to the re_filterfile
380 dnl - Enabled filtering WebBugs by providing a pattern
381 dnl which kills all 1x1 images
383 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
384 dnl which is selected by the (nonstandard and therefore
385 dnl capital) letter 'U' in the option string.
386 dnl It causes the quantifiers to be ungreedy by default.
387 dnl Appending a ? turns back to greedy (!).
389 dnl - Added a new interceptor ijb-send-banner, which
390 dnl sends back the "Junkbuster" gif. Without imagelist or
391 dnl MSIE detection support, or if tinygif = 1, or the
392 dnl URL isn't recognized as an imageurl, a lame HTML
393 dnl explanation is sent instead.
395 dnl - Added new feature, which permits blocking remote
396 dnl script redirects and firing back a local redirect
398 dnl The feature is conditionally compiled, i.e. it
399 dnl can be disabled with --disable-fast-redirects,
400 dnl plus it must be activated by a "fast-redirects"
401 dnl line in the config file, has its own log level
402 dnl and of course wants to be displayed by show-proxy-args
403 dnl Note: Boy, all the #ifdefs in 1001 locations and
404 dnl all the fumbling with configure.in and acconfig.h
405 dnl were *way* more work than the feature itself :-(
407 dnl - Because a generic redirect template was needed for
408 dnl this, tinygif = 3 now uses the same.
410 dnl - Moved GIFs, and other static HTTP response templates
413 dnl - Some minor fixes
415 dnl - Removed some >400 CRs again (Jon, you really worked
418 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
419 dnl Version 2.9.4 checkin.
420 dnl - Merged popupfile and cookiefile, and added control over PCRS
421 dnl filtering, in new "permissionsfile".
422 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
423 dnl file error you now get a message box (in the Win32 GUI) rather
424 dnl than the program exiting with no explanation.
425 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
427 dnl - Removed tabs from "config"
428 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
429 dnl - Bumped up version number.
431 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
432 dnl Initial import of version 2.9.3 source tree
437 dnl =================================================================
438 dnl AutoConf Initialization
439 dnl =================================================================
441 AC_REVISION($Revision: 1.90 $)
444 if test ! -f config.h.in; then
445 echo "You need to run autoheader first. "
446 echo -n "Shall I do this for you now? (y/n) "
448 if test "$answer" != "y"; then
455 AC_CONFIG_HEADER([config.h])
460 AC_ARG_WITH(docbook, dnl
461 --with-docbook=[[yes|no|directory]]
462 Enable docbook documentation creation
463 (default = yes, for gnu and linux),[dnl
464 case "$with_docbook" in
474 AC_ARG_WITH(db2html, dnl
475 --with-db2html=<path/executable>
476 Set the location of the docbook to html converter
477 (default = search),[dnl
481 dnl =================================================================
482 dnl Application version number
483 dnl =================================================================
488 CODE_STATUS="UNRELEASED"
490 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
491 dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
492 dnl whenever CVS in a stable branch differs from the last release.
494 dnl =================================================================
495 dnl Substitute the version numbers
496 dnl =================================================================
498 AC_SUBST(VERSION_MAJOR)
499 AC_SUBST(VERSION_MINOR)
500 AC_SUBST(VERSION_POINT)
501 AC_SUBST(CODE_STATUS)
504 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
505 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
506 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
507 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
508 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
510 dnl =================================================================
511 dnl Checks for programs needed to build.
512 dnl =================================================================
514 dnl Keep AC_PROG_CC from setting its own defaults:
515 if test "X$CFLAGS" = "X"; then
526 AC_CHECK_PROG(GDB,gdb,yes,no)
527 AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
528 AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
532 dnl =================================================================
533 dnl debug, gcc and gdb support
534 dnl =================================================================
537 [ --with-debug Enable debug mode],
539 if test "x$withval" != "xno" ; then
540 if test $ac_cv_prog_cc_g = yes; then
541 if test "$GCC" = yes; then
543 CFLAGS="$CFLAGS -ggdb"
547 CFLAGS="$CFLAGS -Wshadow -Wconversion"
555 if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
556 if test "$GCC" = yes; then
563 dnl =================================================================
564 dnl Check for user and group validity
565 dnl =================================================================
568 if test "$EMXOS2" = yes; then
569 echo "Skipping user and group validity stuff.";
573 $ID privoxy >/dev/null 2>/dev/null
574 if test $? -ne 0 ; then
575 AC_MSG_WARN(There is no user 'privoxy' on this system)
577 AC_MSG_CHECKING([for user])
579 [ --with-user=privoxy Set user under which privoxy will run],
581 if test "x$withval" != "xyes"; then
582 if test $ID = no ; then
583 AC_MSG_ERROR(There is no 'id' program on this system)
585 AC_MSG_RESULT($with_user)
586 $ID $with_user 2>/dev/null >/dev/null
587 if test $? -eq 0 ; then
590 AC_MSG_ERROR(There is no user '$with_user' on this system)
594 AC_MSG_ERROR(We need a user if you give me this parameter)
598 if test $ID = no ; then
599 AC_MSG_ERROR(There is no 'id' programm on this system)
601 AC_MSG_RESULT(none specified)
608 AC_MSG_CHECKING([for group])
610 [ --with-group=privoxy Set group for privoxy],
612 if test "x$withval" != "xyes"; then
613 if test $BGROUPS = no ; then
614 AC_MSG_ERROR(There is no 'groups' program on this system)
616 AC_MSG_RESULT($with_group)
617 $BGROUPS $USER >/dev/null
618 if test $? -eq 0 ; then
619 # FIXME: this fails if valid group, but not first group
621 if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
622 AC_MSG_ERROR(The given value '$withval' does not match group entry)
627 AC_MSG_ERROR(There is no group entry for user '$USER')
631 AC_MSG_ERROR(We need a group if you give me this parameter)
635 if test $BGROUPS = no ; then
636 AC_MSG_ERROR(There is no 'groups' programm on this system)
638 AC_MSG_RESULT(none specified)
647 dnl =================================================================
648 dnl additional gcc flags
649 dnl =================================================================
652 CFLAGS="-pipe $CFLAGS"
656 dnl =================================================================
658 dnl =================================================================
660 dnl Must do this first.
662 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
663 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
664 dnl the compiler will use completely different sets of library
665 dnl and include files.
667 dnl =================================================================
672 if test "$MINGW32" = "yes"; then
675 if test "$CYGWIN" = "yes"; then
682 if test $dodk = auto; then
684 if test $target_type = unix; then
693 dnl Decide what to do based on target_type
694 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
695 dnl This is because we don't know yet whether pthread is enabled.
697 AC_ARG_ENABLE(mingw32,
698 [ --enable-mingw32 Use mingw32 for a Windows GUI],
699 [if test $enableval = yes; then
703 if test $target_type = mingw; then
705 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
706 PTHREAD_LIB=-lpthreadGC
707 echo "Using mingw32 (Win32 GUI)"
710 if test $target_type = cygwin; then
711 SPECIAL_CFLAGS="-mno-win32"
713 echo "Using Cygnus (Win32 command line)"
716 PTHREAD_LIB=-lpthread
721 dnl Checking which text html browser we have avaliable
722 if test $dodk != no; then
723 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
724 if test "$WDUMP" = false; then
725 AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\))
727 if test $DB2HTML = false; then
728 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
731 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
737 dnl If we use rpm, we need to check where %_topdir is
738 AC_CHECK_PROGS(RPMBIN,rpm,false)
739 if test $RPMBIN != false; then
740 RPM_BASE=`rpm --eval "%{_topdir}"`
741 if test "$RPM_BASE" = ""; then
742 RPM_BASE=/usr/src/redhat
747 dnl Check for jade, so we can build the documentation
748 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
751 dnl Check for man2html for docs.
752 AC_CHECK_PROGS(MAN2HTML,man2html,false)
755 dnl Set doc status flag for conditional content inclusions
756 DOC_STATUS=p-not-stable
757 if test $CODE_STATUS = stable; then
758 DOC_STATUS="p-stable"
762 dnl Checking for the docbook.dsl stylesheet file
763 dnl It is still not portable (directory slash)
765 if test $dodk = yes; then
766 if test $DKPREFIX = none; then
767 for i in /usr/share/sgml/docbook/dsssl-stylesheets \
768 /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl \
769 /usr/local/share/sgml/docbook/dsssl/modular \
770 /usr/share/sgml/docbook/stylesheet/dsssl/modular/ \
772 dnl echo -n does not fly with /bin/sh.
773 dnl echo -n "checking for $i/html/docbook.dsl..."
774 AC_MSG_CHECKING([for $i])
775 if test -f $i/html/docbook.dsl; then
783 # where are the catalogs?
784 for i in /usr/share/sgml/CATALOG.docbk30 \
785 /usr/share/sgml/CATALOG.docbk31 \
786 /usr/share/sgml/CATALOG.docbk31 \
787 /usr/local/share/sgml/docbook/3.0/docbook.cat \
788 /usr/local/share/sgml/docbook/3.1/docbook.cat \
789 /usr/share/sgml/docbook/dtd/3.1/docbook.cat \
791 dnl echo -n "checking for $i..."
792 AC_MSG_CHECKING([for $i])
795 JADECAT="$JADECAT -c $i"
805 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
806 old_CFLAGS_nospecial=$CFLAGS
807 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
809 # Hack to force AutoConf to use the CFLAGS we just set
810 dnl Warning: This may break with a future version of Autoconf
811 dnl Tested with autoconf 2.13
812 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
813 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
814 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
817 dnl =================================================================
819 dnl =================================================================
821 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
823 AC_ARG_ENABLE(pthread,
824 [ --disable-pthread Don't use POSIX threads (pthreads)],
825 [if test $enableval = no; then
830 if test $have_pthread = yes; then
832 AC_DEFINE(FEATURE_PTHREAD)
833 echo Using POSIX threads
834 if test "$GCC" = "yes"; then
835 # Set a GCC specific switch:
836 if test "$target_type" = "unix"; then
837 ac_jgf_save_CFLAGS=$CFLAGS
838 CFLAGS="$CFLAGS -pthread"
839 AC_TRY_LINK([#include <pthread.h>],
840 [void *p = pthread_create;],
842 # This compiler switch makes GCC on Linux thread-safe
843 # However, it's not supported on most other OS.
845 SPECIAL_CFLAGS="-pthread"
847 CFLAGS=$ac_jgf_save_CFLAGS
852 echo Using native threads
855 AC_SUBST(PTHREAD_ONLY)
857 dnl =================================================================
858 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
859 dnl gmtime and localtime
860 dnl =================================================================
862 dnl Next line needed to find the gethost*_r functions on Solaris
863 AC_CHECK_LIB(nsl, gethostbyname)
865 AC_CHECK_FUNC(gethostbyaddr_r, [
866 AC_MSG_CHECKING([signature of gethostbyaddr_r])
870 struct hostent *h, *hp;
873 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
875 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
876 AC_MSG_RESULT([8 args])
884 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
886 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
887 AC_MSG_RESULT([7 args])
892 struct hostent_data *d;
896 (void) gethostbyaddr_r(a, l, t, h, d)
898 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
899 AC_MSG_RESULT([5 args])
901 AC_MSG_RESULT(unrecognised)
909 AC_CHECK_FUNC(gethostbyname_r, [
910 AC_MSG_CHECKING([signature of gethostbyname_r])
914 struct hostent *h, *r;
917 (void) gethostbyname_r(n, h, b, bl, &r, &e)
919 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
920 AC_MSG_RESULT([6 args])
928 (void) gethostbyname_r(n, h, b, bl, &e)
930 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
931 AC_MSG_RESULT([5 args])
936 struct hostent_data *d;
939 (void) gethostbyname_r(n, h, d)
941 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
942 AC_MSG_RESULT([3 args])
944 AC_MSG_RESULT(unrecognised)
952 AC_CHECK_FUNC(gmtime_r, [
953 AC_MSG_CHECKING([signature of gmtime_r])
959 (void) gmtime_r(t, tm)
962 AC_DEFINE(HAVE_GMTIME_R)
964 AC_MSG_RESULT(unrecognised)
970 AC_CHECK_FUNC(localtime_r, [
971 AC_MSG_CHECKING([signature of localtime_r])
977 (void) localtime_r(t, tm)
980 AC_DEFINE(HAVE_LOCALTIME_R)
982 AC_MSG_RESULT(unrecognised)
988 dnl =================================================================
990 dnl FIXME: Not tested on Solaris yet...
991 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
992 dnl make these checks generic, e.g.:
993 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
994 dnl (Moritz Barsnick <moritz@barsnick.net>)
995 dnl =================================================================
1001 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
1002 AC_DEFINE(__EXTENSIONS__)
1003 if test "$GCC" = "yes"; then
1004 # Set a GCC specific switch:
1005 # This compiler switch makes Solaris thread-safe
1007 SPECIAL_CFLAGS="-pthreads"
1009 # What do we do without GCC? Guess this:
1010 SPECIAL_CFLAGS="-D_REENTRANT"
1015 AC_SUBST(SOCKET_LIB)
1017 dnl =================================================================
1018 dnl Solaris problem, and others perhaps (socklen_t is undefined)
1019 dnl =================================================================
1021 AC_MSG_CHECKING([for socklen_t])
1022 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
1024 AC_DEFINE(socklen_t,int,
1025 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
1028 dnl =================================================================
1030 dnl =================================================================
1033 *-os2-emx*) SOCKET_LIB=-lsocket
1037 AC_SUBST(SOCKET_LIB)
1039 dnl =================================================================
1040 dnl Mac OSX specific
1041 dnl =================================================================
1044 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix -DOSX_DARWIN"
1048 dnl =================================================================
1049 dnl OpenBSD specific
1050 dnl =================================================================
1053 *-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
1057 dnl =================================================================
1058 dnl AmigaOS specific
1059 dnl =================================================================
1064 *-amigaos) AMIGAOS_ONLY=
1068 AC_SUBST(AMIGAOS_ONLY)
1070 dnl =================================================================
1071 dnl Check for standard compiler stuff
1072 dnl =================================================================
1083 AC_CHECK_SIZEOF(int, 4)
1084 AC_CHECK_SIZEOF(char *, 4)
1085 AC_CHECK_SIZEOF(long, 4)
1086 AC_CHECK_SIZEOF(long long, 8)
1087 AC_CHECK_SIZEOF(size_t, 4)
1089 dnl Checks for header files.
1090 dnl AC_HEADER_SYS_WAIT
1091 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
1092 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])
1094 dnl Checks for library functions.
1096 dnl AC_CHECK_FUNC(strstr)
1097 dnl bcopy and memmove are for PCRE
1098 AC_CHECK_FUNCS([strerror bcopy memmove])
1099 AC_PROG_GCC_TRADITIONAL
1100 dnl uncommenting does not work for swa. suse linux
1104 dnl uncommenting does not work for swa. suse linux
1106 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset random regcomp select setlocale socket strchr strdup strerror strftime strptime strstr strtoul])
1109 dnl =================================================================
1110 dnl Checks for libraries.
1111 dnl =================================================================
1112 dnl Note: Some systems may have the library but not the system header
1113 dnl file, so we must check for both.
1114 dnl Also check for correct version
1115 AC_CHECK_LIB(pcre, pcre_compile, [
1116 AC_CHECK_HEADER(pcre.h, [
1117 AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1119 AC_CHECK_HEADER(pcre/pcre.h, [
1120 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])
1125 AC_CHECK_LIB(pcreposix, regcomp, [
1126 AC_CHECK_HEADER(pcreposix.h, [
1127 AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
1129 AC_CHECK_HEADER(pcre/pcreposix.h, [
1130 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)])
1131 ], [have_pcreposix=no])
1133 ], [have_pcreposix=no], -lpcre)
1135 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
1137 dnl =================================================================
1139 dnl =================================================================
1143 dnl =================================================================
1145 dnl =================================================================
1147 AC_ARG_ENABLE(toggle,
1148 [ --disable-toggle Don't support temporary disable],
1149 [if test $enableval = yes; then
1150 AC_DEFINE(FEATURE_TOGGLE)
1151 fi],AC_DEFINE(FEATURE_TOGGLE))
1153 AC_ARG_ENABLE(force,
1154 [ --disable-force Don't allow single-page disable],
1155 [if test $enableval = yes; then
1156 AC_DEFINE(FEATURE_FORCE_LOAD)
1157 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
1159 AC_ARG_ENABLE(fast-redirects,
1160 [ --disable-fast-redirects Don't support fast redirects],
1161 [if test $enableval = yes; then
1162 AC_DEFINE(FEATURE_FAST_REDIRECTS)
1163 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1165 AC_ARG_ENABLE(killpopup,
1166 [ --disable-killpopup Never block popups],
1167 [if test $enableval = yes; then
1168 AC_DEFINE(FEATURE_KILL_POPUPS)
1169 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1171 AC_ARG_ENABLE(stats,
1172 [ --disable-stats Don't keep statistics],
1173 [if test $enableval = yes; then
1174 AC_DEFINE(FEATURE_STATISTICS)
1175 fi],AC_DEFINE(FEATURE_STATISTICS))
1177 AC_ARG_ENABLE(ie-images,
1178 [ --enable-ie-images Enable a quick but not always reliable auto-detect whether requests from
1179 MS Internet Explorer are for an image or not.],
1180 [if test $enableval = yes; then
1181 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1184 AC_ARG_ENABLE(image-blocking,
1185 [ --disable-image-blocking Don't try to figure out whether a request is
1186 for an image or HTML - assume HTML.],
1187 [if test $enableval = yes; then
1188 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1190 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1192 AC_ARG_ENABLE(acl-files,
1193 [ --disable-acl-files Prevents the use of ACL files to control access to
1194 the proxy by IP address.],
1195 [if test $enableval = yes; then
1196 AC_DEFINE(FEATURE_ACL)
1198 AC_DEFINE(FEATURE_ACL))
1200 AC_ARG_ENABLE(trust-files,
1201 [ --disable-trust-files Prevents the use of trust files.],
1202 [if test $enableval = yes; then
1203 AC_DEFINE(FEATURE_TRUST)
1205 AC_DEFINE(FEATURE_TRUST))
1207 AC_ARG_ENABLE(jar-files,
1208 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1209 [if test $enableval = yes; then
1210 AC_DEFINE(FEATURE_COOKIE_JAR)
1212 AC_DEFINE(FEATURE_COOKIE_JAR))
1214 AC_ARG_ENABLE(editor,
1215 [ --disable-editor Prevents the use of the web-based actions file
1216 editor and web-based temporary disable setting.],
1217 [if test $enableval = yes; then
1218 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1220 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1222 AC_ARG_ENABLE(no-gifs,
1223 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1224 for built-in images. May not work with all browsers.],
1225 [if test $enableval = yes; then
1226 AC_DEFINE(FEATURE_NO_GIFS)
1230 dnl pcre/pcrs is needed for CGI anyway, so
1231 dnl the choice is only between static and
1234 AC_ARG_ENABLE(dynamic-pcre,
1235 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1236 libpcre is available],
1237 [ if test $enableval = "no"; then have_pcre=no; fi ])
1239 AC_ARG_ENABLE(dynamic-pcrs,
1240 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1241 libpcrs is available],
1242 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1245 # If we have libpcre and either we also have pcreposix or
1246 # we don't need pcreposix, then link pcre dynamically; else
1247 # build it and link statically
1249 if test $have_pcre = "yes"; then
1250 echo "using libpcre"
1253 LIBS="$LIBS -lpcre -lpcreposix"
1255 echo "using built-in static pcre"
1257 AC_DEFINE(STATIC_PCRE)
1261 # If we have libpcrs and pcre is linked dynamically
1262 # then also link pcrs dynamically, else build and link
1265 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1266 echo "using libpcrs"
1270 echo "using built-in static pcrs"
1271 AC_DEFINE(STATIC_PCRS)
1275 AC_SUBST(STATIC_PCRE_ONLY)
1276 AC_SUBST(STATIC_PCRS_ONLY)
1278 dnl =================================================================
1279 dnl Final cleanup and output
1280 dnl =================================================================
1282 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1284 CFLAGS=$old_CFLAGS_nospecial
1285 AC_SUBST(SPECIAL_CFLAGS)
1287 AC_SUBST(PTHREAD_LIB)
1289 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)