1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.68.2.16 2003/03/26 16:05:14 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.16 2003/03/26 16:05:14 oes
32 dnl Marked as 0.0.0 UNRELEASED
34 dnl Revision 1.68.2.15 2003/03/26 00:25:00 oes
35 dnl Bump version for 3.0.2
37 dnl Revision 1.68.2.14 2003/03/25 13:27:12 hal9
38 dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl.
40 dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes
41 dnl Set version info for 3.0.1 release
43 dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt
44 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.
46 dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes
47 dnl Fixed minor shell syntax bug
49 dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes
50 dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs
52 dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9
53 dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org
55 dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes
56 dnl Fixed broken handling of pre-set CFLAGS
58 dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9
59 dnl Port of make install, etc from main trunk. Needs testing! Add Slackware
60 dnl support, and other related changes. Update related docs.
62 dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes
63 dnl Marking as non-release
65 dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9
66 dnl Getting ready for 3.0 release.
68 dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes
69 dnl - Set Version to 2.9.20 (beta)
70 dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
71 dnl are located in a pcre/ subdir to the include path.
73 dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
74 dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
76 dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
77 dnl Bump version to 2.9.17.
79 dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
80 dnl Bumped version number for 2.9.16 freeze
82 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
83 dnl Detect if the compiler supports -pthread.
84 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
85 dnl machine to test this!)
87 dnl Revision 1.67 2002/05/03 14:33:59 oes
88 dnl Generate doc/soucre/ldp.dsl
90 dnl Revision 1.66 2002/05/03 00:41:56 oes
91 dnl Set version to 2.9.15 to comply with new versioning scheme
93 dnl Revision 1.65 2002/04/25 19:13:57 morcego
94 dnl Removed RPM release number declaration on configure.in
95 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
96 dnl targets (will produce an error, explaining who to do it, if no value
99 dnl Revision 1.64 2002/04/22 16:32:31 morcego
100 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
101 dnl -rh.spec: uid and gid are now macros
102 dnl -suse.spec: Changing the header Copyright to License (Copyright is
105 dnl Revision 1.63 2002/04/11 11:00:21 oes
106 dnl Applied Moritz' fix for socklen_t on Solaris
108 dnl Revision 1.62 2002/04/11 10:09:20 oes
111 dnl Revision 1.61 2002/04/10 18:14:45 morcego
112 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
113 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
115 dnl Revision 1.60 2002/04/09 16:38:49 oes
116 dnl Added detection of missing config.h.in
118 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
119 dnl Removing unnessacery tests (C++, ranlib)
121 dnl Revision 1.58 2002/04/04 20:49:20 swa
122 dnl attempt to consolidate the
123 dnl different dokbook versions.
125 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
126 dnl always use pcre for matching
128 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
129 dnl Removed references to gnu_regex
131 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
132 dnl Checking pcre version
134 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
135 dnl More changes needed around regex support.
137 dnl Revision 1.53 2002/03/29 20:09:01 swa
140 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
141 dnl Correcting compile problem with Debian
143 dnl Revision 1.51 2002/03/28 20:43:00 swa
144 dnl set make correctly
146 dnl Revision 1.50 2002/03/27 03:03:45 hal9
147 dnl Add test for man2html
149 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
150 dnl More Mac OSX support:
151 dnl - Get rid of extraneous, noisy -pthread warnings
152 dnl - Define unix so we get oes' unix-tagged changes
154 dnl Revision 1.48 2002/03/26 22:29:54 swa
155 dnl we have a new homepage!
157 dnl Revision 1.47 2002/03/26 16:41:00 hal9
158 dnl Upped RPM Release to 3 (need to build new RH packages)
160 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
161 dnl Making Docbook work under Windows
163 dnl Revision 1.45 2002/03/24 14:19:55 swa
164 dnl set rpm package release in configure.in. nowhere else.
166 dnl Revision 1.44 2002/03/24 13:25:43 swa
167 dnl name change related issues
169 dnl Revision 1.43 2002/03/24 12:56:21 swa
170 dnl name change related issues.
172 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
173 dnl Bumping version number to 2.9.12
175 dnl Revision 1.41 2002/03/19 19:30:04 morcego
176 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
179 dnl - configure will now check for db2html or docbook2html (should work now
180 dnl on SuSe without the docbktls package)
182 dnl Revision 1.40 2002/03/09 14:33:30 oes
183 dnl Fixing the (harmless) AC_CHECK_FILE warnings
185 dnl Revision 1.39 2002/03/08 16:46:13 oes
186 dnl Added --enable-no-gifs
188 dnl Revision 1.38 2002/03/08 14:13:50 morcego
189 dnl Fixing configure, to remove a command not found error.
191 dnl Revision 1.37 2002/03/08 12:58:21 oes
192 dnl Tiny bugfix in AC_ARG_WITH(debug)
194 dnl Revision 1.36 2002/03/06 23:50:36 morcego
195 dnl Will not test for a text browser if we are not using docbook.
197 dnl Revision 1.35 2002/03/06 21:55:52 morcego
198 dnl New configure option: --with-docbook=(yes|no|directory)
199 dnl Preliminary new platform detection code included. Will work with the
200 dnl old one for now. No use just trowing it away
202 dnl Revision 1.34 2002/03/06 20:57:00 morcego
203 dnl Fixing detection of stylesheets on SuSe.
205 dnl Revision 1.33 2002/03/05 17:31:11 morcego
206 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
208 dnl Revision 1.32 2002/03/05 14:07:43 morcego
209 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
210 dnl (based on sugestion by Sarantis Paskalis)
212 dnl Revision 1.31 2002/03/05 13:43:28 morcego
213 dnl Checking for text browser, so redhat-dok can work.
215 dnl Revision 1.30 2002/03/04 17:58:01 oes
216 dnl Deleted _DEBUG and PID_FILE_PATH
218 dnl Revision 1.29 2002/02/28 14:20:53 oes
219 dnl Fixed detection of gethost*_r functions on Solaris
221 dnl Revision 1.28 2002/02/27 15:02:38 oes
222 dnl Incremented version number
224 dnl Revision 1.27 2002/01/10 12:35:18 oes
225 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
226 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
227 dnl Is there a better way?
229 dnl Revision 1.26 2002/01/09 14:29:49 oes
230 dnl - Added AC_CHECK_FUNC tests for the availability of
231 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
232 dnl localtime_r, as well as AC_TRY_COMPILE tests to
233 dnl determine their signatures.
235 dnl - Fixed a bug with the init of CFLAGS that was
236 dnl reported by barsnick
238 dnl Revision 1.25 2002/01/04 15:27:18 oes
239 dnl Changed quoting of CODE_STATUS for use in make
241 dnl Revision 1.24 2001/12/30 14:07:31 steudten
242 dnl - Add signal handling (unix)
243 dnl - Add SIGHUP handler (unix)
244 dnl - Add creation of pidfile (unix)
245 dnl - Add action 'top' in rc file (RH)
246 dnl - Add entry 'SIGNALS' to manpage
247 dnl - Add exit message to logfile (unix)
249 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
250 dnl Change from "alpha" to "beta" in configure.in
252 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
253 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
254 dnl make break in a more obvious way.
256 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
257 dnl Bumping version number to 2.9.10
259 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
260 dnl Support for FEATURE_CGI_EDIT_ACTIONS
262 dnl Revision 1.19 2001/10/07 15:33:14 oes
263 dnl Removed FEATURE_DENY_GZIP
264 dnl Bumped up version number
266 dnl Revision 1.18 2001/09/13 13:10:24 steudten
268 dnl PreWork for Debug Interface.
269 dnl Add new option "--with-debug" to enable debugging (flags aso.)
271 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
272 dnl Mac OSX (Darwin) support added.
274 dnl Revision 1.16 2001/09/12 22:55:45 joergs
275 dnl AmigaOS support added.
277 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
279 dnl OS/2 port: update autoconf'd support for the platform.
281 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
282 dnl Fixing Solaris build (I hope) and tidying up #defines:
283 dnl - All feature #defines are now of the form FEATURE_xxx
284 dnl - Permanently turned off WIN_GUI_EDIT
285 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
287 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
288 dnl Major changes to build system in order to fix these bugs:
289 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
290 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
291 dnl which shared libraries are available
292 dnl - Solaris support (?) (Not tested under Solaris yet)
294 dnl Revision 1.12 2001/07/25 19:16:27 oes
295 dnl Bumping version number to 2.9.8
297 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
298 dnl Bumping version number to 2.9.7
300 dnl Revision 1.10 2001/07/18 17:25:04 oes
303 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
304 dnl Added support for linking with POSIX threads library
306 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
307 dnl Renaming #define STATIC to STATIC_PCRE
308 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
309 dnl POSIX threads support.
311 dnl Revision 1.7 2001/07/13 13:58:05 oes
312 dnl Completely reorganized the selection scheme for
313 dnl pcre, pcreposix, pcrs and gnu_regex:
315 dnl The presence of shared pcre, pcreposix or pcrs
316 dnl libraried is now autodetected. Additionally, the
317 dnl user can enforce using the built-in static variants
318 dnl by specifying --disable-dynamic-(pcre|pcrs).
319 dnl Care is taken to avoid that pcre is dyn, while pcreposix
320 dnl is static, if both are used and that pcrs is static if
323 dnl The choice between pcre, gnu or no regex for actionsfile
324 dnl URL matching is now via
325 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
326 dnl default being pcre.
328 dnl Revision 1.6 2001/06/29 21:56:40 oes
331 dnl Revision 1.5 2001/06/29 13:26:27 oes
332 dnl Introduced #define CODE_STATUS
334 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
335 dnl Unified blocklist/imagelist/permissionslist.
336 dnl File format is still under discussion, but the internal changes
337 dnl are (mostly) done.
339 dnl Also modified interceptor behaviour:
340 dnl - We now intercept all URLs beginning with one of the following
341 dnl prefixes (and *only* these prefixes):
343 dnl * http://ijbswa.sf.net/config/
344 dnl * http://ijbswa.sourceforge.net/config/
345 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
346 dnl - Internal changes so that intercepted and fast redirect pages
347 dnl are not replaced with an image.
348 dnl - Interceptors now have the option to send a binary page direct
349 dnl to the client. (i.e. ijb-send-banner uses this)
350 dnl - Implemented show-url-info interceptor. (Which is why I needed
351 dnl the above interceptors changes - a typical URL is
352 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
353 dnl The previous mechanism would not have intercepted that, and
354 dnl if it had been intercepted then it then it would have replaced
355 dnl it with an image.)
357 dnl Revision 1.3 2001/05/22 18:46:04 oes
359 dnl - Enabled filtering banners by size rather than URL
360 dnl by adding patterns that replace all standard banner
361 dnl sizes with the "Junkbuster" gif to the re_filterfile
363 dnl - Enabled filtering WebBugs by providing a pattern
364 dnl which kills all 1x1 images
366 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
367 dnl which is selected by the (nonstandard and therefore
368 dnl capital) letter 'U' in the option string.
369 dnl It causes the quantifiers to be ungreedy by default.
370 dnl Appending a ? turns back to greedy (!).
372 dnl - Added a new interceptor ijb-send-banner, which
373 dnl sends back the "Junkbuster" gif. Without imagelist or
374 dnl MSIE detection support, or if tinygif = 1, or the
375 dnl URL isn't recognized as an imageurl, a lame HTML
376 dnl explanation is sent instead.
378 dnl - Added new feature, which permits blocking remote
379 dnl script redirects and firing back a local redirect
381 dnl The feature is conditionally compiled, i.e. it
382 dnl can be disabled with --disable-fast-redirects,
383 dnl plus it must be activated by a "fast-redirects"
384 dnl line in the config file, has its own log level
385 dnl and of course wants to be displayed by show-proxy-args
386 dnl Note: Boy, all the #ifdefs in 1001 locations and
387 dnl all the fumbling with configure.in and acconfig.h
388 dnl were *way* more work than the feature itself :-(
390 dnl - Because a generic redirect template was needed for
391 dnl this, tinygif = 3 now uses the same.
393 dnl - Moved GIFs, and other static HTTP response templates
396 dnl - Some minor fixes
398 dnl - Removed some >400 CRs again (Jon, you really worked
401 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
402 dnl Version 2.9.4 checkin.
403 dnl - Merged popupfile and cookiefile, and added control over PCRS
404 dnl filtering, in new "permissionsfile".
405 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
406 dnl file error you now get a message box (in the Win32 GUI) rather
407 dnl than the program exiting with no explanation.
408 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
410 dnl - Removed tabs from "config"
411 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
412 dnl - Bumped up version number.
414 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
415 dnl Initial import of version 2.9.3 source tree
420 dnl =================================================================
421 dnl AutoConf Initialization
422 dnl =================================================================
424 AC_REVISION($Revision: 1.68.2.16 $)
427 if test ! -f config.h.in; then
428 echo "You need to run autoheader first. "
429 echo -n "Shall I do this for you now? (y/n) "
431 if test "$answer" != "y"; then
438 AC_CONFIG_HEADER([config.h])
443 AC_ARG_WITH(docbook, dnl
444 --with-docbook=[[yes|no|directory]]
445 Enable docbook documentation creation
446 (default = yes, for gnu and linux),[dnl
447 case "$with_docbook" in
457 AC_ARG_WITH(db2html, dnl
458 --with-db2html=<path/executable>
459 Set the location of the docbook to html converter
460 (default = search),[dnl
464 dnl =================================================================
465 dnl Application version number
466 dnl =================================================================
471 CODE_STATUS="UNRELEASED"
473 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
474 dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED"
475 dnl whenever CVS in a stable branch differs from the last release.
477 dnl =================================================================
478 dnl Substitute the version numbers
479 dnl =================================================================
481 AC_SUBST(VERSION_MAJOR)
482 AC_SUBST(VERSION_MINOR)
483 AC_SUBST(VERSION_POINT)
484 AC_SUBST(CODE_STATUS)
487 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
488 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
489 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
490 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
491 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
493 dnl =================================================================
494 dnl Checks for programs needed to build.
495 dnl =================================================================
497 dnl Keep AC_PROG_CC from setting its own defaults:
498 if test "X$CFLAGS" = "X"; then
509 AC_CHECK_PROG(GDB,gdb,yes,no)
510 AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin)
511 AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin)
515 dnl =================================================================
516 dnl debug, gcc and gdb support
517 dnl =================================================================
520 [ --with-debug Enable debug mode],
522 if test "x$withval" != "xno" ; then
523 if test $ac_cv_prog_cc_g = yes; then
524 if test "$GCC" = yes; then
526 CFLAGS="$CFLAGS -ggdb"
530 CFLAGS="$CFLAGS -Wshadow -Wconversion"
538 if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above)
539 if test "$GCC" = yes; then
546 dnl =================================================================
547 dnl Check for user and group validity
548 dnl =================================================================
551 if test "$EMXOS2" = yes; then
552 echo "Skipping user and group validity stuff.";
556 $ID privoxy >/dev/null 2>/dev/null
557 if test $? -ne 0 ; then
558 AC_MSG_WARN(There is no user 'privoxy' on this system)
560 AC_MSG_CHECKING([for user])
562 [ --with-user=privoxy Set user under which privoxy will run],
564 if test "x$withval" != "xyes"; then
565 if test $ID = no ; then
566 AC_MSG_ERROR(There is no 'id' program on this system)
568 AC_MSG_RESULT($with_user)
569 $ID $with_user 2>/dev/null >/dev/null
570 if test $? -eq 0 ; then
573 AC_MSG_ERROR(There is no user '$with_user' on this system)
577 AC_MSG_ERROR(We need a user if you give me this parameter)
581 if test $ID = no ; then
582 AC_MSG_ERROR(There is no 'id' programm on this system)
584 AC_MSG_RESULT(none specified)
591 AC_MSG_CHECKING([for group])
593 [ --with-group=privoxy Set group for privoxy],
595 if test "x$withval" != "xyes"; then
596 if test $BGROUPS = no ; then
597 AC_MSG_ERROR(There is no 'groups' program on this system)
599 AC_MSG_RESULT($with_group)
600 $BGROUPS $USER >/dev/null
601 if test $? -eq 0 ; then
602 # FIXME: this fails if valid group, but not first group
604 if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then
605 AC_MSG_ERROR(The given value '$withval' does not match group entry)
610 AC_MSG_ERROR(There is no group entry for user '$USER')
614 AC_MSG_ERROR(We need a group if you give me this parameter)
618 if test $BGROUPS = no ; then
619 AC_MSG_ERROR(There is no 'groups' programm on this system)
621 AC_MSG_RESULT(none specified)
630 dnl =================================================================
631 dnl additional gcc flags
632 dnl =================================================================
635 CFLAGS="-pipe $CFLAGS"
639 dnl =================================================================
641 dnl =================================================================
643 dnl Must do this first.
645 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
646 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
647 dnl the compiler will use completely different sets of library
648 dnl and include files.
650 dnl =================================================================
655 if test "$MINGW32" = "yes"; then
658 if test "$CYGWIN" = "yes"; then
665 if test $dodk = auto; then
667 if test $target_type = unix; then
676 dnl Decide what to do based on target_type
677 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
678 dnl This is because we don't know yet whether pthread is enabled.
680 AC_ARG_ENABLE(mingw32,
681 [ --enable-mingw32 Use mingw32 for a Windows GUI],
682 [if test $enableval = yes; then
686 if test $target_type = mingw; then
688 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
689 PTHREAD_LIB=-lpthreadGC
690 echo "Using mingw32 (Win32 GUI)"
693 if test $target_type = cygwin; then
694 SPECIAL_CFLAGS="-mno-win32"
696 echo "Using Cygnus (Win32 command line)"
699 PTHREAD_LIB=-lpthread
704 dnl Checking which text html browser we have avaliable
705 if test $dodk != no; then
706 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
707 if test "$WDUMP" = false; then
708 AC_MSG_WARN(You need some kind of text browser to build documentation \(w3m, lynx and links are supported\))
710 if test $DB2HTML = false; then
711 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
714 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
720 dnl If we use rpm, we need to check where %_topdir is
721 AC_CHECK_PROGS(RPMBIN,rpm,false)
722 if test $RPMBIN != false; then
723 RPM_BASE=`rpm --eval "%{_topdir}"`
724 if test "$RPM_BASE" = ""; then
725 RPM_BASE=/usr/src/redhat
730 dnl Check for jade, so we can build the documentation
731 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
734 dnl Check for man2html for docs.
735 AC_CHECK_PROGS(MAN2HTML,man2html,false)
738 dnl Set doc status flag for conditional content inclusions
739 DOC_STATUS=p-not-stable
740 if test $CODE_STATUS = stable; then
741 DOC_STATUS="p-stable"
745 dnl Checking for the docbook.dsl stylesheet file
746 dnl It is still not portable (directory slash)
748 if test $dodk = yes; then
749 if test $DKPREFIX = none; then
750 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
751 dnl echo -n does not fly with /bin/sh.
752 dnl echo -n "checking for $i/html/docbook.dsl..."
753 AC_MSG_CHECKING([for $i])
754 if test -f $i/html/docbook.dsl; then
762 # where are the catalogs?
763 for i in /usr/share/sgml/CATALOG.docbk30 \
764 /usr/share/sgml/CATALOG.docbk31 \
765 /usr/share/sgml/CATALOG.docbk31 \
766 /usr/local/share/sgml/docbook/3.0/docbook.cat \
767 /usr/local/share/sgml/docbook/3.1/docbook.cat \
769 dnl echo -n "checking for $i..."
770 AC_MSG_CHECKING([for $i])
773 JADECAT="$JADECAT -c $i"
783 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
784 old_CFLAGS_nospecial=$CFLAGS
785 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
787 # Hack to force AutoConf to use the CFLAGS we just set
788 dnl Warning: This may break with a future version of Autoconf
789 dnl Tested with autoconf 2.13
790 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
791 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
792 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
795 dnl =================================================================
797 dnl =================================================================
799 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
801 AC_ARG_ENABLE(pthread,
802 [ --disable-pthread Don't use POSIX threads (pthreads)],
803 [if test $enableval = no; then
808 if test $have_pthread = yes; then
810 AC_DEFINE(FEATURE_PTHREAD)
811 echo Using POSIX threads
812 if test "$GCC" = "yes"; then
813 # Set a GCC specific switch:
814 if test "$target_type" = "unix"; then
815 ac_jgf_save_CFLAGS=$CFLAGS
816 CFLAGS="$CFLAGS -pthread"
817 AC_TRY_LINK([#include <pthread.h>],
818 [void *p = pthread_create;],
820 # This compiler switch makes GCC on Linux thread-safe
821 # However, it's not supported on most other OS.
823 SPECIAL_CFLAGS="-pthread"
825 CFLAGS=$ac_jgf_save_CFLAGS
830 echo Using native threads
833 AC_SUBST(PTHREAD_ONLY)
835 dnl =================================================================
836 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
837 dnl gmtime and localtime
838 dnl =================================================================
840 dnl Next line needed to find the gethost*_r functions on Solaris
841 AC_CHECK_LIB(nsl, gethostbyname)
843 AC_CHECK_FUNC(gethostbyaddr_r, [
844 AC_MSG_CHECKING([signature of gethostbyaddr_r])
848 struct hostent *h, *hp;
851 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
853 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
854 AC_MSG_RESULT([8 args])
862 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
864 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
865 AC_MSG_RESULT([7 args])
870 struct hostent_data *d;
874 (void) gethostbyaddr_r(a, l, t, h, d)
876 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
877 AC_MSG_RESULT([5 args])
879 AC_MSG_RESULT(unrecognised)
887 AC_CHECK_FUNC(gethostbyname_r, [
888 AC_MSG_CHECKING([signature of gethostbyname_r])
892 struct hostent *h, *r;
895 (void) gethostbyname_r(n, h, b, bl, &r, &e)
897 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
898 AC_MSG_RESULT([6 args])
906 (void) gethostbyname_r(n, h, b, bl, &e)
908 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
909 AC_MSG_RESULT([5 args])
914 struct hostent_data *d;
917 (void) gethostbyname_r(n, h, d)
919 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
920 AC_MSG_RESULT([3 args])
922 AC_MSG_RESULT(unrecognised)
930 AC_CHECK_FUNC(gmtime_r, [
931 AC_MSG_CHECKING([signature of gmtime_r])
937 (void) gmtime_r(t, tm)
940 AC_DEFINE(HAVE_GMTIME_R)
942 AC_MSG_RESULT(unrecognised)
948 AC_CHECK_FUNC(localtime_r, [
949 AC_MSG_CHECKING([signature of localtime_r])
955 (void) localtime_r(t, tm)
958 AC_DEFINE(HAVE_LOCALTIME_R)
960 AC_MSG_RESULT(unrecognised)
966 dnl =================================================================
968 dnl FIXME: Not tested on Solaris yet...
969 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
970 dnl make these checks generic, e.g.:
971 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
972 dnl (Moritz Barsnick <moritz@barsnick.net>)
973 dnl =================================================================
979 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
980 AC_DEFINE(__EXTENSIONS__)
981 if test "$GCC" = "yes"; then
982 # Set a GCC specific switch:
983 # This compiler switch makes Solaris thread-safe
985 SPECIAL_CFLAGS="-pthreads"
987 # What do we do without GCC? Guess this:
988 SPECIAL_CFLAGS="-D_REENTRANT"
995 dnl =================================================================
996 dnl Solaris problem, and others perhaps (socklen_t is undefined)
997 dnl =================================================================
999 AC_MSG_CHECKING([for socklen_t])
1000 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
1002 AC_DEFINE(socklen_t,int,
1003 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
1006 dnl =================================================================
1008 dnl =================================================================
1011 *-os2-emx*) SOCKET_LIB=-lsocket
1015 AC_SUBST(SOCKET_LIB)
1017 dnl =================================================================
1018 dnl Mac OSX specific
1019 dnl =================================================================
1022 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix -DOSX_DARWIN"
1026 dnl =================================================================
1027 dnl OpenBSD specific
1028 dnl =================================================================
1031 *-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix"
1035 dnl =================================================================
1036 dnl AmigaOS specific
1037 dnl =================================================================
1042 *-amigaos) AMIGAOS_ONLY=
1046 AC_SUBST(AMIGAOS_ONLY)
1048 dnl =================================================================
1049 dnl Check for standard compiler stuff
1050 dnl =================================================================
1061 AC_CHECK_SIZEOF(int, 4)
1062 AC_CHECK_SIZEOF(char *, 4)
1063 AC_CHECK_SIZEOF(long, 4)
1064 AC_CHECK_SIZEOF(long long, 8)
1065 AC_CHECK_SIZEOF(size_t, 4)
1067 dnl Checks for header files.
1068 dnl AC_HEADER_SYS_WAIT
1069 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
1070 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])
1072 dnl Checks for library functions.
1074 dnl AC_CHECK_FUNC(strstr)
1075 dnl bcopy and memmove are for PCRE
1076 AC_CHECK_FUNCS([strerror bcopy memmove])
1077 AC_PROG_GCC_TRADITIONAL
1078 dnl uncommenting does not work for swa. suse linux
1082 dnl uncommenting does not work for swa. suse linux
1084 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
1087 dnl =================================================================
1088 dnl Checks for libraries.
1089 dnl =================================================================
1090 dnl Note: Some systems may have the library but not the system header
1091 dnl file, so we must check for both.
1092 dnl Also check for correct version
1093 AC_CHECK_LIB(pcre, pcre_compile, [
1094 AC_CHECK_HEADER(pcre.h, [
1095 AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
1097 AC_CHECK_HEADER(pcre/pcre.h, [
1098 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])
1103 AC_CHECK_LIB(pcreposix, regcomp, [
1104 AC_CHECK_HEADER(pcreposix.h, [
1105 AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
1107 AC_CHECK_HEADER(pcre/pcreposix.h, [
1108 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)])
1109 ], [have_pcreposix=no])
1111 ], [have_pcreposix=no], -lpcre)
1113 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
1115 dnl =================================================================
1117 dnl =================================================================
1121 dnl =================================================================
1123 dnl =================================================================
1125 AC_ARG_ENABLE(toggle,
1126 [ --disable-toggle Don't support temporary disable],
1127 [if test $enableval = yes; then
1128 AC_DEFINE(FEATURE_TOGGLE)
1129 fi],AC_DEFINE(FEATURE_TOGGLE))
1131 AC_ARG_ENABLE(force,
1132 [ --disable-force Don't allow single-page disable],
1133 [if test $enableval = yes; then
1134 AC_DEFINE(FEATURE_FORCE_LOAD)
1135 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
1137 AC_ARG_ENABLE(fast-redirects,
1138 [ --disable-fast-redirects Don't support fast redirects],
1139 [if test $enableval = yes; then
1140 AC_DEFINE(FEATURE_FAST_REDIRECTS)
1141 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1143 AC_ARG_ENABLE(killpopup,
1144 [ --disable-killpopup Never block popups],
1145 [if test $enableval = yes; then
1146 AC_DEFINE(FEATURE_KILL_POPUPS)
1147 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1149 AC_ARG_ENABLE(stats,
1150 [ --disable-stats Don't keep statistics],
1151 [if test $enableval = yes; then
1152 AC_DEFINE(FEATURE_STATISTICS)
1153 fi],AC_DEFINE(FEATURE_STATISTICS))
1155 AC_ARG_ENABLE(ie-images,
1156 [ --enable-ie-images Enable a quick but not always reliable auto-detect whether requests from
1157 MS Internet Explorer are for an image or not.],
1158 [if test $enableval = yes; then
1159 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1162 AC_ARG_ENABLE(image-blocking,
1163 [ --disable-image-blocking Don't try to figure out whether a request is
1164 for an image or HTML - assume HTML.],
1165 [if test $enableval = yes; then
1166 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1168 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1170 AC_ARG_ENABLE(acl-files,
1171 [ --disable-acl-files Prevents the use of ACL files to control access to
1172 the proxy by IP address.],
1173 [if test $enableval = yes; then
1174 AC_DEFINE(FEATURE_ACL)
1176 AC_DEFINE(FEATURE_ACL))
1178 AC_ARG_ENABLE(trust-files,
1179 [ --disable-trust-files Prevents the use of trust files.],
1180 [if test $enableval = yes; then
1181 AC_DEFINE(FEATURE_TRUST)
1183 AC_DEFINE(FEATURE_TRUST))
1185 AC_ARG_ENABLE(jar-files,
1186 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1187 [if test $enableval = yes; then
1188 AC_DEFINE(FEATURE_COOKIE_JAR)
1190 AC_DEFINE(FEATURE_COOKIE_JAR))
1192 AC_ARG_ENABLE(editor,
1193 [ --disable-editor Prevents the use of the web-based actions file
1194 editor and web-based temporary disable setting.],
1195 [if test $enableval = yes; then
1196 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1198 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1200 AC_ARG_ENABLE(no-gifs,
1201 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1202 for built-in images. May not work with all browsers.],
1203 [if test $enableval = yes; then
1204 AC_DEFINE(FEATURE_NO_GIFS)
1208 dnl pcre/pcrs is needed for CGI anyway, so
1209 dnl the choice is only between static and
1212 AC_ARG_ENABLE(dynamic-pcre,
1213 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1214 libpcre is available],
1215 [ if test $enableval = "no"; then have_pcre=no; fi ])
1217 AC_ARG_ENABLE(dynamic-pcrs,
1218 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1219 libpcrs is available],
1220 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1223 # If we have libpcre and either we also have pcreposix or
1224 # we don't need pcreposix, then link pcre dynamically; else
1225 # build it and link statically
1227 if test $have_pcre = "yes"; then
1228 echo "using libpcre"
1231 LIBS="$LIBS -lpcre -lpcreposix"
1233 echo "using built-in static pcre"
1235 AC_DEFINE(STATIC_PCRE)
1239 # If we have libpcrs and pcre is linked dynamically
1240 # then also link pcrs dynamically, else build and link
1243 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1244 echo "using libpcrs"
1248 echo "using built-in static pcrs"
1249 AC_DEFINE(STATIC_PCRS)
1253 AC_SUBST(STATIC_PCRE_ONLY)
1254 AC_SUBST(STATIC_PCRS_ONLY)
1256 dnl =================================================================
1257 dnl Final cleanup and output
1258 dnl =================================================================
1260 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1262 CFLAGS=$old_CFLAGS_nospecial
1263 AC_SUBST(SPECIAL_CFLAGS)
1265 AC_SUBST(PTHREAD_LIB)
1267 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)