1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.91 2006/08/13 22:01:51 fabiankeil 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.91 2006/08/13 22:01:51 fabiankeil
32 dnl Added checks for strptime() and random()
34 dnl Revision 1.90 2006/07/18 14:48:45 david__schmidt
35 dnl Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
36 dnl with what was really the latest development (the v_3_0_branch branch)
38 dnl Revision 1.68.2.20 2004/01/31 16:31:46 oes
39 dnl Resetting version info to 0.0.0 UNRELEASED
41 dnl Revision 1.68.2.19 2004/01/30 09:26:03 oes
42 dnl Added docbook paths for debian sarge; set status for release
44 dnl Revision 1.68.2.18 2003/12/08 15:10:29 oes
45 dnl Bugfix: --with-docbook now correctly accepts its path parameter. Thanks, Roland!
47 dnl Revision 1.68.2.17 2003/10/18 18:41:26 david__schmidt
48 dnl Update to remain buildable on OS/2 - remove the failures
49 dnl due to missing unixisms
51 dnl Revision 1.68.2.16 2003/03/26 16:05:14 oes
52 dnl Marked as 0.0.0 UNRELEASED
54 dnl Revision 1.68.2.15 2003/03/26 00:25:00 oes
55 dnl Bump version for 3.0.2
57 dnl Revision 1.68.2.14 2003/03/25 13:27:12 hal9
58 dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl.
60 dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes
61 dnl Set version info for 3.0.1 release
63 dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt
64 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.
66 dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes
67 dnl Fixed minor shell syntax bug
69 dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes
70 dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs
72 dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9
73 dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org
75 dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes
76 dnl Fixed broken handling of pre-set CFLAGS
78 dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9
79 dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
80 dnl support, and other related changes. Update related docs.
82 dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes
83 dnl Marking as non-release
85 dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9
86 dnl Getting ready for 3.0 release.
88 dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes
89 dnl - Set Version to 2.9.20 (beta)
90 dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
91 dnl are located in a pcre/ subdir to the include path.
93 dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
94 dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
96 dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
97 dnl Bump version to 2.9.17.
99 dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
100 dnl Bumped version number for 2.9.16 freeze
102 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
103 dnl Detect if the compiler supports -pthread.
104 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
105 dnl machine to test this!)
107 dnl Revision 1.67 2002/05/03 14:33:59 oes
108 dnl Generate doc/soucre/ldp.dsl
110 dnl Revision 1.66 2002/05/03 00:41:56 oes
111 dnl Set version to 2.9.15 to comply with new versioning scheme
113 dnl Revision 1.65 2002/04/25 19:13:57 morcego
114 dnl Removed RPM release number declaration on configure.in
115 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
116 dnl targets (will produce an error, explaining who to do it, if no value
119 dnl Revision 1.64 2002/04/22 16:32:31 morcego
120 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
121 dnl -rh.spec: uid and gid are now macros
122 dnl -suse.spec: Changing the header Copyright to License (Copyright is
125 dnl Revision 1.63 2002/04/11 11:00:21 oes
126 dnl Applied Moritz' fix for socklen_t on Solaris
128 dnl Revision 1.62 2002/04/11 10:09:20 oes
131 dnl Revision 1.61 2002/04/10 18:14:45 morcego
132 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
133 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
135 dnl Revision 1.60 2002/04/09 16:38:49 oes
136 dnl Added detection of missing config.h.in
138 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
139 dnl Removing unnessacery tests (C++, ranlib)
141 dnl Revision 1.58 2002/04/04 20:49:20 swa
142 dnl attempt to consolidate the
143 dnl different dokbook versions.
145 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
146 dnl always use pcre for matching
148 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
149 dnl Removed references to gnu_regex
151 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
152 dnl Checking pcre version
154 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
155 dnl More changes needed around regex support.
157 dnl Revision 1.53 2002/03/29 20:09:01 swa
160 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
161 dnl Correcting compile problem with Debian
163 dnl Revision 1.51 2002/03/28 20:43:00 swa
164 dnl set make correctly
166 dnl Revision 1.50 2002/03/27 03:03:45 hal9
167 dnl Add test for man2html
169 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
170 dnl More Mac OSX support:
171 dnl - Get rid of extraneous, noisy -pthread warnings
172 dnl - Define unix so we get oes' unix-tagged changes
174 dnl Revision 1.48 2002/03/26 22:29:54 swa
175 dnl we have a new homepage!
177 dnl Revision 1.47 2002/03/26 16:41:00 hal9
178 dnl Upped RPM Release to 3 (need to build new RH packages)
180 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
181 dnl Making Docbook work under Windows
183 dnl Revision 1.45 2002/03/24 14:19:55 swa
184 dnl set rpm package release in configure.in. nowhere else.
186 dnl Revision 1.44 2002/03/24 13:25:43 swa
187 dnl name change related issues
189 dnl Revision 1.43 2002/03/24 12:56:21 swa
190 dnl name change related issues.
192 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
193 dnl Bumping version number to 2.9.12
195 dnl Revision 1.41 2002/03/19 19:30:04 morcego
196 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
199 dnl - configure will now check for db2html or docbook2html (should work now
200 dnl on SuSe without the docbktls package)
202 dnl Revision 1.40 2002/03/09 14:33:30 oes
203 dnl Fixing the (harmless) AC_CHECK_FILE warnings
205 dnl Revision 1.39 2002/03/08 16:46:13 oes
206 dnl Added --enable-no-gifs
208 dnl Revision 1.38 2002/03/08 14:13:50 morcego
209 dnl Fixing configure, to remove a command not found error.
211 dnl Revision 1.37 2002/03/08 12:58:21 oes
212 dnl Tiny bugfix in AC_ARG_WITH(debug)
214 dnl Revision 1.36 2002/03/06 23:50:36 morcego
215 dnl Will not test for a text browser if we are not using docbook.
217 dnl Revision 1.35 2002/03/06 21:55:52 morcego
218 dnl New configure option: --with-docbook=(yes|no|directory)
219 dnl Preliminary new platform detection code included. Will work with the
220 dnl old one for now. No use just trowing it away
222 dnl Revision 1.34 2002/03/06 20:57:00 morcego
223 dnl Fixing detection of stylesheets on SuSe.
225 dnl Revision 1.33 2002/03/05 17:31:11 morcego
226 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
228 dnl Revision 1.32 2002/03/05 14:07:43 morcego
229 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
230 dnl (based on sugestion by Sarantis Paskalis)
232 dnl Revision 1.31 2002/03/05 13:43:28 morcego
233 dnl Checking for text browser, so redhat-dok can work.
235 dnl Revision 1.30 2002/03/04 17:58:01 oes
236 dnl Deleted _DEBUG and PID_FILE_PATH
238 dnl Revision 1.29 2002/02/28 14:20:53 oes
239 dnl Fixed detection of gethost*_r functions on Solaris
241 dnl Revision 1.28 2002/02/27 15:02:38 oes
242 dnl Incremented version number
244 dnl Revision 1.27 2002/01/10 12:35:18 oes
245 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
246 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
247 dnl Is there a better way?
249 dnl Revision 1.26 2002/01/09 14:29:49 oes
250 dnl - Added AC_CHECK_FUNC tests for the availability of
251 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
252 dnl localtime_r, as well as AC_TRY_COMPILE tests to
253 dnl determine their signatures.
255 dnl - Fixed a bug with the init of CFLAGS that was
256 dnl reported by barsnick
258 dnl Revision 1.25 2002/01/04 15:27:18 oes
259 dnl Changed quoting of CODE_STATUS for use in make
261 dnl Revision 1.24 2001/12/30 14:07:31 steudten
262 dnl - Add signal handling (unix)
263 dnl - Add SIGHUP handler (unix)
264 dnl - Add creation of pidfile (unix)
265 dnl - Add action 'top' in rc file (RH)
266 dnl - Add entry 'SIGNALS' to manpage
267 dnl - Add exit message to logfile (unix)
269 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
270 dnl Change from "alpha" to "beta" in configure.in
272 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
273 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
274 dnl make break in a more obvious way.
276 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
277 dnl Bumping version number to 2.9.10
279 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
280 dnl Support for FEATURE_CGI_EDIT_ACTIONS
282 dnl Revision 1.19 2001/10/07 15:33:14 oes
283 dnl Removed FEATURE_DENY_GZIP
284 dnl Bumped up version number
286 dnl Revision 1.18 2001/09/13 13:10:24 steudten
288 dnl PreWork for Debug Interface.
289 dnl Add new option "--with-debug" to enable debugging (flags aso.)
291 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
292 dnl Mac OSX (Darwin) support added.
294 dnl Revision 1.16 2001/09/12 22:55:45 joergs
295 dnl AmigaOS support added.
297 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
299 dnl OS/2 port: update autoconf'd support for the platform.
301 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
302 dnl Fixing Solaris build (I hope) and tidying up #defines:
303 dnl - All feature #defines are now of the form FEATURE_xxx
304 dnl - Permanently turned off WIN_GUI_EDIT
305 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
307 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
308 dnl Major changes to build system in order to fix these bugs:
309 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
310 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
311 dnl which shared libraries are available
312 dnl - Solaris support (?) (Not tested under Solaris yet)
314 dnl Revision 1.12 2001/07/25 19:16:27 oes
315 dnl Bumping version number to 2.9.8
317 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
318 dnl Bumping version number to 2.9.7
320 dnl Revision 1.10 2001/07/18 17:25:04 oes
323 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
324 dnl Added support for linking with POSIX threads library
326 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
327 dnl Renaming #define STATIC to STATIC_PCRE
328 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
329 dnl POSIX threads support.
331 dnl Revision 1.7 2001/07/13 13:58:05 oes
332 dnl Completely reorganized the selection scheme for
333 dnl pcre, pcreposix, pcrs and gnu_regex:
335 dnl The presence of shared pcre, pcreposix or pcrs
336 dnl libraried is now autodetected. Additionally, the
337 dnl user can enforce using the built-in static variants
338 dnl by specifying --disable-dynamic-(pcre|pcrs).
339 dnl Care is taken to avoid that pcre is dyn, while pcreposix
340 dnl is static, if both are used and that pcrs is static if
343 dnl The choice between pcre, gnu or no regex for actionsfile
344 dnl URL matching is now via
345 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
346 dnl default being pcre.
348 dnl Revision 1.6 2001/06/29 21:56:40 oes
351 dnl Revision 1.5 2001/06/29 13:26:27 oes
352 dnl Introduced #define CODE_STATUS
354 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
355 dnl Unified blocklist/imagelist/permissionslist.
356 dnl File format is still under discussion, but the internal changes
357 dnl are (mostly) done.
359 dnl Also modified interceptor behaviour:
360 dnl - We now intercept all URLs beginning with one of the following
361 dnl prefixes (and *only* these prefixes):
363 dnl * http://ijbswa.sf.net/config/
364 dnl * http://ijbswa.sourceforge.net/config/
365 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
366 dnl - Internal changes so that intercepted and fast redirect pages
367 dnl are not replaced with an image.
368 dnl - Interceptors now have the option to send a binary page direct
369 dnl to the client. (i.e. ijb-send-banner uses this)
370 dnl - Implemented show-url-info interceptor. (Which is why I needed
371 dnl the above interceptors changes - a typical URL is
372 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
373 dnl The previous mechanism would not have intercepted that, and
374 dnl if it had been intercepted then it then it would have replaced
375 dnl it with an image.)
377 dnl Revision 1.3 2001/05/22 18:46:04 oes
379 dnl - Enabled filtering banners by size rather than URL
380 dnl by adding patterns that replace all standard banner
381 dnl sizes with the "Junkbuster" gif to the re_filterfile
383 dnl - Enabled filtering WebBugs by providing a pattern
384 dnl which kills all 1x1 images
386 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
387 dnl which is selected by the (nonstandard and therefore
388 dnl capital) letter 'U' in the option string.
389 dnl It causes the quantifiers to be ungreedy by default.
390 dnl Appending a ? turns back to greedy (!).
392 dnl - Added a new interceptor ijb-send-banner, which
393 dnl sends back the "Junkbuster" gif. Without imagelist or
394 dnl MSIE detection support, or if tinygif = 1, or the
395 dnl URL isn't recognized as an imageurl, a lame HTML
396 dnl explanation is sent instead.
398 dnl - Added new feature, which permits blocking remote
399 dnl script redirects and firing back a local redirect
401 dnl The feature is conditionally compiled, i.e. it
402 dnl can be disabled with --disable-fast-redirects,
403 dnl plus it must be activated by a "fast-redirects"
404 dnl line in the config file, has its own log level
405 dnl and of course wants to be displayed by show-proxy-args
406 dnl Note: Boy, all the #ifdefs in 1001 locations and
407 dnl all the fumbling with configure.in and acconfig.h
408 dnl were *way* more work than the feature itself :-(
410 dnl - Because a generic redirect template was needed for
411 dnl this, tinygif = 3 now uses the same.
413 dnl - Moved GIFs, and other static HTTP response templates
416 dnl - Some minor fixes
418 dnl - Removed some >400 CRs again (Jon, you really worked
421 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
422 dnl Version 2.9.4 checkin.
423 dnl - Merged popupfile and cookiefile, and added control over PCRS
424 dnl filtering, in new "permissionsfile".
425 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
426 dnl file error you now get a message box (in the Win32 GUI) rather
427 dnl than the program exiting with no explanation.
428 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
430 dnl - Removed tabs from "config"
431 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
432 dnl - Bumped up version number.
434 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
435 dnl Initial import of version 2.9.3 source tree
440 dnl =================================================================
441 dnl AutoConf Initialization
442 dnl =================================================================
444 AC_REVISION($Revision: 1.91 $)
447 if test ! -f config.h.in; then
448 echo "You need to run autoheader first. "
449 echo -n "Shall I do this for you now? (y/n) "
451 if test "$answer" != "y"; then
458 AC_CONFIG_HEADER([config.h])
463 AC_ARG_WITH(docbook, dnl
464 --with-docbook=[[yes|no|directory]]
465 Enable docbook documentation creation
466 (default = yes, for gnu and linux),[dnl
467 case "$with_docbook" in
477 AC_ARG_WITH(db2html, dnl
478 --with-db2html=<path/executable>
479 Set the location of the docbook to html converter
480 (default = search),[dnl
484 dnl =================================================================
485 dnl Application version number
486 dnl =================================================================
491 CODE_STATUS="UNRELEASED"
493 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
494 dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
495 dnl whenever CVS in a stable branch differs from the last release.
497 dnl =================================================================
498 dnl Substitute the version numbers
499 dnl =================================================================
501 AC_SUBST(VERSION_MAJOR)
502 AC_SUBST(VERSION_MINOR)
503 AC_SUBST(VERSION_POINT)
504 AC_SUBST(CODE_STATUS)
507 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
508 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
509 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
510 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
511 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
513 dnl =================================================================
514 dnl Checks for programs needed to build.
515 dnl =================================================================
517 dnl Keep AC_PROG_CC from setting its own defaults:
518 if test "X$CFLAGS" = "X"; then
529 AC_CHECK_PROG(GDB,gdb,yes,no)
530 AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
531 AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
535 dnl =================================================================
536 dnl debug, gcc and gdb support
537 dnl =================================================================
540 [ --with-debug Enable debug mode],
542 if test "x$withval" != "xno" ; then
543 if test $ac_cv_prog_cc_g = yes; then
544 if test "$GCC" = yes; then
546 CFLAGS="$CFLAGS -ggdb"
550 CFLAGS="$CFLAGS -Wshadow -Wconversion"
558 if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
559 if test "$GCC" = yes; then
566 dnl =================================================================
567 dnl Check for user and group validity
568 dnl =================================================================
571 if test "$EMXOS2" = yes; then
572 echo "Skipping user and group validity stuff.";
576 $ID privoxy >/dev/null 2>/dev/null
577 if test $? -ne 0 ; then
578 AC_MSG_WARN(There is no user 'privoxy' on this system)
580 AC_MSG_CHECKING([for user])
582 [ --with-user=privoxy Set user under which privoxy will run],
584 if test "x$withval" != "xyes"; then
585 if test $ID = no ; then
586 AC_MSG_ERROR(There is no 'id' program on this system)
588 AC_MSG_RESULT($with_user)
589 $ID $with_user 2>/dev/null >/dev/null
590 if test $? -eq 0 ; then
593 AC_MSG_ERROR(There is no user '$with_user' on this system)
597 AC_MSG_ERROR(We need a user if you give me this parameter)
601 if test $ID = no ; then
602 AC_MSG_ERROR(There is no 'id' programm on this system)
604 AC_MSG_RESULT(none specified)
611 AC_MSG_CHECKING([for group])
613 [ --with-group=privoxy Set group for privoxy],
615 if test "x$withval" != "xyes"; then
616 if test $BGROUPS = no ; then
617 AC_MSG_ERROR(There is no 'groups' program on this system)
619 AC_MSG_RESULT($with_group)
620 $BGROUPS $USER >/dev/null
621 if test $? -eq 0 ; then
622 # FIXME: this fails if valid group, but not first group
624 if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
625 AC_MSG_ERROR(The given value '$withval' does not match group entry)
630 AC_MSG_ERROR(There is no group entry for user '$USER')
634 AC_MSG_ERROR(We need a group if you give me this parameter)
638 if test $BGROUPS = no ; then
639 AC_MSG_ERROR(There is no 'groups' programm on this system)
641 AC_MSG_RESULT(none specified)
650 dnl =================================================================
651 dnl additional gcc flags
652 dnl =================================================================
655 CFLAGS="-pipe $CFLAGS"
659 dnl =================================================================
661 dnl =================================================================
663 dnl Must do this first.
665 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
666 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
667 dnl the compiler will use completely different sets of library
668 dnl and include files.
670 dnl =================================================================
675 if test "$MINGW32" = "yes"; then
678 if test "$CYGWIN" = "yes"; then
685 if test $dodk = auto; then
687 if test $target_type = unix; then
696 dnl Decide what to do based on target_type
697 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
698 dnl This is because we don't know yet whether pthread is enabled.
700 AC_ARG_ENABLE(mingw32,
701 [ --enable-mingw32 Use mingw32 for a Windows GUI],
702 [if test $enableval = yes; then
706 if test $target_type = mingw; then
708 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
709 PTHREAD_LIB=-lpthreadGC
710 echo "Using mingw32 (Win32 GUI)"
713 if test $target_type = cygwin; then
714 SPECIAL_CFLAGS="-mno-win32"
716 echo "Using Cygnus (Win32 command line)"
719 PTHREAD_LIB=-lpthread
724 dnl Checking which text html browser we have avaliable
725 if test $dodk != no; then
726 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
727 if test "$WDUMP" = false; then
728 AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\))
730 if test $DB2HTML = false; then
731 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
734 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
740 dnl If we use rpm, we need to check where %_topdir is
741 AC_CHECK_PROGS(RPMBIN,rpm,false)
742 if test $RPMBIN != false; then
743 RPM_BASE=`rpm --eval "%{_topdir}"`
744 if test "$RPM_BASE" = ""; then
745 RPM_BASE=/usr/src/redhat
750 dnl Check for jade, so we can build the documentation
751 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
754 dnl Check for man2html for docs.
755 AC_CHECK_PROGS(MAN2HTML,man2html,false)
758 dnl Set doc status flag for conditional content inclusions
759 DOC_STATUS=p-not-stable
760 if test $CODE_STATUS = stable; then
761 DOC_STATUS="p-stable"
765 dnl Checking for the docbook.dsl stylesheet file
766 dnl It is still not portable (directory slash)
768 if test $dodk = yes; then
769 if test $DKPREFIX = none; then
770 for i in /usr/share/sgml/docbook/dsssl-stylesheets \
771 /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl \
772 /usr/local/share/sgml/docbook/dsssl/modular \
773 /usr/share/sgml/docbook/stylesheet/dsssl/modular/ \
775 dnl echo -n does not fly with /bin/sh.
776 dnl echo -n "checking for $i/html/docbook.dsl..."
777 AC_MSG_CHECKING([for $i])
778 if test -f $i/html/docbook.dsl; then
786 # where are the catalogs?
787 for i in /usr/share/sgml/CATALOG.docbk30 \
788 /usr/share/sgml/CATALOG.docbk31 \
789 /usr/share/sgml/CATALOG.docbk31 \
790 /usr/local/share/sgml/docbook/3.0/docbook.cat \
791 /usr/local/share/sgml/docbook/3.1/docbook.cat \
792 /usr/share/sgml/docbook/dtd/3.1/docbook.cat \
794 dnl echo -n "checking for $i..."
795 AC_MSG_CHECKING([for $i])
798 JADECAT="$JADECAT -c $i"
808 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
809 old_CFLAGS_nospecial=$CFLAGS
810 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
812 # Hack to force AutoConf to use the CFLAGS we just set
813 dnl Warning: This may break with a future version of Autoconf
814 dnl Tested with autoconf 2.13
815 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
816 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
817 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
820 dnl =================================================================
822 dnl =================================================================
824 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
826 AC_ARG_ENABLE(pthread,
827 [ --disable-pthread Don't use POSIX threads (pthreads)],
828 [if test $enableval = no; then
833 if test $have_pthread = yes; then
835 AC_DEFINE(FEATURE_PTHREAD)
836 echo Using POSIX threads
837 if test "$GCC" = "yes"; then
838 # Set a GCC specific switch:
839 if test "$target_type" = "unix"; then
840 ac_jgf_save_CFLAGS=$CFLAGS
841 CFLAGS="$CFLAGS -pthread"
842 AC_TRY_LINK([#include <pthread.h>],
843 [void *p = pthread_create;],
845 # This compiler switch makes GCC on Linux thread-safe
846 # However, it's not supported on most other OS.
848 SPECIAL_CFLAGS="-pthread"
850 CFLAGS=$ac_jgf_save_CFLAGS
855 echo Using native threads
858 AC_SUBST(PTHREAD_ONLY)
860 dnl =================================================================
861 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
862 dnl gmtime and localtime
863 dnl =================================================================
865 dnl Next line needed to find the gethost*_r functions on Solaris
866 AC_CHECK_LIB(nsl, gethostbyname)
868 AC_CHECK_FUNC(gethostbyaddr_r, [
869 AC_MSG_CHECKING([signature of gethostbyaddr_r])
873 struct hostent *h, *hp;
876 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
878 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
879 AC_MSG_RESULT([8 args])
887 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
889 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
890 AC_MSG_RESULT([7 args])
895 struct hostent_data *d;
899 (void) gethostbyaddr_r(a, l, t, h, d)
901 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
902 AC_MSG_RESULT([5 args])
904 AC_MSG_RESULT(unrecognised)
912 AC_CHECK_FUNC(gethostbyname_r, [
913 AC_MSG_CHECKING([signature of gethostbyname_r])
917 struct hostent *h, *r;
920 (void) gethostbyname_r(n, h, b, bl, &r, &e)
922 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
923 AC_MSG_RESULT([6 args])
931 (void) gethostbyname_r(n, h, b, bl, &e)
933 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
934 AC_MSG_RESULT([5 args])
939 struct hostent_data *d;
942 (void) gethostbyname_r(n, h, d)
944 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
945 AC_MSG_RESULT([3 args])
947 AC_MSG_RESULT(unrecognised)
955 AC_CHECK_FUNC(gmtime_r, [
956 AC_MSG_CHECKING([signature of gmtime_r])
962 (void) gmtime_r(t, tm)
965 AC_DEFINE(HAVE_GMTIME_R)
967 AC_MSG_RESULT(unrecognised)
973 AC_CHECK_FUNC(localtime_r, [
974 AC_MSG_CHECKING([signature of localtime_r])
980 (void) localtime_r(t, tm)
983 AC_DEFINE(HAVE_LOCALTIME_R)
985 AC_MSG_RESULT(unrecognised)
991 dnl =================================================================
993 dnl FIXME: Not tested on Solaris yet...
994 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
995 dnl make these checks generic, e.g.:
996 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
997 dnl (Moritz Barsnick <moritz@barsnick.net>)
998 dnl =================================================================
1004 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
1005 AC_DEFINE(__EXTENSIONS__)
1006 if test "$GCC" = "yes"; then
1007 # Set a GCC specific switch:
1008 # This compiler switch makes Solaris thread-safe
1010 SPECIAL_CFLAGS="-pthreads"
1012 # What do we do without GCC? Guess this:
1013 SPECIAL_CFLAGS="-D_REENTRANT"
1018 AC_SUBST(SOCKET_LIB)
1020 dnl =================================================================
1021 dnl Solaris problem, and others perhaps (socklen_t is undefined)
1022 dnl =================================================================
1024 AC_MSG_CHECKING([for socklen_t])
1025 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
1027 AC_DEFINE(socklen_t,int,
1028 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
1031 dnl =================================================================
1033 dnl =================================================================
1036 *-os2-emx*) SOCKET_LIB=-lsocket
1040 AC_SUBST(SOCKET_LIB)
1042 dnl =================================================================
1043 dnl Mac OSX specific
1044 dnl =================================================================
1047 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix -DOSX_DARWIN"
1051 dnl =================================================================
1052 dnl OpenBSD specific
1053 dnl =================================================================
1056 *-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
1060 dnl =================================================================
1061 dnl AmigaOS specific
1062 dnl =================================================================
1067 *-amigaos) AMIGAOS_ONLY=
1071 AC_SUBST(AMIGAOS_ONLY)
1073 dnl =================================================================
1074 dnl Check for standard compiler stuff
1075 dnl =================================================================
1086 AC_CHECK_SIZEOF(int, 4)
1087 AC_CHECK_SIZEOF(char *, 4)
1088 AC_CHECK_SIZEOF(long, 4)
1089 AC_CHECK_SIZEOF(long long, 8)
1090 AC_CHECK_SIZEOF(size_t, 4)
1092 dnl Checks for header files.
1093 dnl AC_HEADER_SYS_WAIT
1094 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
1095 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])
1097 dnl Checks for library functions.
1099 dnl AC_CHECK_FUNC(strstr)
1100 dnl bcopy and memmove are for PCRE
1101 AC_CHECK_FUNCS([strerror bcopy memmove])
1102 AC_PROG_GCC_TRADITIONAL
1103 dnl uncommenting does not work for swa. suse linux
1107 dnl uncommenting does not work for swa. suse linux
1109 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 timegm])
1112 dnl =================================================================
1113 dnl Checks for libraries.
1114 dnl =================================================================
1115 dnl Note: Some systems may have the library but not the system header
1116 dnl file, so we must check for both.
1117 dnl Also check for correct version
1118 AC_CHECK_LIB(pcre, pcre_compile, [
1119 AC_CHECK_HEADER(pcre.h, [
1120 AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1122 AC_CHECK_HEADER(pcre/pcre.h, [
1123 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])
1128 AC_CHECK_LIB(pcreposix, regcomp, [
1129 AC_CHECK_HEADER(pcreposix.h, [
1130 AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
1132 AC_CHECK_HEADER(pcre/pcreposix.h, [
1133 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)])
1134 ], [have_pcreposix=no])
1136 ], [have_pcreposix=no], -lpcre)
1138 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
1140 dnl =================================================================
1142 dnl =================================================================
1146 dnl =================================================================
1148 dnl =================================================================
1150 AC_ARG_ENABLE(toggle,
1151 [ --disable-toggle Don't support temporary disable],
1152 [if test $enableval = yes; then
1153 AC_DEFINE(FEATURE_TOGGLE)
1154 fi],AC_DEFINE(FEATURE_TOGGLE))
1156 AC_ARG_ENABLE(force,
1157 [ --disable-force Don't allow single-page disable],
1158 [if test $enableval = yes; then
1159 AC_DEFINE(FEATURE_FORCE_LOAD)
1160 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
1162 AC_ARG_ENABLE(fast-redirects,
1163 [ --disable-fast-redirects Don't support fast redirects],
1164 [if test $enableval = yes; then
1165 AC_DEFINE(FEATURE_FAST_REDIRECTS)
1166 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1168 AC_ARG_ENABLE(killpopup,
1169 [ --disable-killpopup Never block popups],
1170 [if test $enableval = yes; then
1171 AC_DEFINE(FEATURE_KILL_POPUPS)
1172 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1174 AC_ARG_ENABLE(stats,
1175 [ --disable-stats Don't keep statistics],
1176 [if test $enableval = yes; then
1177 AC_DEFINE(FEATURE_STATISTICS)
1178 fi],AC_DEFINE(FEATURE_STATISTICS))
1180 AC_ARG_ENABLE(ie-images,
1181 [ --enable-ie-images Enable a quick but not always reliable auto-detect whether requests from
1182 MS Internet Explorer are for an image or not.],
1183 [if test $enableval = yes; then
1184 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1187 AC_ARG_ENABLE(image-blocking,
1188 [ --disable-image-blocking Don't try to figure out whether a request is
1189 for an image or HTML - assume HTML.],
1190 [if test $enableval = yes; then
1191 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1193 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1195 AC_ARG_ENABLE(acl-files,
1196 [ --disable-acl-files Prevents the use of ACL files to control access to
1197 the proxy by IP address.],
1198 [if test $enableval = yes; then
1199 AC_DEFINE(FEATURE_ACL)
1201 AC_DEFINE(FEATURE_ACL))
1203 AC_ARG_ENABLE(trust-files,
1204 [ --disable-trust-files Prevents the use of trust files.],
1205 [if test $enableval = yes; then
1206 AC_DEFINE(FEATURE_TRUST)
1208 AC_DEFINE(FEATURE_TRUST))
1210 AC_ARG_ENABLE(jar-files,
1211 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1212 [if test $enableval = yes; then
1213 AC_DEFINE(FEATURE_COOKIE_JAR)
1215 AC_DEFINE(FEATURE_COOKIE_JAR))
1217 AC_ARG_ENABLE(editor,
1218 [ --disable-editor Prevents the use of the web-based actions file
1219 editor and web-based temporary disable setting.],
1220 [if test $enableval = yes; then
1221 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1223 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1225 AC_ARG_ENABLE(no-gifs,
1226 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1227 for built-in images. May not work with all browsers.],
1228 [if test $enableval = yes; then
1229 AC_DEFINE(FEATURE_NO_GIFS)
1233 dnl pcre/pcrs is needed for CGI anyway, so
1234 dnl the choice is only between static and
1237 AC_ARG_ENABLE(dynamic-pcre,
1238 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1239 libpcre is available],
1240 [ if test $enableval = "no"; then have_pcre=no; fi ])
1242 AC_ARG_ENABLE(dynamic-pcrs,
1243 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1244 libpcrs is available],
1245 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1248 # If we have libpcre and either we also have pcreposix or
1249 # we don't need pcreposix, then link pcre dynamically; else
1250 # build it and link statically
1252 if test $have_pcre = "yes"; then
1253 echo "using libpcre"
1256 LIBS="$LIBS -lpcre -lpcreposix"
1258 echo "using built-in static pcre"
1260 AC_DEFINE(STATIC_PCRE)
1264 # If we have libpcrs and pcre is linked dynamically
1265 # then also link pcrs dynamically, else build and link
1268 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1269 echo "using libpcrs"
1273 echo "using built-in static pcrs"
1274 AC_DEFINE(STATIC_PCRS)
1278 AC_SUBST(STATIC_PCRE_ONLY)
1279 AC_SUBST(STATIC_PCRS_ONLY)
1281 dnl =================================================================
1282 dnl Final cleanup and output
1283 dnl =================================================================
1285 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1287 CFLAGS=$old_CFLAGS_nospecial
1288 AC_SUBST(SPECIAL_CFLAGS)
1290 AC_SUBST(PTHREAD_LIB)
1292 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)