1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.68.2.1 2002/07/26 15:21:12 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.1 2002/07/26 15:21:12 oes
32 dnl Bumped version number for 2.9.16 freeze
34 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
35 dnl Detect if the compiler supports -pthread.
36 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
37 dnl machine to test this!)
39 dnl Revision 1.67 2002/05/03 14:33:59 oes
40 dnl Generate doc/soucre/ldp.dsl
42 dnl Revision 1.66 2002/05/03 00:41:56 oes
43 dnl Set version to 2.9.15 to comply with new versioning scheme
45 dnl Revision 1.65 2002/04/25 19:13:57 morcego
46 dnl Removed RPM release number declaration on configure.in
47 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
48 dnl targets (will produce an error, explaining who to do it, if no value
51 dnl Revision 1.64 2002/04/22 16:32:31 morcego
52 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
53 dnl -rh.spec: uid and gid are now macros
54 dnl -suse.spec: Changing the header Copyright to License (Copyright is
57 dnl Revision 1.63 2002/04/11 11:00:21 oes
58 dnl Applied Moritz' fix for socklen_t on Solaris
60 dnl Revision 1.62 2002/04/11 10:09:20 oes
63 dnl Revision 1.61 2002/04/10 18:14:45 morcego
64 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
65 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
67 dnl Revision 1.60 2002/04/09 16:38:49 oes
68 dnl Added detection of missing config.h.in
70 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
71 dnl Removing unnessacery tests (C++, ranlib)
73 dnl Revision 1.58 2002/04/04 20:49:20 swa
74 dnl attempt to consolidate the
75 dnl different dokbook versions.
77 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
78 dnl always use pcre for matching
80 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
81 dnl Removed references to gnu_regex
83 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
84 dnl Checking pcre version
86 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
87 dnl More changes needed around regex support.
89 dnl Revision 1.53 2002/03/29 20:09:01 swa
92 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
93 dnl Correcting compile problem with Debian
95 dnl Revision 1.51 2002/03/28 20:43:00 swa
96 dnl set make correctly
98 dnl Revision 1.50 2002/03/27 03:03:45 hal9
99 dnl Add test for man2html
101 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
102 dnl More Mac OSX support:
103 dnl - Get rid of extraneous, noisy -pthread warnings
104 dnl - Define unix so we get oes' unix-tagged changes
106 dnl Revision 1.48 2002/03/26 22:29:54 swa
107 dnl we have a new homepage!
109 dnl Revision 1.47 2002/03/26 16:41:00 hal9
110 dnl Upped RPM Release to 3 (need to build new RH packages)
112 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
113 dnl Making Docbook work under Windows
115 dnl Revision 1.45 2002/03/24 14:19:55 swa
116 dnl set rpm package release in configure.in. nowhere else.
118 dnl Revision 1.44 2002/03/24 13:25:43 swa
119 dnl name change related issues
121 dnl Revision 1.43 2002/03/24 12:56:21 swa
122 dnl name change related issues.
124 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
125 dnl Bumping version number to 2.9.12
127 dnl Revision 1.41 2002/03/19 19:30:04 morcego
128 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
131 dnl - configure will now check for db2html or docbook2html (should work now
132 dnl on SuSe without the docbktls package)
134 dnl Revision 1.40 2002/03/09 14:33:30 oes
135 dnl Fixing the (harmless) AC_CHECK_FILE warnings
137 dnl Revision 1.39 2002/03/08 16:46:13 oes
138 dnl Added --enable-no-gifs
140 dnl Revision 1.38 2002/03/08 14:13:50 morcego
141 dnl Fixing configure, to remove a command not found error.
143 dnl Revision 1.37 2002/03/08 12:58:21 oes
144 dnl Tiny bugfix in AC_ARG_WITH(debug)
146 dnl Revision 1.36 2002/03/06 23:50:36 morcego
147 dnl Will not test for a text browser if we are not using docbook.
149 dnl Revision 1.35 2002/03/06 21:55:52 morcego
150 dnl New configure option: --with-docbook=(yes|no|directory)
151 dnl Preliminary new platform detection code included. Will work with the
152 dnl old one for now. No use just trowing it away
154 dnl Revision 1.34 2002/03/06 20:57:00 morcego
155 dnl Fixing detection of stylesheets on SuSe.
157 dnl Revision 1.33 2002/03/05 17:31:11 morcego
158 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
160 dnl Revision 1.32 2002/03/05 14:07:43 morcego
161 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
162 dnl (based on sugestion by Sarantis Paskalis)
164 dnl Revision 1.31 2002/03/05 13:43:28 morcego
165 dnl Checking for text browser, so redhat-dok can work.
167 dnl Revision 1.30 2002/03/04 17:58:01 oes
168 dnl Deleted _DEBUG and PID_FILE_PATH
170 dnl Revision 1.29 2002/02/28 14:20:53 oes
171 dnl Fixed detection of gethost*_r functions on Solaris
173 dnl Revision 1.28 2002/02/27 15:02:38 oes
174 dnl Incremented version number
176 dnl Revision 1.27 2002/01/10 12:35:18 oes
177 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
178 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
179 dnl Is there a better way?
181 dnl Revision 1.26 2002/01/09 14:29:49 oes
182 dnl - Added AC_CHECK_FUNC tests for the availability of
183 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
184 dnl localtime_r, as well as AC_TRY_COMPILE tests to
185 dnl determine their signatures.
187 dnl - Fixed a bug with the init of CFLAGS that was
188 dnl reported by barsnick
190 dnl Revision 1.25 2002/01/04 15:27:18 oes
191 dnl Changed quoting of CODE_STATUS for use in make
193 dnl Revision 1.24 2001/12/30 14:07:31 steudten
194 dnl - Add signal handling (unix)
195 dnl - Add SIGHUP handler (unix)
196 dnl - Add creation of pidfile (unix)
197 dnl - Add action 'top' in rc file (RH)
198 dnl - Add entry 'SIGNALS' to manpage
199 dnl - Add exit message to logfile (unix)
201 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
202 dnl Change from "alpha" to "beta" in configure.in
204 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
205 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
206 dnl make break in a more obvious way.
208 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
209 dnl Bumping version number to 2.9.10
211 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
212 dnl Support for FEATURE_CGI_EDIT_ACTIONS
214 dnl Revision 1.19 2001/10/07 15:33:14 oes
215 dnl Removed FEATURE_DENY_GZIP
216 dnl Bumped up version number
218 dnl Revision 1.18 2001/09/13 13:10:24 steudten
220 dnl PreWork for Debug Interface.
221 dnl Add new option "--with-debug" to enable debugging (flags aso.)
223 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
224 dnl Mac OSX (Darwin) support added.
226 dnl Revision 1.16 2001/09/12 22:55:45 joergs
227 dnl AmigaOS support added.
229 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
231 dnl OS/2 port: update autoconf'd support for the platform.
233 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
234 dnl Fixing Solaris build (I hope) and tidying up #defines:
235 dnl - All feature #defines are now of the form FEATURE_xxx
236 dnl - Permanently turned off WIN_GUI_EDIT
237 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
239 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
240 dnl Major changes to build system in order to fix these bugs:
241 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
242 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
243 dnl which shared libraries are available
244 dnl - Solaris support (?) (Not tested under Solaris yet)
246 dnl Revision 1.12 2001/07/25 19:16:27 oes
247 dnl Bumping version number to 2.9.8
249 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
250 dnl Bumping version number to 2.9.7
252 dnl Revision 1.10 2001/07/18 17:25:04 oes
255 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
256 dnl Added support for linking with POSIX threads library
258 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
259 dnl Renaming #define STATIC to STATIC_PCRE
260 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
261 dnl POSIX threads support.
263 dnl Revision 1.7 2001/07/13 13:58:05 oes
264 dnl Completely reorganized the selection scheme for
265 dnl pcre, pcreposix, pcrs and gnu_regex:
267 dnl The presence of shared pcre, pcreposix or pcrs
268 dnl libraried is now autodetected. Additionally, the
269 dnl user can enforce using the built-in static variants
270 dnl by specifying --disable-dynamic-(pcre|pcrs).
271 dnl Care is taken to avoid that pcre is dyn, while pcreposix
272 dnl is static, if both are used and that pcrs is static if
275 dnl The choice between pcre, gnu or no regex for actionsfile
276 dnl URL matching is now via
277 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
278 dnl default being pcre.
280 dnl Revision 1.6 2001/06/29 21:56:40 oes
283 dnl Revision 1.5 2001/06/29 13:26:27 oes
284 dnl Introduced #define CODE_STATUS
286 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
287 dnl Unified blocklist/imagelist/permissionslist.
288 dnl File format is still under discussion, but the internal changes
289 dnl are (mostly) done.
291 dnl Also modified interceptor behaviour:
292 dnl - We now intercept all URLs beginning with one of the following
293 dnl prefixes (and *only* these prefixes):
295 dnl * http://ijbswa.sf.net/config/
296 dnl * http://ijbswa.sourceforge.net/config/
297 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
298 dnl - Internal changes so that intercepted and fast redirect pages
299 dnl are not replaced with an image.
300 dnl - Interceptors now have the option to send a binary page direct
301 dnl to the client. (i.e. ijb-send-banner uses this)
302 dnl - Implemented show-url-info interceptor. (Which is why I needed
303 dnl the above interceptors changes - a typical URL is
304 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
305 dnl The previous mechanism would not have intercepted that, and
306 dnl if it had been intercepted then it then it would have replaced
307 dnl it with an image.)
309 dnl Revision 1.3 2001/05/22 18:46:04 oes
311 dnl - Enabled filtering banners by size rather than URL
312 dnl by adding patterns that replace all standard banner
313 dnl sizes with the "Junkbuster" gif to the re_filterfile
315 dnl - Enabled filtering WebBugs by providing a pattern
316 dnl which kills all 1x1 images
318 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
319 dnl which is selected by the (nonstandard and therefore
320 dnl capital) letter 'U' in the option string.
321 dnl It causes the quantifiers to be ungreedy by default.
322 dnl Appending a ? turns back to greedy (!).
324 dnl - Added a new interceptor ijb-send-banner, which
325 dnl sends back the "Junkbuster" gif. Without imagelist or
326 dnl MSIE detection support, or if tinygif = 1, or the
327 dnl URL isn't recognized as an imageurl, a lame HTML
328 dnl explanation is sent instead.
330 dnl - Added new feature, which permits blocking remote
331 dnl script redirects and firing back a local redirect
333 dnl The feature is conditionally compiled, i.e. it
334 dnl can be disabled with --disable-fast-redirects,
335 dnl plus it must be activated by a "fast-redirects"
336 dnl line in the config file, has its own log level
337 dnl and of course wants to be displayed by show-proxy-args
338 dnl Note: Boy, all the #ifdefs in 1001 locations and
339 dnl all the fumbling with configure.in and acconfig.h
340 dnl were *way* more work than the feature itself :-(
342 dnl - Because a generic redirect template was needed for
343 dnl this, tinygif = 3 now uses the same.
345 dnl - Moved GIFs, and other static HTTP response templates
348 dnl - Some minor fixes
350 dnl - Removed some >400 CRs again (Jon, you really worked
353 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
354 dnl Version 2.9.4 checkin.
355 dnl - Merged popupfile and cookiefile, and added control over PCRS
356 dnl filtering, in new "permissionsfile".
357 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
358 dnl file error you now get a message box (in the Win32 GUI) rather
359 dnl than the program exiting with no explanation.
360 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
362 dnl - Removed tabs from "config"
363 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
364 dnl - Bumped up version number.
366 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
367 dnl Initial import of version 2.9.3 source tree
372 dnl =================================================================
373 dnl AutoConf Initialization
374 dnl =================================================================
376 AC_REVISION($Revision: 1.68.2.1 $)
379 if test ! -f config.h.in; then
380 echo "You need to run autoheader first. "
381 echo -n "Shall I do this for you now? (y/n) "
383 if test $answer != "y"; then
390 AC_CONFIG_HEADER([config.h])
395 AC_ARG_WITH(docbook, dnl
396 --with-docbook=[[yes|no|directory]]
397 Enable docbook documentation creation
398 (default = yes, for gnu and linux),[dnl
399 case "$with_docbook" in
409 AC_ARG_WITH(db2html, dnl
410 --with-db2html=<path/executable>
411 Set the location of the docbook to html converter
412 (default = search),[dnl
416 dnl =================================================================
417 dnl Application version number
418 dnl =================================================================
425 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
426 dnl used for CGI output
428 dnl =================================================================
429 dnl Substitute the version numbers
430 dnl =================================================================
432 AC_SUBST(VERSION_MAJOR)
433 AC_SUBST(VERSION_MINOR)
434 AC_SUBST(VERSION_POINT)
435 AC_SUBST(CODE_STATUS)
438 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
439 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
440 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
441 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
442 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
444 dnl =================================================================
445 dnl Checks for programs needed to build.
446 dnl =================================================================
453 AC_CHECK_PROG(GDB,gdb,yes,no)
455 dnl =================================================================
456 dnl debug, gcc and gdb support
457 dnl =================================================================
460 [ --with-debug Enable debug mode],
462 if test "x$withval" != "xno" ; then
463 if test $ac_cv_prog_cc_g = yes; then
464 if test "$GCC" = yes; then
470 CFLAGS="$CFLAGS -Wshadow -Wconversion"
478 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
479 if test "$GCC" = yes; then
489 [ --with-user=privoxy Set user under which privoxy run],
491 if test "x$withval" != "xyes"; then
494 AC_MSG_ERROR(We need a user if you give me this parameter)
504 [ --with-group=privoxy Set group for privoxy],
506 if test "x$withval" != "xyes"; then
509 AC_MSG_ERROR(We need a group if you give me this parameter)
517 dnl =================================================================
518 dnl additional gcc flags
519 dnl =================================================================
522 CFLAGS="-pipe $CFLAGS"
526 dnl =================================================================
528 dnl =================================================================
530 dnl Must do this first.
532 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
533 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
534 dnl the compiler will use completely different sets of library
535 dnl and include files.
537 dnl =================================================================
542 if test "$MINGW32" = "yes"; then
545 if test "$CYGWIN" = "yes"; then
552 if test $dodk = auto; then
554 if test $target_type = unix; then
563 dnl Decide what to do based on target_type
564 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
565 dnl This is because we don't know yet whether pthread is enabled.
567 AC_ARG_ENABLE(mingw32,
568 [ --enable-mingw32 Use mingw32 for a Windows GUI],
569 [if test $enableval = yes; then
573 if test $target_type = mingw; then
575 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
576 PTHREAD_LIB=-lpthreadGC
577 echo "Using mingw32 (Win32 GUI)"
580 if test $target_type = cygwin; then
581 SPECIAL_CFLAGS="-mno-win32"
583 echo "Using Cygnus (Win32 command line)"
586 PTHREAD_LIB=-lpthread
591 dnl Checking which text html browser we have avaliable
592 if test $dodk != no; then
593 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
594 if test "$WDUMP" = false; then
595 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
597 if test $DB2HTML = false; then
598 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
601 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
607 dnl If we use rpm, we need to check where %_topdir is
608 AC_CHECK_PROGS(RPMBIN,rpm,false)
609 if test $RPMBIN != false; then
610 RPM_BASE=`rpm --eval "%{_topdir}"`
611 if test "$RPM_BASE" = ""; then
612 RPM_BASE=/usr/src/redhat
617 dnl Check for jade, so we can build the documentation
618 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
621 dnl Check for man2html for docs.
622 AC_CHECK_PROGS(MAN2HTML,man2html,false)
625 dnl Set doc status flag for conditional content inclusions
626 DOC_STATUS=p-not-stable
627 if test $CODE_STATUS = stable; then
628 DOC_STATUS="p-stable"
632 dnl Checking for the docbook.dsl stylesheet file
633 dnl It is still not portable (directory slash)
635 if test $dodk = yes; then
636 if test $DKPREFIX = none; then
637 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
638 echo -n "checking for $i/html/docbook.dsl..."
639 if test -f $i/html/docbook.dsl; then
647 # where are the catalogs?
648 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
649 echo -n "checking for $i..."
652 JADECAT="$JADECAT -c $i"
662 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
663 old_CFLAGS_nospecial=$CFLAGS
664 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
666 # Hack to force AutoConf to use the CFLAGS we just set
667 dnl Warning: This may break with a future version of Autoconf
668 dnl Tested with autoconf 2.13
669 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
670 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
671 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
674 dnl =================================================================
676 dnl =================================================================
678 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
680 AC_ARG_ENABLE(pthread,
681 [ --disable-pthread Don't use POSIX threads (pthreads)],
682 [if test $enableval = no; then
687 if test $have_pthread = yes; then
689 AC_DEFINE(FEATURE_PTHREAD)
690 echo Using POSIX threads
691 if test "$GCC" = "yes"; then
692 # Set a GCC specific switch:
693 if test "$target_type" = "unix"; then
694 ac_jgf_save_CFLAGS=$CFLAGS
695 CFLAGS="$CFLAGS -pthread"
696 AC_TRY_LINK([#include <pthread.h>],
697 [void *p = pthread_create;],
699 # This compiler switch makes GCC on Linux thread-safe
700 # However, it's not supported on most other OS.
702 SPECIAL_CFLAGS="-pthread"
704 CFLAGS=$ac_jgf_save_CFLAGS
709 echo Using native threads
712 AC_SUBST(PTHREAD_ONLY)
714 dnl =================================================================
715 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
716 dnl gmtime and localtime
717 dnl =================================================================
719 dnl Next line needed to find the gethost*_r functions on Solaris
720 AC_CHECK_LIB(nsl, gethostbyname)
722 AC_CHECK_FUNC(gethostbyaddr_r, [
723 AC_MSG_CHECKING([signature of gethostbyaddr_r])
727 struct hostent *h, *hp;
730 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
732 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
733 AC_MSG_RESULT([8 args])
741 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
743 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
744 AC_MSG_RESULT([7 args])
749 struct hostent_data *d;
753 (void) gethostbyaddr_r(a, l, t, h, d)
755 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
756 AC_MSG_RESULT([5 args])
758 AC_MSG_RESULT(unrecognised)
766 AC_CHECK_FUNC(gethostbyname_r, [
767 AC_MSG_CHECKING([signature of gethostbyname_r])
771 struct hostent *h, *r;
774 (void) gethostbyname_r(n, h, b, bl, &r, &e)
776 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
777 AC_MSG_RESULT([6 args])
785 (void) gethostbyname_r(n, h, b, bl, &e)
787 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
788 AC_MSG_RESULT([5 args])
793 struct hostent_data *d;
796 (void) gethostbyname_r(n, h, d)
798 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
799 AC_MSG_RESULT([3 args])
801 AC_MSG_RESULT(unrecognised)
809 AC_CHECK_FUNC(gmtime_r, [
810 AC_MSG_CHECKING([signature of gmtime_r])
816 (void) gmtime_r(t, tm)
819 AC_DEFINE(HAVE_GMTIME_R)
821 AC_MSG_RESULT(unrecognised)
827 AC_CHECK_FUNC(localtime_r, [
828 AC_MSG_CHECKING([signature of localtime_r])
834 (void) localtime_r(t, tm)
837 AC_DEFINE(HAVE_LOCALTIME_R)
839 AC_MSG_RESULT(unrecognised)
845 dnl =================================================================
847 dnl FIXME: Not tested on Solaris yet...
848 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
849 dnl make these checks generic, e.g.:
850 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
851 dnl (Moritz Barsnick <moritz@barsnick.net>)
852 dnl =================================================================
858 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
859 AC_DEFINE(__EXTENSIONS__)
860 if test "$GCC" = "yes"; then
861 # Set a GCC specific switch:
862 # This compiler switch makes Solaris thread-safe
864 SPECIAL_CFLAGS="-pthreads"
866 # What do we do without GCC? Guess this:
867 SPECIAL_CFLAGS="-D_REENTRANT"
874 dnl =================================================================
875 dnl Solaris problem, and others perhaps (socklen_t is undefined)
876 dnl =================================================================
878 AC_MSG_CHECKING([for socklen_t])
879 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
881 AC_DEFINE(socklen_t,int,
882 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
885 dnl =================================================================
887 dnl =================================================================
890 *-os2-emx*) SOCKET_LIB=-lsocket
896 dnl =================================================================
898 dnl =================================================================
901 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
905 dnl =================================================================
907 dnl =================================================================
912 *-amigaos) AMIGAOS_ONLY=
916 AC_SUBST(AMIGAOS_ONLY)
918 dnl =================================================================
919 dnl Check for standard compiler stuff
920 dnl =================================================================
931 AC_CHECK_SIZEOF(int, 4)
932 AC_CHECK_SIZEOF(char *, 4)
933 AC_CHECK_SIZEOF(long, 4)
934 AC_CHECK_SIZEOF(long long, 8)
935 AC_CHECK_SIZEOF(size_t, 4)
937 dnl Checks for header files.
938 dnl AC_HEADER_SYS_WAIT
939 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
940 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])
942 dnl Checks for library functions.
944 dnl AC_CHECK_FUNC(strstr)
945 dnl bcopy and memmove are for PCRE
946 AC_CHECK_FUNCS([strerror bcopy memmove])
947 AC_PROG_GCC_TRADITIONAL
948 dnl uncommenting does not work for swa. suse linux
952 dnl uncommenting does not work for swa. suse linux
954 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
957 dnl =================================================================
958 dnl Checks for libraries.
959 dnl =================================================================
960 dnl Note: Some systems may have the library but not the system header
961 dnl file, so we must check for both.
962 dnl Also check for correct version
963 AC_CHECK_LIB(pcre, pcre_compile, [AC_CHECK_HEADER(pcre.h, [AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])], [have_pcre=no])], [have_pcre=no])
964 AC_CHECK_LIB(pcreposix, regcomp, [AC_CHECK_HEADER(pcreposix.h, [AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])], [have_pcreposix=no])], [have_pcreposix=no], -lpcre)
965 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
968 dnl =================================================================
970 dnl =================================================================
974 dnl =================================================================
976 dnl =================================================================
978 AC_ARG_ENABLE(toggle,
979 [ --disable-toggle Don't support temporary disable],
980 [if test $enableval = yes; then
981 AC_DEFINE(FEATURE_TOGGLE)
982 fi],AC_DEFINE(FEATURE_TOGGLE))
985 [ --disable-force Don't allow single-page disable],
986 [if test $enableval = yes; then
987 AC_DEFINE(FEATURE_FORCE_LOAD)
988 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
990 AC_ARG_ENABLE(fast-redirects,
991 [ --disable-fast-redirects Don't support fast redirects],
992 [if test $enableval = yes; then
993 AC_DEFINE(FEATURE_FAST_REDIRECTS)
994 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
996 AC_ARG_ENABLE(killpopup,
997 [ --disable-killpopup Never block popups],
998 [if test $enableval = yes; then
999 AC_DEFINE(FEATURE_KILL_POPUPS)
1000 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1002 AC_ARG_ENABLE(stats,
1003 [ --disable-stats Don't keep statistics],
1004 [if test $enableval = yes; then
1005 AC_DEFINE(FEATURE_STATISTICS)
1006 fi],AC_DEFINE(FEATURE_STATISTICS))
1008 AC_ARG_ENABLE(ie-images,
1009 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
1010 Explorer is for an image or HTML.],
1011 [if test $enableval = yes; then
1012 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1014 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
1016 AC_ARG_ENABLE(image-blocking,
1017 [ --disable-image-blocking Don't try to figure out whether a request is
1018 for an image or HTML - assume HTML.],
1019 [if test $enableval = yes; then
1020 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1022 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1024 AC_ARG_ENABLE(acl-files,
1025 [ --disable-acl-files Prevents the use of ACL files to control access to
1026 the proxy by IP address.],
1027 [if test $enableval = yes; then
1028 AC_DEFINE(FEATURE_ACL)
1030 AC_DEFINE(FEATURE_ACL))
1032 AC_ARG_ENABLE(trust-files,
1033 [ --disable-trust-files Prevents the use of trust files.],
1034 [if test $enableval = yes; then
1035 AC_DEFINE(FEATURE_TRUST)
1037 AC_DEFINE(FEATURE_TRUST))
1039 AC_ARG_ENABLE(jar-files,
1040 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1041 [if test $enableval = yes; then
1042 AC_DEFINE(FEATURE_COOKIE_JAR)
1044 AC_DEFINE(FEATURE_COOKIE_JAR))
1046 AC_ARG_ENABLE(editor,
1047 [ --disable-editor Prevents the use of the web-based actions file
1048 editor and web-based temporary disable setting.],
1049 [if test $enableval = yes; then
1050 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1052 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1054 AC_ARG_ENABLE(no-gifs,
1055 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1056 for built-in images. May not work with all browsers.],
1057 [if test $enableval = yes; then
1058 AC_DEFINE(FEATURE_NO_GIFS)
1062 dnl pcre/pcrs is needed for CGI anyway, so
1063 dnl the choice is only between static and
1066 AC_ARG_ENABLE(dynamic-pcre,
1067 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1068 libpcre is available],
1069 [ if test $enableval = "no"; then have_pcre=no; fi ])
1071 AC_ARG_ENABLE(dynamic-pcrs,
1072 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1073 libpcrs is available],
1074 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1077 # If we have libpcre and either we also have pcreposix or
1078 # we don't need pcreposix, then link pcre dynamically; else
1079 # build it and link statically
1081 if test $have_pcre = "yes"; then
1082 echo "using libpcre"
1085 LIBS="$LIBS -lpcre -lpcreposix"
1087 echo "using built-in static pcre"
1089 AC_DEFINE(STATIC_PCRE)
1093 # If we have libpcrs and pcre is linked dynamically
1094 # then also link pcrs dynamically, else build and link
1097 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1098 echo "using libpcrs"
1102 echo "using built-in static pcrs"
1103 AC_DEFINE(STATIC_PCRS)
1107 AC_SUBST(STATIC_PCRE_ONLY)
1108 AC_SUBST(STATIC_PCRS_ONLY)
1110 dnl =================================================================
1111 dnl Final cleanup and output
1112 dnl =================================================================
1114 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1116 CFLAGS=$old_CFLAGS_nospecial
1117 AC_SUBST(SPECIAL_CFLAGS)
1119 AC_SUBST(PTHREAD_LIB)
1121 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)