1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.68.2.2 2002/07/30 19:36:09 hal9 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.2 2002/07/30 19:36:09 hal9
32 dnl Bump version to 2.9.17.
34 dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
35 dnl Bumped version number for 2.9.16 freeze
37 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
38 dnl Detect if the compiler supports -pthread.
39 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
40 dnl machine to test this!)
42 dnl Revision 1.67 2002/05/03 14:33:59 oes
43 dnl Generate doc/soucre/ldp.dsl
45 dnl Revision 1.66 2002/05/03 00:41:56 oes
46 dnl Set version to 2.9.15 to comply with new versioning scheme
48 dnl Revision 1.65 2002/04/25 19:13:57 morcego
49 dnl Removed RPM release number declaration on configure.in
50 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
51 dnl targets (will produce an error, explaining who to do it, if no value
54 dnl Revision 1.64 2002/04/22 16:32:31 morcego
55 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
56 dnl -rh.spec: uid and gid are now macros
57 dnl -suse.spec: Changing the header Copyright to License (Copyright is
60 dnl Revision 1.63 2002/04/11 11:00:21 oes
61 dnl Applied Moritz' fix for socklen_t on Solaris
63 dnl Revision 1.62 2002/04/11 10:09:20 oes
66 dnl Revision 1.61 2002/04/10 18:14:45 morcego
67 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
68 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
70 dnl Revision 1.60 2002/04/09 16:38:49 oes
71 dnl Added detection of missing config.h.in
73 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
74 dnl Removing unnessacery tests (C++, ranlib)
76 dnl Revision 1.58 2002/04/04 20:49:20 swa
77 dnl attempt to consolidate the
78 dnl different dokbook versions.
80 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
81 dnl always use pcre for matching
83 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
84 dnl Removed references to gnu_regex
86 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
87 dnl Checking pcre version
89 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
90 dnl More changes needed around regex support.
92 dnl Revision 1.53 2002/03/29 20:09:01 swa
95 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
96 dnl Correcting compile problem with Debian
98 dnl Revision 1.51 2002/03/28 20:43:00 swa
99 dnl set make correctly
101 dnl Revision 1.50 2002/03/27 03:03:45 hal9
102 dnl Add test for man2html
104 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
105 dnl More Mac OSX support:
106 dnl - Get rid of extraneous, noisy -pthread warnings
107 dnl - Define unix so we get oes' unix-tagged changes
109 dnl Revision 1.48 2002/03/26 22:29:54 swa
110 dnl we have a new homepage!
112 dnl Revision 1.47 2002/03/26 16:41:00 hal9
113 dnl Upped RPM Release to 3 (need to build new RH packages)
115 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
116 dnl Making Docbook work under Windows
118 dnl Revision 1.45 2002/03/24 14:19:55 swa
119 dnl set rpm package release in configure.in. nowhere else.
121 dnl Revision 1.44 2002/03/24 13:25:43 swa
122 dnl name change related issues
124 dnl Revision 1.43 2002/03/24 12:56:21 swa
125 dnl name change related issues.
127 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
128 dnl Bumping version number to 2.9.12
130 dnl Revision 1.41 2002/03/19 19:30:04 morcego
131 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
134 dnl - configure will now check for db2html or docbook2html (should work now
135 dnl on SuSe without the docbktls package)
137 dnl Revision 1.40 2002/03/09 14:33:30 oes
138 dnl Fixing the (harmless) AC_CHECK_FILE warnings
140 dnl Revision 1.39 2002/03/08 16:46:13 oes
141 dnl Added --enable-no-gifs
143 dnl Revision 1.38 2002/03/08 14:13:50 morcego
144 dnl Fixing configure, to remove a command not found error.
146 dnl Revision 1.37 2002/03/08 12:58:21 oes
147 dnl Tiny bugfix in AC_ARG_WITH(debug)
149 dnl Revision 1.36 2002/03/06 23:50:36 morcego
150 dnl Will not test for a text browser if we are not using docbook.
152 dnl Revision 1.35 2002/03/06 21:55:52 morcego
153 dnl New configure option: --with-docbook=(yes|no|directory)
154 dnl Preliminary new platform detection code included. Will work with the
155 dnl old one for now. No use just trowing it away
157 dnl Revision 1.34 2002/03/06 20:57:00 morcego
158 dnl Fixing detection of stylesheets on SuSe.
160 dnl Revision 1.33 2002/03/05 17:31:11 morcego
161 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
163 dnl Revision 1.32 2002/03/05 14:07:43 morcego
164 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
165 dnl (based on sugestion by Sarantis Paskalis)
167 dnl Revision 1.31 2002/03/05 13:43:28 morcego
168 dnl Checking for text browser, so redhat-dok can work.
170 dnl Revision 1.30 2002/03/04 17:58:01 oes
171 dnl Deleted _DEBUG and PID_FILE_PATH
173 dnl Revision 1.29 2002/02/28 14:20:53 oes
174 dnl Fixed detection of gethost*_r functions on Solaris
176 dnl Revision 1.28 2002/02/27 15:02:38 oes
177 dnl Incremented version number
179 dnl Revision 1.27 2002/01/10 12:35:18 oes
180 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
181 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
182 dnl Is there a better way?
184 dnl Revision 1.26 2002/01/09 14:29:49 oes
185 dnl - Added AC_CHECK_FUNC tests for the availability of
186 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
187 dnl localtime_r, as well as AC_TRY_COMPILE tests to
188 dnl determine their signatures.
190 dnl - Fixed a bug with the init of CFLAGS that was
191 dnl reported by barsnick
193 dnl Revision 1.25 2002/01/04 15:27:18 oes
194 dnl Changed quoting of CODE_STATUS for use in make
196 dnl Revision 1.24 2001/12/30 14:07:31 steudten
197 dnl - Add signal handling (unix)
198 dnl - Add SIGHUP handler (unix)
199 dnl - Add creation of pidfile (unix)
200 dnl - Add action 'top' in rc file (RH)
201 dnl - Add entry 'SIGNALS' to manpage
202 dnl - Add exit message to logfile (unix)
204 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
205 dnl Change from "alpha" to "beta" in configure.in
207 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
208 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
209 dnl make break in a more obvious way.
211 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
212 dnl Bumping version number to 2.9.10
214 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
215 dnl Support for FEATURE_CGI_EDIT_ACTIONS
217 dnl Revision 1.19 2001/10/07 15:33:14 oes
218 dnl Removed FEATURE_DENY_GZIP
219 dnl Bumped up version number
221 dnl Revision 1.18 2001/09/13 13:10:24 steudten
223 dnl PreWork for Debug Interface.
224 dnl Add new option "--with-debug" to enable debugging (flags aso.)
226 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
227 dnl Mac OSX (Darwin) support added.
229 dnl Revision 1.16 2001/09/12 22:55:45 joergs
230 dnl AmigaOS support added.
232 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
234 dnl OS/2 port: update autoconf'd support for the platform.
236 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
237 dnl Fixing Solaris build (I hope) and tidying up #defines:
238 dnl - All feature #defines are now of the form FEATURE_xxx
239 dnl - Permanently turned off WIN_GUI_EDIT
240 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
242 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
243 dnl Major changes to build system in order to fix these bugs:
244 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
245 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
246 dnl which shared libraries are available
247 dnl - Solaris support (?) (Not tested under Solaris yet)
249 dnl Revision 1.12 2001/07/25 19:16:27 oes
250 dnl Bumping version number to 2.9.8
252 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
253 dnl Bumping version number to 2.9.7
255 dnl Revision 1.10 2001/07/18 17:25:04 oes
258 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
259 dnl Added support for linking with POSIX threads library
261 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
262 dnl Renaming #define STATIC to STATIC_PCRE
263 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
264 dnl POSIX threads support.
266 dnl Revision 1.7 2001/07/13 13:58:05 oes
267 dnl Completely reorganized the selection scheme for
268 dnl pcre, pcreposix, pcrs and gnu_regex:
270 dnl The presence of shared pcre, pcreposix or pcrs
271 dnl libraried is now autodetected. Additionally, the
272 dnl user can enforce using the built-in static variants
273 dnl by specifying --disable-dynamic-(pcre|pcrs).
274 dnl Care is taken to avoid that pcre is dyn, while pcreposix
275 dnl is static, if both are used and that pcrs is static if
278 dnl The choice between pcre, gnu or no regex for actionsfile
279 dnl URL matching is now via
280 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
281 dnl default being pcre.
283 dnl Revision 1.6 2001/06/29 21:56:40 oes
286 dnl Revision 1.5 2001/06/29 13:26:27 oes
287 dnl Introduced #define CODE_STATUS
289 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
290 dnl Unified blocklist/imagelist/permissionslist.
291 dnl File format is still under discussion, but the internal changes
292 dnl are (mostly) done.
294 dnl Also modified interceptor behaviour:
295 dnl - We now intercept all URLs beginning with one of the following
296 dnl prefixes (and *only* these prefixes):
298 dnl * http://ijbswa.sf.net/config/
299 dnl * http://ijbswa.sourceforge.net/config/
300 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
301 dnl - Internal changes so that intercepted and fast redirect pages
302 dnl are not replaced with an image.
303 dnl - Interceptors now have the option to send a binary page direct
304 dnl to the client. (i.e. ijb-send-banner uses this)
305 dnl - Implemented show-url-info interceptor. (Which is why I needed
306 dnl the above interceptors changes - a typical URL is
307 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
308 dnl The previous mechanism would not have intercepted that, and
309 dnl if it had been intercepted then it then it would have replaced
310 dnl it with an image.)
312 dnl Revision 1.3 2001/05/22 18:46:04 oes
314 dnl - Enabled filtering banners by size rather than URL
315 dnl by adding patterns that replace all standard banner
316 dnl sizes with the "Junkbuster" gif to the re_filterfile
318 dnl - Enabled filtering WebBugs by providing a pattern
319 dnl which kills all 1x1 images
321 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
322 dnl which is selected by the (nonstandard and therefore
323 dnl capital) letter 'U' in the option string.
324 dnl It causes the quantifiers to be ungreedy by default.
325 dnl Appending a ? turns back to greedy (!).
327 dnl - Added a new interceptor ijb-send-banner, which
328 dnl sends back the "Junkbuster" gif. Without imagelist or
329 dnl MSIE detection support, or if tinygif = 1, or the
330 dnl URL isn't recognized as an imageurl, a lame HTML
331 dnl explanation is sent instead.
333 dnl - Added new feature, which permits blocking remote
334 dnl script redirects and firing back a local redirect
336 dnl The feature is conditionally compiled, i.e. it
337 dnl can be disabled with --disable-fast-redirects,
338 dnl plus it must be activated by a "fast-redirects"
339 dnl line in the config file, has its own log level
340 dnl and of course wants to be displayed by show-proxy-args
341 dnl Note: Boy, all the #ifdefs in 1001 locations and
342 dnl all the fumbling with configure.in and acconfig.h
343 dnl were *way* more work than the feature itself :-(
345 dnl - Because a generic redirect template was needed for
346 dnl this, tinygif = 3 now uses the same.
348 dnl - Moved GIFs, and other static HTTP response templates
351 dnl - Some minor fixes
353 dnl - Removed some >400 CRs again (Jon, you really worked
356 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
357 dnl Version 2.9.4 checkin.
358 dnl - Merged popupfile and cookiefile, and added control over PCRS
359 dnl filtering, in new "permissionsfile".
360 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
361 dnl file error you now get a message box (in the Win32 GUI) rather
362 dnl than the program exiting with no explanation.
363 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
365 dnl - Removed tabs from "config"
366 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
367 dnl - Bumped up version number.
369 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
370 dnl Initial import of version 2.9.3 source tree
375 dnl =================================================================
376 dnl AutoConf Initialization
377 dnl =================================================================
379 AC_REVISION($Revision: 1.68.2.2 $)
382 if test ! -f config.h.in; then
383 echo "You need to run autoheader first. "
384 echo -n "Shall I do this for you now? (y/n) "
386 if test $answer != "y"; then
393 AC_CONFIG_HEADER([config.h])
398 AC_ARG_WITH(docbook, dnl
399 --with-docbook=[[yes|no|directory]]
400 Enable docbook documentation creation
401 (default = yes, for gnu and linux),[dnl
402 case "$with_docbook" in
412 AC_ARG_WITH(db2html, dnl
413 --with-db2html=<path/executable>
414 Set the location of the docbook to html converter
415 (default = search),[dnl
419 dnl =================================================================
420 dnl Application version number
421 dnl =================================================================
428 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
429 dnl used for CGI output
431 dnl =================================================================
432 dnl Substitute the version numbers
433 dnl =================================================================
435 AC_SUBST(VERSION_MAJOR)
436 AC_SUBST(VERSION_MINOR)
437 AC_SUBST(VERSION_POINT)
438 AC_SUBST(CODE_STATUS)
441 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
442 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
443 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
444 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
445 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
447 dnl =================================================================
448 dnl Checks for programs needed to build.
449 dnl =================================================================
456 AC_CHECK_PROG(GDB,gdb,yes,no)
458 dnl =================================================================
459 dnl debug, gcc and gdb support
460 dnl =================================================================
463 [ --with-debug Enable debug mode],
465 if test "x$withval" != "xno" ; then
466 if test $ac_cv_prog_cc_g = yes; then
467 if test "$GCC" = yes; then
473 CFLAGS="$CFLAGS -Wshadow -Wconversion"
481 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
482 if test "$GCC" = yes; then
492 [ --with-user=privoxy Set user under which privoxy run],
494 if test "x$withval" != "xyes"; then
497 AC_MSG_ERROR(We need a user if you give me this parameter)
507 [ --with-group=privoxy Set group for privoxy],
509 if test "x$withval" != "xyes"; then
512 AC_MSG_ERROR(We need a group if you give me this parameter)
520 dnl =================================================================
521 dnl additional gcc flags
522 dnl =================================================================
525 CFLAGS="-pipe $CFLAGS"
529 dnl =================================================================
531 dnl =================================================================
533 dnl Must do this first.
535 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
536 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
537 dnl the compiler will use completely different sets of library
538 dnl and include files.
540 dnl =================================================================
545 if test "$MINGW32" = "yes"; then
548 if test "$CYGWIN" = "yes"; then
555 if test $dodk = auto; then
557 if test $target_type = unix; then
566 dnl Decide what to do based on target_type
567 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
568 dnl This is because we don't know yet whether pthread is enabled.
570 AC_ARG_ENABLE(mingw32,
571 [ --enable-mingw32 Use mingw32 for a Windows GUI],
572 [if test $enableval = yes; then
576 if test $target_type = mingw; then
578 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
579 PTHREAD_LIB=-lpthreadGC
580 echo "Using mingw32 (Win32 GUI)"
583 if test $target_type = cygwin; then
584 SPECIAL_CFLAGS="-mno-win32"
586 echo "Using Cygnus (Win32 command line)"
589 PTHREAD_LIB=-lpthread
594 dnl Checking which text html browser we have avaliable
595 if test $dodk != no; then
596 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
597 if test "$WDUMP" = false; then
598 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
600 if test $DB2HTML = false; then
601 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
604 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
610 dnl If we use rpm, we need to check where %_topdir is
611 AC_CHECK_PROGS(RPMBIN,rpm,false)
612 if test $RPMBIN != false; then
613 RPM_BASE=`rpm --eval "%{_topdir}"`
614 if test "$RPM_BASE" = ""; then
615 RPM_BASE=/usr/src/redhat
620 dnl Check for jade, so we can build the documentation
621 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
624 dnl Check for man2html for docs.
625 AC_CHECK_PROGS(MAN2HTML,man2html,false)
628 dnl Set doc status flag for conditional content inclusions
629 DOC_STATUS=p-not-stable
630 if test $CODE_STATUS = stable; then
631 DOC_STATUS="p-stable"
635 dnl Checking for the docbook.dsl stylesheet file
636 dnl It is still not portable (directory slash)
638 if test $dodk = yes; then
639 if test $DKPREFIX = none; then
640 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
641 echo -n "checking for $i/html/docbook.dsl..."
642 if test -f $i/html/docbook.dsl; then
650 # where are the catalogs?
651 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
652 echo -n "checking for $i..."
655 JADECAT="$JADECAT -c $i"
665 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
666 old_CFLAGS_nospecial=$CFLAGS
667 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
669 # Hack to force AutoConf to use the CFLAGS we just set
670 dnl Warning: This may break with a future version of Autoconf
671 dnl Tested with autoconf 2.13
672 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
673 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
674 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
677 dnl =================================================================
679 dnl =================================================================
681 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
683 AC_ARG_ENABLE(pthread,
684 [ --disable-pthread Don't use POSIX threads (pthreads)],
685 [if test $enableval = no; then
690 if test $have_pthread = yes; then
692 AC_DEFINE(FEATURE_PTHREAD)
693 echo Using POSIX threads
694 if test "$GCC" = "yes"; then
695 # Set a GCC specific switch:
696 if test "$target_type" = "unix"; then
697 ac_jgf_save_CFLAGS=$CFLAGS
698 CFLAGS="$CFLAGS -pthread"
699 AC_TRY_LINK([#include <pthread.h>],
700 [void *p = pthread_create;],
702 # This compiler switch makes GCC on Linux thread-safe
703 # However, it's not supported on most other OS.
705 SPECIAL_CFLAGS="-pthread"
707 CFLAGS=$ac_jgf_save_CFLAGS
712 echo Using native threads
715 AC_SUBST(PTHREAD_ONLY)
717 dnl =================================================================
718 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
719 dnl gmtime and localtime
720 dnl =================================================================
722 dnl Next line needed to find the gethost*_r functions on Solaris
723 AC_CHECK_LIB(nsl, gethostbyname)
725 AC_CHECK_FUNC(gethostbyaddr_r, [
726 AC_MSG_CHECKING([signature of gethostbyaddr_r])
730 struct hostent *h, *hp;
733 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
735 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
736 AC_MSG_RESULT([8 args])
744 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
746 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
747 AC_MSG_RESULT([7 args])
752 struct hostent_data *d;
756 (void) gethostbyaddr_r(a, l, t, h, d)
758 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
759 AC_MSG_RESULT([5 args])
761 AC_MSG_RESULT(unrecognised)
769 AC_CHECK_FUNC(gethostbyname_r, [
770 AC_MSG_CHECKING([signature of gethostbyname_r])
774 struct hostent *h, *r;
777 (void) gethostbyname_r(n, h, b, bl, &r, &e)
779 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
780 AC_MSG_RESULT([6 args])
788 (void) gethostbyname_r(n, h, b, bl, &e)
790 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
791 AC_MSG_RESULT([5 args])
796 struct hostent_data *d;
799 (void) gethostbyname_r(n, h, d)
801 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
802 AC_MSG_RESULT([3 args])
804 AC_MSG_RESULT(unrecognised)
812 AC_CHECK_FUNC(gmtime_r, [
813 AC_MSG_CHECKING([signature of gmtime_r])
819 (void) gmtime_r(t, tm)
822 AC_DEFINE(HAVE_GMTIME_R)
824 AC_MSG_RESULT(unrecognised)
830 AC_CHECK_FUNC(localtime_r, [
831 AC_MSG_CHECKING([signature of localtime_r])
837 (void) localtime_r(t, tm)
840 AC_DEFINE(HAVE_LOCALTIME_R)
842 AC_MSG_RESULT(unrecognised)
848 dnl =================================================================
850 dnl FIXME: Not tested on Solaris yet...
851 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
852 dnl make these checks generic, e.g.:
853 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
854 dnl (Moritz Barsnick <moritz@barsnick.net>)
855 dnl =================================================================
861 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
862 AC_DEFINE(__EXTENSIONS__)
863 if test "$GCC" = "yes"; then
864 # Set a GCC specific switch:
865 # This compiler switch makes Solaris thread-safe
867 SPECIAL_CFLAGS="-pthreads"
869 # What do we do without GCC? Guess this:
870 SPECIAL_CFLAGS="-D_REENTRANT"
877 dnl =================================================================
878 dnl Solaris problem, and others perhaps (socklen_t is undefined)
879 dnl =================================================================
881 AC_MSG_CHECKING([for socklen_t])
882 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
884 AC_DEFINE(socklen_t,int,
885 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
888 dnl =================================================================
890 dnl =================================================================
893 *-os2-emx*) SOCKET_LIB=-lsocket
899 dnl =================================================================
901 dnl =================================================================
904 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
908 dnl =================================================================
910 dnl =================================================================
915 *-amigaos) AMIGAOS_ONLY=
919 AC_SUBST(AMIGAOS_ONLY)
921 dnl =================================================================
922 dnl Check for standard compiler stuff
923 dnl =================================================================
934 AC_CHECK_SIZEOF(int, 4)
935 AC_CHECK_SIZEOF(char *, 4)
936 AC_CHECK_SIZEOF(long, 4)
937 AC_CHECK_SIZEOF(long long, 8)
938 AC_CHECK_SIZEOF(size_t, 4)
940 dnl Checks for header files.
941 dnl AC_HEADER_SYS_WAIT
942 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
943 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])
945 dnl Checks for library functions.
947 dnl AC_CHECK_FUNC(strstr)
948 dnl bcopy and memmove are for PCRE
949 AC_CHECK_FUNCS([strerror bcopy memmove])
950 AC_PROG_GCC_TRADITIONAL
951 dnl uncommenting does not work for swa. suse linux
955 dnl uncommenting does not work for swa. suse linux
957 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
960 dnl =================================================================
961 dnl Checks for libraries.
962 dnl =================================================================
963 dnl Note: Some systems may have the library but not the system header
964 dnl file, so we must check for both.
965 dnl Also check for correct version
966 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])], [AC_CHECK_HEADER(pcre/pcre.h, [AC_EGREP_HEADER(pcre_fullinfo, pcre/pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])], [have_pcre=no])])], [have_pcre=no])
968 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])], [AC_CHECK_HEADER(pcre/pcreposix.h, [AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])], [have_pcreposix=no])])], [have_pcreposix=no], -lpcre)
970 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
973 dnl =================================================================
975 dnl =================================================================
979 dnl =================================================================
981 dnl =================================================================
983 AC_ARG_ENABLE(toggle,
984 [ --disable-toggle Don't support temporary disable],
985 [if test $enableval = yes; then
986 AC_DEFINE(FEATURE_TOGGLE)
987 fi],AC_DEFINE(FEATURE_TOGGLE))
990 [ --disable-force Don't allow single-page disable],
991 [if test $enableval = yes; then
992 AC_DEFINE(FEATURE_FORCE_LOAD)
993 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
995 AC_ARG_ENABLE(fast-redirects,
996 [ --disable-fast-redirects Don't support fast redirects],
997 [if test $enableval = yes; then
998 AC_DEFINE(FEATURE_FAST_REDIRECTS)
999 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1001 AC_ARG_ENABLE(killpopup,
1002 [ --disable-killpopup Never block popups],
1003 [if test $enableval = yes; then
1004 AC_DEFINE(FEATURE_KILL_POPUPS)
1005 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1007 AC_ARG_ENABLE(stats,
1008 [ --disable-stats Don't keep statistics],
1009 [if test $enableval = yes; then
1010 AC_DEFINE(FEATURE_STATISTICS)
1011 fi],AC_DEFINE(FEATURE_STATISTICS))
1013 AC_ARG_ENABLE(ie-images,
1014 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
1015 Explorer is for an image or HTML.],
1016 [if test $enableval = yes; then
1017 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1019 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
1021 AC_ARG_ENABLE(image-blocking,
1022 [ --disable-image-blocking Don't try to figure out whether a request is
1023 for an image or HTML - assume HTML.],
1024 [if test $enableval = yes; then
1025 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1027 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1029 AC_ARG_ENABLE(acl-files,
1030 [ --disable-acl-files Prevents the use of ACL files to control access to
1031 the proxy by IP address.],
1032 [if test $enableval = yes; then
1033 AC_DEFINE(FEATURE_ACL)
1035 AC_DEFINE(FEATURE_ACL))
1037 AC_ARG_ENABLE(trust-files,
1038 [ --disable-trust-files Prevents the use of trust files.],
1039 [if test $enableval = yes; then
1040 AC_DEFINE(FEATURE_TRUST)
1042 AC_DEFINE(FEATURE_TRUST))
1044 AC_ARG_ENABLE(jar-files,
1045 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1046 [if test $enableval = yes; then
1047 AC_DEFINE(FEATURE_COOKIE_JAR)
1049 AC_DEFINE(FEATURE_COOKIE_JAR))
1051 AC_ARG_ENABLE(editor,
1052 [ --disable-editor Prevents the use of the web-based actions file
1053 editor and web-based temporary disable setting.],
1054 [if test $enableval = yes; then
1055 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1057 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1059 AC_ARG_ENABLE(no-gifs,
1060 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1061 for built-in images. May not work with all browsers.],
1062 [if test $enableval = yes; then
1063 AC_DEFINE(FEATURE_NO_GIFS)
1067 dnl pcre/pcrs is needed for CGI anyway, so
1068 dnl the choice is only between static and
1071 AC_ARG_ENABLE(dynamic-pcre,
1072 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1073 libpcre is available],
1074 [ if test $enableval = "no"; then have_pcre=no; fi ])
1076 AC_ARG_ENABLE(dynamic-pcrs,
1077 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1078 libpcrs is available],
1079 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1082 # If we have libpcre and either we also have pcreposix or
1083 # we don't need pcreposix, then link pcre dynamically; else
1084 # build it and link statically
1086 if test $have_pcre = "yes"; then
1087 echo "using libpcre"
1090 LIBS="$LIBS -lpcre -lpcreposix"
1092 echo "using built-in static pcre"
1094 AC_DEFINE(STATIC_PCRE)
1098 # If we have libpcrs and pcre is linked dynamically
1099 # then also link pcrs dynamically, else build and link
1102 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1103 echo "using libpcrs"
1107 echo "using built-in static pcrs"
1108 AC_DEFINE(STATIC_PCRS)
1112 AC_SUBST(STATIC_PCRE_ONLY)
1113 AC_SUBST(STATIC_PCRS_ONLY)
1115 dnl =================================================================
1116 dnl Final cleanup and output
1117 dnl =================================================================
1119 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1121 CFLAGS=$old_CFLAGS_nospecial
1122 AC_SUBST(SPECIAL_CFLAGS)
1124 AC_SUBST(PTHREAD_LIB)
1126 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)