1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.67 2002/05/03 14:33:59 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.67 2002/05/03 14:33:59 oes
32 dnl Generate doc/soucre/ldp.dsl
34 dnl Revision 1.66 2002/05/03 00:41:56 oes
35 dnl Set version to 2.9.15 to comply with new versioning scheme
37 dnl Revision 1.65 2002/04/25 19:13:57 morcego
38 dnl Removed RPM release number declaration on configure.in
39 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
40 dnl targets (will produce an error, explaining who to do it, if no value
43 dnl Revision 1.64 2002/04/22 16:32:31 morcego
44 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
45 dnl -rh.spec: uid and gid are now macros
46 dnl -suse.spec: Changing the header Copyright to License (Copyright is
49 dnl Revision 1.63 2002/04/11 11:00:21 oes
50 dnl Applied Moritz' fix for socklen_t on Solaris
52 dnl Revision 1.62 2002/04/11 10:09:20 oes
55 dnl Revision 1.61 2002/04/10 18:14:45 morcego
56 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
57 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
59 dnl Revision 1.60 2002/04/09 16:38:49 oes
60 dnl Added detection of missing config.h.in
62 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
63 dnl Removing unnessacery tests (C++, ranlib)
65 dnl Revision 1.58 2002/04/04 20:49:20 swa
66 dnl attempt to consolidate the
67 dnl different dokbook versions.
69 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
70 dnl always use pcre for matching
72 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
73 dnl Removed references to gnu_regex
75 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
76 dnl Checking pcre version
78 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
79 dnl More changes needed around regex support.
81 dnl Revision 1.53 2002/03/29 20:09:01 swa
84 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
85 dnl Correcting compile problem with Debian
87 dnl Revision 1.51 2002/03/28 20:43:00 swa
88 dnl set make correctly
90 dnl Revision 1.50 2002/03/27 03:03:45 hal9
91 dnl Add test for man2html
93 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
94 dnl More Mac OSX support:
95 dnl - Get rid of extraneous, noisy -pthread warnings
96 dnl - Define unix so we get oes' unix-tagged changes
98 dnl Revision 1.48 2002/03/26 22:29:54 swa
99 dnl we have a new homepage!
101 dnl Revision 1.47 2002/03/26 16:41:00 hal9
102 dnl Upped RPM Release to 3 (need to build new RH packages)
104 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
105 dnl Making Docbook work under Windows
107 dnl Revision 1.45 2002/03/24 14:19:55 swa
108 dnl set rpm package release in configure.in. nowhere else.
110 dnl Revision 1.44 2002/03/24 13:25:43 swa
111 dnl name change related issues
113 dnl Revision 1.43 2002/03/24 12:56:21 swa
114 dnl name change related issues.
116 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
117 dnl Bumping version number to 2.9.12
119 dnl Revision 1.41 2002/03/19 19:30:04 morcego
120 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
123 dnl - configure will now check for db2html or docbook2html (should work now
124 dnl on SuSe without the docbktls package)
126 dnl Revision 1.40 2002/03/09 14:33:30 oes
127 dnl Fixing the (harmless) AC_CHECK_FILE warnings
129 dnl Revision 1.39 2002/03/08 16:46:13 oes
130 dnl Added --enable-no-gifs
132 dnl Revision 1.38 2002/03/08 14:13:50 morcego
133 dnl Fixing configure, to remove a command not found error.
135 dnl Revision 1.37 2002/03/08 12:58:21 oes
136 dnl Tiny bugfix in AC_ARG_WITH(debug)
138 dnl Revision 1.36 2002/03/06 23:50:36 morcego
139 dnl Will not test for a text browser if we are not using docbook.
141 dnl Revision 1.35 2002/03/06 21:55:52 morcego
142 dnl New configure option: --with-docbook=(yes|no|directory)
143 dnl Preliminary new platform detection code included. Will work with the
144 dnl old one for now. No use just trowing it away
146 dnl Revision 1.34 2002/03/06 20:57:00 morcego
147 dnl Fixing detection of stylesheets on SuSe.
149 dnl Revision 1.33 2002/03/05 17:31:11 morcego
150 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
152 dnl Revision 1.32 2002/03/05 14:07:43 morcego
153 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
154 dnl (based on sugestion by Sarantis Paskalis)
156 dnl Revision 1.31 2002/03/05 13:43:28 morcego
157 dnl Checking for text browser, so redhat-dok can work.
159 dnl Revision 1.30 2002/03/04 17:58:01 oes
160 dnl Deleted _DEBUG and PID_FILE_PATH
162 dnl Revision 1.29 2002/02/28 14:20:53 oes
163 dnl Fixed detection of gethost*_r functions on Solaris
165 dnl Revision 1.28 2002/02/27 15:02:38 oes
166 dnl Incremented version number
168 dnl Revision 1.27 2002/01/10 12:35:18 oes
169 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
170 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
171 dnl Is there a better way?
173 dnl Revision 1.26 2002/01/09 14:29:49 oes
174 dnl - Added AC_CHECK_FUNC tests for the availability of
175 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
176 dnl localtime_r, as well as AC_TRY_COMPILE tests to
177 dnl determine their signatures.
179 dnl - Fixed a bug with the init of CFLAGS that was
180 dnl reported by barsnick
182 dnl Revision 1.25 2002/01/04 15:27:18 oes
183 dnl Changed quoting of CODE_STATUS for use in make
185 dnl Revision 1.24 2001/12/30 14:07:31 steudten
186 dnl - Add signal handling (unix)
187 dnl - Add SIGHUP handler (unix)
188 dnl - Add creation of pidfile (unix)
189 dnl - Add action 'top' in rc file (RH)
190 dnl - Add entry 'SIGNALS' to manpage
191 dnl - Add exit message to logfile (unix)
193 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
194 dnl Change from "alpha" to "beta" in configure.in
196 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
197 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
198 dnl make break in a more obvious way.
200 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
201 dnl Bumping version number to 2.9.10
203 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
204 dnl Support for FEATURE_CGI_EDIT_ACTIONS
206 dnl Revision 1.19 2001/10/07 15:33:14 oes
207 dnl Removed FEATURE_DENY_GZIP
208 dnl Bumped up version number
210 dnl Revision 1.18 2001/09/13 13:10:24 steudten
212 dnl PreWork for Debug Interface.
213 dnl Add new option "--with-debug" to enable debugging (flags aso.)
215 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
216 dnl Mac OSX (Darwin) support added.
218 dnl Revision 1.16 2001/09/12 22:55:45 joergs
219 dnl AmigaOS support added.
221 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
223 dnl OS/2 port: update autoconf'd support for the platform.
225 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
226 dnl Fixing Solaris build (I hope) and tidying up #defines:
227 dnl - All feature #defines are now of the form FEATURE_xxx
228 dnl - Permanently turned off WIN_GUI_EDIT
229 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
231 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
232 dnl Major changes to build system in order to fix these bugs:
233 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
234 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
235 dnl which shared libraries are available
236 dnl - Solaris support (?) (Not tested under Solaris yet)
238 dnl Revision 1.12 2001/07/25 19:16:27 oes
239 dnl Bumping version number to 2.9.8
241 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
242 dnl Bumping version number to 2.9.7
244 dnl Revision 1.10 2001/07/18 17:25:04 oes
247 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
248 dnl Added support for linking with POSIX threads library
250 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
251 dnl Renaming #define STATIC to STATIC_PCRE
252 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
253 dnl POSIX threads support.
255 dnl Revision 1.7 2001/07/13 13:58:05 oes
256 dnl Completely reorganized the selection scheme for
257 dnl pcre, pcreposix, pcrs and gnu_regex:
259 dnl The presence of shared pcre, pcreposix or pcrs
260 dnl libraried is now autodetected. Additionally, the
261 dnl user can enforce using the built-in static variants
262 dnl by specifying --disable-dynamic-(pcre|pcrs).
263 dnl Care is taken to avoid that pcre is dyn, while pcreposix
264 dnl is static, if both are used and that pcrs is static if
267 dnl The choice between pcre, gnu or no regex for actionsfile
268 dnl URL matching is now via
269 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
270 dnl default being pcre.
272 dnl Revision 1.6 2001/06/29 21:56:40 oes
275 dnl Revision 1.5 2001/06/29 13:26:27 oes
276 dnl Introduced #define CODE_STATUS
278 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
279 dnl Unified blocklist/imagelist/permissionslist.
280 dnl File format is still under discussion, but the internal changes
281 dnl are (mostly) done.
283 dnl Also modified interceptor behaviour:
284 dnl - We now intercept all URLs beginning with one of the following
285 dnl prefixes (and *only* these prefixes):
287 dnl * http://ijbswa.sf.net/config/
288 dnl * http://ijbswa.sourceforge.net/config/
289 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
290 dnl - Internal changes so that intercepted and fast redirect pages
291 dnl are not replaced with an image.
292 dnl - Interceptors now have the option to send a binary page direct
293 dnl to the client. (i.e. ijb-send-banner uses this)
294 dnl - Implemented show-url-info interceptor. (Which is why I needed
295 dnl the above interceptors changes - a typical URL is
296 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
297 dnl The previous mechanism would not have intercepted that, and
298 dnl if it had been intercepted then it then it would have replaced
299 dnl it with an image.)
301 dnl Revision 1.3 2001/05/22 18:46:04 oes
303 dnl - Enabled filtering banners by size rather than URL
304 dnl by adding patterns that replace all standard banner
305 dnl sizes with the "Junkbuster" gif to the re_filterfile
307 dnl - Enabled filtering WebBugs by providing a pattern
308 dnl which kills all 1x1 images
310 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
311 dnl which is selected by the (nonstandard and therefore
312 dnl capital) letter 'U' in the option string.
313 dnl It causes the quantifiers to be ungreedy by default.
314 dnl Appending a ? turns back to greedy (!).
316 dnl - Added a new interceptor ijb-send-banner, which
317 dnl sends back the "Junkbuster" gif. Without imagelist or
318 dnl MSIE detection support, or if tinygif = 1, or the
319 dnl URL isn't recognized as an imageurl, a lame HTML
320 dnl explanation is sent instead.
322 dnl - Added new feature, which permits blocking remote
323 dnl script redirects and firing back a local redirect
325 dnl The feature is conditionally compiled, i.e. it
326 dnl can be disabled with --disable-fast-redirects,
327 dnl plus it must be activated by a "fast-redirects"
328 dnl line in the config file, has its own log level
329 dnl and of course wants to be displayed by show-proxy-args
330 dnl Note: Boy, all the #ifdefs in 1001 locations and
331 dnl all the fumbling with configure.in and acconfig.h
332 dnl were *way* more work than the feature itself :-(
334 dnl - Because a generic redirect template was needed for
335 dnl this, tinygif = 3 now uses the same.
337 dnl - Moved GIFs, and other static HTTP response templates
340 dnl - Some minor fixes
342 dnl - Removed some >400 CRs again (Jon, you really worked
345 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
346 dnl Version 2.9.4 checkin.
347 dnl - Merged popupfile and cookiefile, and added control over PCRS
348 dnl filtering, in new "permissionsfile".
349 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
350 dnl file error you now get a message box (in the Win32 GUI) rather
351 dnl than the program exiting with no explanation.
352 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
354 dnl - Removed tabs from "config"
355 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
356 dnl - Bumped up version number.
358 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
359 dnl Initial import of version 2.9.3 source tree
364 dnl =================================================================
365 dnl AutoConf Initialization
366 dnl =================================================================
368 AC_REVISION($Revision: 1.67 $)
371 if test ! -f config.h.in; then
372 echo "You need to run autoheader first. "
373 echo -n "Shall I do this for you now? (y/n) "
375 if test $answer != "y"; then
382 AC_CONFIG_HEADER([config.h])
387 AC_ARG_WITH(docbook, dnl
388 --with-docbook=[[yes|no|directory]]
389 Enable docbook documentation creation
390 (default = yes, for gnu and linux),[dnl
391 case "$with_docbook" in
401 AC_ARG_WITH(db2html, dnl
402 --with-db2html=<path/executable>
403 Set the location of the docbook to html converter
404 (default = search),[dnl
408 dnl =================================================================
409 dnl Application version number
410 dnl =================================================================
417 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
418 dnl used for CGI output
420 dnl =================================================================
421 dnl Substitute the version numbers
422 dnl =================================================================
424 AC_SUBST(VERSION_MAJOR)
425 AC_SUBST(VERSION_MINOR)
426 AC_SUBST(VERSION_POINT)
427 AC_SUBST(CODE_STATUS)
430 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
431 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
432 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
433 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
434 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
436 dnl =================================================================
437 dnl Checks for programs needed to build.
438 dnl =================================================================
445 AC_CHECK_PROG(GDB,gdb,yes,no)
447 dnl =================================================================
448 dnl debug, gcc and gdb support
449 dnl =================================================================
452 [ --with-debug Enable debug mode],
454 if test "x$withval" != "xno" ; then
455 if test $ac_cv_prog_cc_g = yes; then
456 if test "$GCC" = yes; then
462 CFLAGS="$CFLAGS -Wshadow -Wconversion"
470 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
471 if test "$GCC" = yes; then
481 [ --with-user=privoxy Set user under which privoxy run],
483 if test "x$withval" != "xyes"; then
486 AC_MSG_ERROR(We need a user if you give me this parameter)
496 [ --with-group=privoxy Set group for privoxy],
498 if test "x$withval" != "xyes"; then
501 AC_MSG_ERROR(We need a group if you give me this parameter)
509 dnl =================================================================
510 dnl additional gcc flags
511 dnl =================================================================
514 CFLAGS="-pipe $CFLAGS"
518 dnl =================================================================
520 dnl =================================================================
522 dnl Must do this first.
524 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
525 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
526 dnl the compiler will use completely different sets of library
527 dnl and include files.
529 dnl =================================================================
534 if test "$MINGW32" = "yes"; then
537 if test "$CYGWIN" = "yes"; then
544 if test $dodk = auto; then
546 if test $target_type = unix; then
555 dnl Decide what to do based on target_type
556 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
557 dnl This is because we don't know yet whether pthread is enabled.
559 AC_ARG_ENABLE(mingw32,
560 [ --enable-mingw32 Use mingw32 for a Windows GUI],
561 [if test $enableval = yes; then
565 if test $target_type = mingw; then
567 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
568 PTHREAD_LIB=-lpthreadGC
569 echo "Using mingw32 (Win32 GUI)"
572 if test $target_type = cygwin; then
573 SPECIAL_CFLAGS="-mno-win32"
575 echo "Using Cygnus (Win32 command line)"
578 PTHREAD_LIB=-lpthread
583 dnl Checking which text html browser we have avaliable
584 if test $dodk != no; then
585 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
586 if test "$WDUMP" = false; then
587 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
589 if test $DB2HTML = false; then
590 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
593 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
599 dnl If we use rpm, we need to check where %_topdir is
600 AC_CHECK_PROGS(RPMBIN,rpm,false)
601 if test $RPMBIN != false; then
602 RPM_BASE=`rpm --eval "%{_topdir}"`
603 if test "$RPM_BASE" = ""; then
604 RPM_BASE=/usr/src/redhat
609 dnl Check for jade, so we can build the documentation
610 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
613 dnl Check for man2html for docs.
614 AC_CHECK_PROGS(MAN2HTML,man2html,false)
617 dnl Checking for the docbook.dsl stylesheet file
618 dnl It is still not portable (directory slash)
620 if test $dodk = yes; then
621 if test $DKPREFIX = none; then
622 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
623 echo -n "checking for $i/html/docbook.dsl..."
624 if test -f $i/html/docbook.dsl; then
632 # where are the catalogs?
633 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
634 echo -n "checking for $i..."
637 JADECAT="$JADECAT -c $i"
647 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
648 old_CFLAGS_nospecial=$CFLAGS
649 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
651 # Hack to force AutoConf to use the CFLAGS we just set
652 dnl Warning: This may break with a future version of Autoconf
653 dnl Tested with autoconf 2.13
654 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
655 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
656 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
659 dnl =================================================================
661 dnl =================================================================
663 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
665 AC_ARG_ENABLE(pthread,
666 [ --disable-pthread Don't use POSIX threads (pthreads)],
667 [if test $enableval = no; then
672 if test $have_pthread = yes; then
674 AC_DEFINE(FEATURE_PTHREAD)
675 echo Using POSIX threads
676 if test "$GCC" = "yes"; then
677 # Set a GCC specific switch:
678 if test "$target_type" = "unix"; then
679 ac_jgf_save_CFLAGS=$CFLAGS
680 CFLAGS="$CFLAGS -pthread"
681 AC_TRY_LINK([#include <pthread.h>],
682 [void *p = pthread_create;],
684 # This compiler switch makes GCC on Linux thread-safe
685 # However, it's not supported on most other OS.
687 SPECIAL_CFLAGS="-pthread"
689 CFLAGS=$ac_jgf_save_CFLAGS
694 echo Using native threads
697 AC_SUBST(PTHREAD_ONLY)
699 dnl =================================================================
700 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
701 dnl gmtime and localtime
702 dnl =================================================================
704 dnl Next line needed to find the gethost*_r functions on Solaris
705 AC_CHECK_LIB(nsl, gethostbyname)
707 AC_CHECK_FUNC(gethostbyaddr_r, [
708 AC_MSG_CHECKING([signature of gethostbyaddr_r])
712 struct hostent *h, *hp;
715 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
717 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
718 AC_MSG_RESULT([8 args])
726 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
728 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
729 AC_MSG_RESULT([7 args])
734 struct hostent_data *d;
738 (void) gethostbyaddr_r(a, l, t, h, d)
740 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
741 AC_MSG_RESULT([5 args])
743 AC_MSG_RESULT(unrecognised)
751 AC_CHECK_FUNC(gethostbyname_r, [
752 AC_MSG_CHECKING([signature of gethostbyname_r])
756 struct hostent *h, *r;
759 (void) gethostbyname_r(n, h, b, bl, &r, &e)
761 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
762 AC_MSG_RESULT([6 args])
770 (void) gethostbyname_r(n, h, b, bl, &e)
772 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
773 AC_MSG_RESULT([5 args])
778 struct hostent_data *d;
781 (void) gethostbyname_r(n, h, d)
783 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
784 AC_MSG_RESULT([3 args])
786 AC_MSG_RESULT(unrecognised)
794 AC_CHECK_FUNC(gmtime_r, [
795 AC_MSG_CHECKING([signature of gmtime_r])
801 (void) gmtime_r(t, tm)
804 AC_DEFINE(HAVE_GMTIME_R)
806 AC_MSG_RESULT(unrecognised)
812 AC_CHECK_FUNC(localtime_r, [
813 AC_MSG_CHECKING([signature of localtime_r])
819 (void) localtime_r(t, tm)
822 AC_DEFINE(HAVE_LOCALTIME_R)
824 AC_MSG_RESULT(unrecognised)
830 dnl =================================================================
832 dnl FIXME: Not tested on Solaris yet...
833 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
834 dnl make these checks generic, e.g.:
835 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
836 dnl (Moritz Barsnick <moritz@barsnick.net>)
837 dnl =================================================================
843 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
844 AC_DEFINE(__EXTENSIONS__)
845 if test "$GCC" = "yes"; then
846 # Set a GCC specific switch:
847 # This compiler switch makes Solaris thread-safe
849 SPECIAL_CFLAGS="-pthreads"
851 # What do we do without GCC? Guess this:
852 SPECIAL_CFLAGS="-D_REENTRANT"
859 dnl =================================================================
860 dnl Solaris problem, and others perhaps (socklen_t is undefined)
861 dnl =================================================================
863 AC_MSG_CHECKING([for socklen_t])
864 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
866 AC_DEFINE(socklen_t,int,
867 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
870 dnl =================================================================
872 dnl =================================================================
875 *-os2-emx*) SOCKET_LIB=-lsocket
881 dnl =================================================================
883 dnl =================================================================
886 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
890 dnl =================================================================
892 dnl =================================================================
897 *-amigaos) AMIGAOS_ONLY=
901 AC_SUBST(AMIGAOS_ONLY)
903 dnl =================================================================
904 dnl Check for standard compiler stuff
905 dnl =================================================================
916 AC_CHECK_SIZEOF(int, 4)
917 AC_CHECK_SIZEOF(char *, 4)
918 AC_CHECK_SIZEOF(long, 4)
919 AC_CHECK_SIZEOF(long long, 8)
920 AC_CHECK_SIZEOF(size_t, 4)
922 dnl Checks for header files.
923 dnl AC_HEADER_SYS_WAIT
924 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
925 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])
927 dnl Checks for library functions.
929 dnl AC_CHECK_FUNC(strstr)
930 dnl bcopy and memmove are for PCRE
931 AC_CHECK_FUNCS([strerror bcopy memmove])
932 AC_PROG_GCC_TRADITIONAL
933 dnl uncommenting does not work for swa. suse linux
937 dnl uncommenting does not work for swa. suse linux
939 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
942 dnl =================================================================
943 dnl Checks for libraries.
944 dnl =================================================================
945 dnl Note: Some systems may have the library but not the system header
946 dnl file, so we must check for both.
947 dnl Also check for correct version
948 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])
949 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)
950 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
953 dnl =================================================================
955 dnl =================================================================
959 dnl =================================================================
961 dnl =================================================================
963 AC_ARG_ENABLE(toggle,
964 [ --disable-toggle Don't support temporary disable],
965 [if test $enableval = yes; then
966 AC_DEFINE(FEATURE_TOGGLE)
967 fi],AC_DEFINE(FEATURE_TOGGLE))
970 [ --disable-force Don't allow single-page disable],
971 [if test $enableval = yes; then
972 AC_DEFINE(FEATURE_FORCE_LOAD)
973 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
975 AC_ARG_ENABLE(fast-redirects,
976 [ --disable-fast-redirects Don't support fast redirects],
977 [if test $enableval = yes; then
978 AC_DEFINE(FEATURE_FAST_REDIRECTS)
979 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
981 AC_ARG_ENABLE(killpopup,
982 [ --disable-killpopup Never block popups],
983 [if test $enableval = yes; then
984 AC_DEFINE(FEATURE_KILL_POPUPS)
985 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
988 [ --disable-stats Don't keep statistics],
989 [if test $enableval = yes; then
990 AC_DEFINE(FEATURE_STATISTICS)
991 fi],AC_DEFINE(FEATURE_STATISTICS))
993 AC_ARG_ENABLE(ie-images,
994 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
995 Explorer is for an image or HTML.],
996 [if test $enableval = yes; then
997 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
999 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
1001 AC_ARG_ENABLE(image-blocking,
1002 [ --disable-image-blocking Don't try to figure out whether a request is
1003 for an image or HTML - assume HTML.],
1004 [if test $enableval = yes; then
1005 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1007 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1009 AC_ARG_ENABLE(acl-files,
1010 [ --disable-acl-files Prevents the use of ACL files to control access to
1011 the proxy by IP address.],
1012 [if test $enableval = yes; then
1013 AC_DEFINE(FEATURE_ACL)
1015 AC_DEFINE(FEATURE_ACL))
1017 AC_ARG_ENABLE(trust-files,
1018 [ --disable-trust-files Prevents the use of trust files.],
1019 [if test $enableval = yes; then
1020 AC_DEFINE(FEATURE_TRUST)
1022 AC_DEFINE(FEATURE_TRUST))
1024 AC_ARG_ENABLE(jar-files,
1025 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1026 [if test $enableval = yes; then
1027 AC_DEFINE(FEATURE_COOKIE_JAR)
1029 AC_DEFINE(FEATURE_COOKIE_JAR))
1031 AC_ARG_ENABLE(editor,
1032 [ --disable-editor Prevents the use of the web-based actions file
1033 editor and web-based temporary disable setting.],
1034 [if test $enableval = yes; then
1035 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1037 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1039 AC_ARG_ENABLE(no-gifs,
1040 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1041 for built-in images. May not work with all browsers.],
1042 [if test $enableval = yes; then
1043 AC_DEFINE(FEATURE_NO_GIFS)
1047 dnl pcre/pcrs is needed for CGI anyway, so
1048 dnl the choice is only between static and
1051 AC_ARG_ENABLE(dynamic-pcre,
1052 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1053 libpcre is available],
1054 [ if test $enableval = "no"; then have_pcre=no; fi ])
1056 AC_ARG_ENABLE(dynamic-pcrs,
1057 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1058 libpcrs is available],
1059 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1062 # If we have libpcre and either we also have pcreposix or
1063 # we don't need pcreposix, then link pcre dynamically; else
1064 # build it and link statically
1066 if test $have_pcre = "yes"; then
1067 echo "using libpcre"
1070 LIBS="$LIBS -lpcre -lpcreposix"
1072 echo "using built-in static pcre"
1074 AC_DEFINE(STATIC_PCRE)
1078 # If we have libpcrs and pcre is linked dynamically
1079 # then also link pcrs dynamically, else build and link
1082 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1083 echo "using libpcrs"
1087 echo "using built-in static pcrs"
1088 AC_DEFINE(STATIC_PCRS)
1092 AC_SUBST(STATIC_PCRE_ONLY)
1093 AC_SUBST(STATIC_PCRS_ONLY)
1095 dnl =================================================================
1096 dnl Final cleanup and output
1097 dnl =================================================================
1099 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1101 CFLAGS=$old_CFLAGS_nospecial
1102 AC_SUBST(SPECIAL_CFLAGS)
1104 AC_SUBST(PTHREAD_LIB)
1106 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)