1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.68.2.4 2002/08/10 11:21:57 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.4 2002/08/10 11:21:57 oes
32 dnl - Set Version to 2.9.20 (beta)
33 dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers
34 dnl are located in a pcre/ subdir to the include path.
36 dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes
37 dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH
39 dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9
40 dnl Bump version to 2.9.17.
42 dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes
43 dnl Bumped version number for 2.9.16 freeze
45 dnl Revision 1.68 2002/05/25 16:54:54 jongfoster
46 dnl Detect if the compiler supports -pthread.
47 dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC
48 dnl machine to test this!)
50 dnl Revision 1.67 2002/05/03 14:33:59 oes
51 dnl Generate doc/soucre/ldp.dsl
53 dnl Revision 1.66 2002/05/03 00:41:56 oes
54 dnl Set version to 2.9.15 to comply with new versioning scheme
56 dnl Revision 1.65 2002/04/25 19:13:57 morcego
57 dnl Removed RPM release number declaration on configure.in
58 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
59 dnl targets (will produce an error, explaining who to do it, if no value
62 dnl Revision 1.64 2002/04/22 16:32:31 morcego
63 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
64 dnl -rh.spec: uid and gid are now macros
65 dnl -suse.spec: Changing the header Copyright to License (Copyright is
68 dnl Revision 1.63 2002/04/11 11:00:21 oes
69 dnl Applied Moritz' fix for socklen_t on Solaris
71 dnl Revision 1.62 2002/04/11 10:09:20 oes
74 dnl Revision 1.61 2002/04/10 18:14:45 morcego
75 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
76 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
78 dnl Revision 1.60 2002/04/09 16:38:49 oes
79 dnl Added detection of missing config.h.in
81 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
82 dnl Removing unnessacery tests (C++, ranlib)
84 dnl Revision 1.58 2002/04/04 20:49:20 swa
85 dnl attempt to consolidate the
86 dnl different dokbook versions.
88 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
89 dnl always use pcre for matching
91 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
92 dnl Removed references to gnu_regex
94 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
95 dnl Checking pcre version
97 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
98 dnl More changes needed around regex support.
100 dnl Revision 1.53 2002/03/29 20:09:01 swa
103 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
104 dnl Correcting compile problem with Debian
106 dnl Revision 1.51 2002/03/28 20:43:00 swa
107 dnl set make correctly
109 dnl Revision 1.50 2002/03/27 03:03:45 hal9
110 dnl Add test for man2html
112 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
113 dnl More Mac OSX support:
114 dnl - Get rid of extraneous, noisy -pthread warnings
115 dnl - Define unix so we get oes' unix-tagged changes
117 dnl Revision 1.48 2002/03/26 22:29:54 swa
118 dnl we have a new homepage!
120 dnl Revision 1.47 2002/03/26 16:41:00 hal9
121 dnl Upped RPM Release to 3 (need to build new RH packages)
123 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
124 dnl Making Docbook work under Windows
126 dnl Revision 1.45 2002/03/24 14:19:55 swa
127 dnl set rpm package release in configure.in. nowhere else.
129 dnl Revision 1.44 2002/03/24 13:25:43 swa
130 dnl name change related issues
132 dnl Revision 1.43 2002/03/24 12:56:21 swa
133 dnl name change related issues.
135 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
136 dnl Bumping version number to 2.9.12
138 dnl Revision 1.41 2002/03/19 19:30:04 morcego
139 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
142 dnl - configure will now check for db2html or docbook2html (should work now
143 dnl on SuSe without the docbktls package)
145 dnl Revision 1.40 2002/03/09 14:33:30 oes
146 dnl Fixing the (harmless) AC_CHECK_FILE warnings
148 dnl Revision 1.39 2002/03/08 16:46:13 oes
149 dnl Added --enable-no-gifs
151 dnl Revision 1.38 2002/03/08 14:13:50 morcego
152 dnl Fixing configure, to remove a command not found error.
154 dnl Revision 1.37 2002/03/08 12:58:21 oes
155 dnl Tiny bugfix in AC_ARG_WITH(debug)
157 dnl Revision 1.36 2002/03/06 23:50:36 morcego
158 dnl Will not test for a text browser if we are not using docbook.
160 dnl Revision 1.35 2002/03/06 21:55:52 morcego
161 dnl New configure option: --with-docbook=(yes|no|directory)
162 dnl Preliminary new platform detection code included. Will work with the
163 dnl old one for now. No use just trowing it away
165 dnl Revision 1.34 2002/03/06 20:57:00 morcego
166 dnl Fixing detection of stylesheets on SuSe.
168 dnl Revision 1.33 2002/03/05 17:31:11 morcego
169 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
171 dnl Revision 1.32 2002/03/05 14:07:43 morcego
172 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
173 dnl (based on sugestion by Sarantis Paskalis)
175 dnl Revision 1.31 2002/03/05 13:43:28 morcego
176 dnl Checking for text browser, so redhat-dok can work.
178 dnl Revision 1.30 2002/03/04 17:58:01 oes
179 dnl Deleted _DEBUG and PID_FILE_PATH
181 dnl Revision 1.29 2002/02/28 14:20:53 oes
182 dnl Fixed detection of gethost*_r functions on Solaris
184 dnl Revision 1.28 2002/02/27 15:02:38 oes
185 dnl Incremented version number
187 dnl Revision 1.27 2002/01/10 12:35:18 oes
188 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
189 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
190 dnl Is there a better way?
192 dnl Revision 1.26 2002/01/09 14:29:49 oes
193 dnl - Added AC_CHECK_FUNC tests for the availability of
194 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
195 dnl localtime_r, as well as AC_TRY_COMPILE tests to
196 dnl determine their signatures.
198 dnl - Fixed a bug with the init of CFLAGS that was
199 dnl reported by barsnick
201 dnl Revision 1.25 2002/01/04 15:27:18 oes
202 dnl Changed quoting of CODE_STATUS for use in make
204 dnl Revision 1.24 2001/12/30 14:07:31 steudten
205 dnl - Add signal handling (unix)
206 dnl - Add SIGHUP handler (unix)
207 dnl - Add creation of pidfile (unix)
208 dnl - Add action 'top' in rc file (RH)
209 dnl - Add entry 'SIGNALS' to manpage
210 dnl - Add exit message to logfile (unix)
212 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
213 dnl Change from "alpha" to "beta" in configure.in
215 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
216 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
217 dnl make break in a more obvious way.
219 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
220 dnl Bumping version number to 2.9.10
222 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
223 dnl Support for FEATURE_CGI_EDIT_ACTIONS
225 dnl Revision 1.19 2001/10/07 15:33:14 oes
226 dnl Removed FEATURE_DENY_GZIP
227 dnl Bumped up version number
229 dnl Revision 1.18 2001/09/13 13:10:24 steudten
231 dnl PreWork for Debug Interface.
232 dnl Add new option "--with-debug" to enable debugging (flags aso.)
234 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
235 dnl Mac OSX (Darwin) support added.
237 dnl Revision 1.16 2001/09/12 22:55:45 joergs
238 dnl AmigaOS support added.
240 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
242 dnl OS/2 port: update autoconf'd support for the platform.
244 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
245 dnl Fixing Solaris build (I hope) and tidying up #defines:
246 dnl - All feature #defines are now of the form FEATURE_xxx
247 dnl - Permanently turned off WIN_GUI_EDIT
248 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
250 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
251 dnl Major changes to build system in order to fix these bugs:
252 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
253 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
254 dnl which shared libraries are available
255 dnl - Solaris support (?) (Not tested under Solaris yet)
257 dnl Revision 1.12 2001/07/25 19:16:27 oes
258 dnl Bumping version number to 2.9.8
260 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
261 dnl Bumping version number to 2.9.7
263 dnl Revision 1.10 2001/07/18 17:25:04 oes
266 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
267 dnl Added support for linking with POSIX threads library
269 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
270 dnl Renaming #define STATIC to STATIC_PCRE
271 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
272 dnl POSIX threads support.
274 dnl Revision 1.7 2001/07/13 13:58:05 oes
275 dnl Completely reorganized the selection scheme for
276 dnl pcre, pcreposix, pcrs and gnu_regex:
278 dnl The presence of shared pcre, pcreposix or pcrs
279 dnl libraried is now autodetected. Additionally, the
280 dnl user can enforce using the built-in static variants
281 dnl by specifying --disable-dynamic-(pcre|pcrs).
282 dnl Care is taken to avoid that pcre is dyn, while pcreposix
283 dnl is static, if both are used and that pcrs is static if
286 dnl The choice between pcre, gnu or no regex for actionsfile
287 dnl URL matching is now via
288 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
289 dnl default being pcre.
291 dnl Revision 1.6 2001/06/29 21:56:40 oes
294 dnl Revision 1.5 2001/06/29 13:26:27 oes
295 dnl Introduced #define CODE_STATUS
297 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
298 dnl Unified blocklist/imagelist/permissionslist.
299 dnl File format is still under discussion, but the internal changes
300 dnl are (mostly) done.
302 dnl Also modified interceptor behaviour:
303 dnl - We now intercept all URLs beginning with one of the following
304 dnl prefixes (and *only* these prefixes):
306 dnl * http://ijbswa.sf.net/config/
307 dnl * http://ijbswa.sourceforge.net/config/
308 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
309 dnl - Internal changes so that intercepted and fast redirect pages
310 dnl are not replaced with an image.
311 dnl - Interceptors now have the option to send a binary page direct
312 dnl to the client. (i.e. ijb-send-banner uses this)
313 dnl - Implemented show-url-info interceptor. (Which is why I needed
314 dnl the above interceptors changes - a typical URL is
315 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
316 dnl The previous mechanism would not have intercepted that, and
317 dnl if it had been intercepted then it then it would have replaced
318 dnl it with an image.)
320 dnl Revision 1.3 2001/05/22 18:46:04 oes
322 dnl - Enabled filtering banners by size rather than URL
323 dnl by adding patterns that replace all standard banner
324 dnl sizes with the "Junkbuster" gif to the re_filterfile
326 dnl - Enabled filtering WebBugs by providing a pattern
327 dnl which kills all 1x1 images
329 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
330 dnl which is selected by the (nonstandard and therefore
331 dnl capital) letter 'U' in the option string.
332 dnl It causes the quantifiers to be ungreedy by default.
333 dnl Appending a ? turns back to greedy (!).
335 dnl - Added a new interceptor ijb-send-banner, which
336 dnl sends back the "Junkbuster" gif. Without imagelist or
337 dnl MSIE detection support, or if tinygif = 1, or the
338 dnl URL isn't recognized as an imageurl, a lame HTML
339 dnl explanation is sent instead.
341 dnl - Added new feature, which permits blocking remote
342 dnl script redirects and firing back a local redirect
344 dnl The feature is conditionally compiled, i.e. it
345 dnl can be disabled with --disable-fast-redirects,
346 dnl plus it must be activated by a "fast-redirects"
347 dnl line in the config file, has its own log level
348 dnl and of course wants to be displayed by show-proxy-args
349 dnl Note: Boy, all the #ifdefs in 1001 locations and
350 dnl all the fumbling with configure.in and acconfig.h
351 dnl were *way* more work than the feature itself :-(
353 dnl - Because a generic redirect template was needed for
354 dnl this, tinygif = 3 now uses the same.
356 dnl - Moved GIFs, and other static HTTP response templates
359 dnl - Some minor fixes
361 dnl - Removed some >400 CRs again (Jon, you really worked
364 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
365 dnl Version 2.9.4 checkin.
366 dnl - Merged popupfile and cookiefile, and added control over PCRS
367 dnl filtering, in new "permissionsfile".
368 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
369 dnl file error you now get a message box (in the Win32 GUI) rather
370 dnl than the program exiting with no explanation.
371 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
373 dnl - Removed tabs from "config"
374 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
375 dnl - Bumped up version number.
377 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
378 dnl Initial import of version 2.9.3 source tree
383 dnl =================================================================
384 dnl AutoConf Initialization
385 dnl =================================================================
387 AC_REVISION($Revision: 1.68.2.4 $)
390 if test ! -f config.h.in; then
391 echo "You need to run autoheader first. "
392 echo -n "Shall I do this for you now? (y/n) "
394 if test $answer != "y"; then
401 AC_CONFIG_HEADER([config.h])
406 AC_ARG_WITH(docbook, dnl
407 --with-docbook=[[yes|no|directory]]
408 Enable docbook documentation creation
409 (default = yes, for gnu and linux),[dnl
410 case "$with_docbook" in
420 AC_ARG_WITH(db2html, dnl
421 --with-db2html=<path/executable>
422 Set the location of the docbook to html converter
423 (default = search),[dnl
427 dnl =================================================================
428 dnl Application version number
429 dnl =================================================================
436 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
437 dnl used for CGI output
439 dnl =================================================================
440 dnl Substitute the version numbers
441 dnl =================================================================
443 AC_SUBST(VERSION_MAJOR)
444 AC_SUBST(VERSION_MINOR)
445 AC_SUBST(VERSION_POINT)
446 AC_SUBST(CODE_STATUS)
449 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
450 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
451 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
452 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
453 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
455 dnl =================================================================
456 dnl Checks for programs needed to build.
457 dnl =================================================================
464 AC_CHECK_PROG(GDB,gdb,yes,no)
466 dnl =================================================================
467 dnl debug, gcc and gdb support
468 dnl =================================================================
471 [ --with-debug Enable debug mode],
473 if test "x$withval" != "xno" ; then
474 if test $ac_cv_prog_cc_g = yes; then
475 if test "$GCC" = yes; then
481 CFLAGS="$CFLAGS -Wshadow -Wconversion"
489 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
490 if test "$GCC" = yes; then
500 [ --with-user=privoxy Set user under which privoxy run],
502 if test "x$withval" != "xyes"; then
505 AC_MSG_ERROR(We need a user if you give me this parameter)
515 [ --with-group=privoxy Set group for privoxy],
517 if test "x$withval" != "xyes"; then
520 AC_MSG_ERROR(We need a group if you give me this parameter)
528 dnl =================================================================
529 dnl additional gcc flags
530 dnl =================================================================
533 CFLAGS="-pipe $CFLAGS"
537 dnl =================================================================
539 dnl =================================================================
541 dnl Must do this first.
543 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
544 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
545 dnl the compiler will use completely different sets of library
546 dnl and include files.
548 dnl =================================================================
553 if test "$MINGW32" = "yes"; then
556 if test "$CYGWIN" = "yes"; then
563 if test $dodk = auto; then
565 if test $target_type = unix; then
574 dnl Decide what to do based on target_type
575 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
576 dnl This is because we don't know yet whether pthread is enabled.
578 AC_ARG_ENABLE(mingw32,
579 [ --enable-mingw32 Use mingw32 for a Windows GUI],
580 [if test $enableval = yes; then
584 if test $target_type = mingw; then
586 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
587 PTHREAD_LIB=-lpthreadGC
588 echo "Using mingw32 (Win32 GUI)"
591 if test $target_type = cygwin; then
592 SPECIAL_CFLAGS="-mno-win32"
594 echo "Using Cygnus (Win32 command line)"
597 PTHREAD_LIB=-lpthread
602 dnl Checking which text html browser we have avaliable
603 if test $dodk != no; then
604 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
605 if test "$WDUMP" = false; then
606 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
608 if test $DB2HTML = false; then
609 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
612 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
618 dnl If we use rpm, we need to check where %_topdir is
619 AC_CHECK_PROGS(RPMBIN,rpm,false)
620 if test $RPMBIN != false; then
621 RPM_BASE=`rpm --eval "%{_topdir}"`
622 if test "$RPM_BASE" = ""; then
623 RPM_BASE=/usr/src/redhat
628 dnl Check for jade, so we can build the documentation
629 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
632 dnl Check for man2html for docs.
633 AC_CHECK_PROGS(MAN2HTML,man2html,false)
636 dnl Set doc status flag for conditional content inclusions
637 DOC_STATUS=p-not-stable
638 if test $CODE_STATUS = stable; then
639 DOC_STATUS="p-stable"
643 dnl Checking for the docbook.dsl stylesheet file
644 dnl It is still not portable (directory slash)
646 if test $dodk = yes; then
647 if test $DKPREFIX = none; then
648 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
649 echo -n "checking for $i/html/docbook.dsl..."
650 if test -f $i/html/docbook.dsl; then
658 # where are the catalogs?
659 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
660 echo -n "checking for $i..."
663 JADECAT="$JADECAT -c $i"
673 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
674 old_CFLAGS_nospecial=$CFLAGS
675 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
677 # Hack to force AutoConf to use the CFLAGS we just set
678 dnl Warning: This may break with a future version of Autoconf
679 dnl Tested with autoconf 2.13
680 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
681 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
682 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
685 dnl =================================================================
687 dnl =================================================================
689 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
691 AC_ARG_ENABLE(pthread,
692 [ --disable-pthread Don't use POSIX threads (pthreads)],
693 [if test $enableval = no; then
698 if test $have_pthread = yes; then
700 AC_DEFINE(FEATURE_PTHREAD)
701 echo Using POSIX threads
702 if test "$GCC" = "yes"; then
703 # Set a GCC specific switch:
704 if test "$target_type" = "unix"; then
705 ac_jgf_save_CFLAGS=$CFLAGS
706 CFLAGS="$CFLAGS -pthread"
707 AC_TRY_LINK([#include <pthread.h>],
708 [void *p = pthread_create;],
710 # This compiler switch makes GCC on Linux thread-safe
711 # However, it's not supported on most other OS.
713 SPECIAL_CFLAGS="-pthread"
715 CFLAGS=$ac_jgf_save_CFLAGS
720 echo Using native threads
723 AC_SUBST(PTHREAD_ONLY)
725 dnl =================================================================
726 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
727 dnl gmtime and localtime
728 dnl =================================================================
730 dnl Next line needed to find the gethost*_r functions on Solaris
731 AC_CHECK_LIB(nsl, gethostbyname)
733 AC_CHECK_FUNC(gethostbyaddr_r, [
734 AC_MSG_CHECKING([signature of gethostbyaddr_r])
738 struct hostent *h, *hp;
741 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
743 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
744 AC_MSG_RESULT([8 args])
752 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
754 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
755 AC_MSG_RESULT([7 args])
760 struct hostent_data *d;
764 (void) gethostbyaddr_r(a, l, t, h, d)
766 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
767 AC_MSG_RESULT([5 args])
769 AC_MSG_RESULT(unrecognised)
777 AC_CHECK_FUNC(gethostbyname_r, [
778 AC_MSG_CHECKING([signature of gethostbyname_r])
782 struct hostent *h, *r;
785 (void) gethostbyname_r(n, h, b, bl, &r, &e)
787 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
788 AC_MSG_RESULT([6 args])
796 (void) gethostbyname_r(n, h, b, bl, &e)
798 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
799 AC_MSG_RESULT([5 args])
804 struct hostent_data *d;
807 (void) gethostbyname_r(n, h, d)
809 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
810 AC_MSG_RESULT([3 args])
812 AC_MSG_RESULT(unrecognised)
820 AC_CHECK_FUNC(gmtime_r, [
821 AC_MSG_CHECKING([signature of gmtime_r])
827 (void) gmtime_r(t, tm)
830 AC_DEFINE(HAVE_GMTIME_R)
832 AC_MSG_RESULT(unrecognised)
838 AC_CHECK_FUNC(localtime_r, [
839 AC_MSG_CHECKING([signature of localtime_r])
845 (void) localtime_r(t, tm)
848 AC_DEFINE(HAVE_LOCALTIME_R)
850 AC_MSG_RESULT(unrecognised)
856 dnl =================================================================
858 dnl FIXME: Not tested on Solaris yet...
859 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
860 dnl make these checks generic, e.g.:
861 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
862 dnl (Moritz Barsnick <moritz@barsnick.net>)
863 dnl =================================================================
869 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
870 AC_DEFINE(__EXTENSIONS__)
871 if test "$GCC" = "yes"; then
872 # Set a GCC specific switch:
873 # This compiler switch makes Solaris thread-safe
875 SPECIAL_CFLAGS="-pthreads"
877 # What do we do without GCC? Guess this:
878 SPECIAL_CFLAGS="-D_REENTRANT"
885 dnl =================================================================
886 dnl Solaris problem, and others perhaps (socklen_t is undefined)
887 dnl =================================================================
889 AC_MSG_CHECKING([for socklen_t])
890 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
892 AC_DEFINE(socklen_t,int,
893 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
896 dnl =================================================================
898 dnl =================================================================
901 *-os2-emx*) SOCKET_LIB=-lsocket
907 dnl =================================================================
909 dnl =================================================================
912 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
916 dnl =================================================================
918 dnl =================================================================
923 *-amigaos) AMIGAOS_ONLY=
927 AC_SUBST(AMIGAOS_ONLY)
929 dnl =================================================================
930 dnl Check for standard compiler stuff
931 dnl =================================================================
942 AC_CHECK_SIZEOF(int, 4)
943 AC_CHECK_SIZEOF(char *, 4)
944 AC_CHECK_SIZEOF(long, 4)
945 AC_CHECK_SIZEOF(long long, 8)
946 AC_CHECK_SIZEOF(size_t, 4)
948 dnl Checks for header files.
949 dnl AC_HEADER_SYS_WAIT
950 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
951 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])
953 dnl Checks for library functions.
955 dnl AC_CHECK_FUNC(strstr)
956 dnl bcopy and memmove are for PCRE
957 AC_CHECK_FUNCS([strerror bcopy memmove])
958 AC_PROG_GCC_TRADITIONAL
959 dnl uncommenting does not work for swa. suse linux
963 dnl uncommenting does not work for swa. suse linux
965 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
968 dnl =================================================================
969 dnl Checks for libraries.
970 dnl =================================================================
971 dnl Note: Some systems may have the library but not the system header
972 dnl file, so we must check for both.
973 dnl Also check for correct version
974 AC_CHECK_LIB(pcre, pcre_compile, [
975 AC_CHECK_HEADER(pcre.h, [
976 AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
978 AC_CHECK_HEADER(pcre/pcre.h, [
979 AC_EGREP_HEADER(pcre_fullinfo, pcre/pcre.h, [have_pcre=yes]; [AC_DEFINE(PCRE_H_IN_SUBDIR)], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no])
984 AC_CHECK_LIB(pcreposix, regcomp, [
985 AC_CHECK_HEADER(pcreposix.h, [
986 AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes])
988 AC_CHECK_HEADER(pcre/pcreposix.h, [
989 AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)])
990 ], [have_pcreposix=no])
992 ], [have_pcreposix=no], -lpcre)
994 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre)
996 dnl =================================================================
998 dnl =================================================================
1002 dnl =================================================================
1004 dnl =================================================================
1006 AC_ARG_ENABLE(toggle,
1007 [ --disable-toggle Don't support temporary disable],
1008 [if test $enableval = yes; then
1009 AC_DEFINE(FEATURE_TOGGLE)
1010 fi],AC_DEFINE(FEATURE_TOGGLE))
1012 AC_ARG_ENABLE(force,
1013 [ --disable-force Don't allow single-page disable],
1014 [if test $enableval = yes; then
1015 AC_DEFINE(FEATURE_FORCE_LOAD)
1016 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
1018 AC_ARG_ENABLE(fast-redirects,
1019 [ --disable-fast-redirects Don't support fast redirects],
1020 [if test $enableval = yes; then
1021 AC_DEFINE(FEATURE_FAST_REDIRECTS)
1022 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
1024 AC_ARG_ENABLE(killpopup,
1025 [ --disable-killpopup Never block popups],
1026 [if test $enableval = yes; then
1027 AC_DEFINE(FEATURE_KILL_POPUPS)
1028 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
1030 AC_ARG_ENABLE(stats,
1031 [ --disable-stats Don't keep statistics],
1032 [if test $enableval = yes; then
1033 AC_DEFINE(FEATURE_STATISTICS)
1034 fi],AC_DEFINE(FEATURE_STATISTICS))
1036 AC_ARG_ENABLE(ie-images,
1037 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
1038 Explorer is for an image or HTML.],
1039 [if test $enableval = yes; then
1040 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
1042 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
1044 AC_ARG_ENABLE(image-blocking,
1045 [ --disable-image-blocking Don't try to figure out whether a request is
1046 for an image or HTML - assume HTML.],
1047 [if test $enableval = yes; then
1048 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
1050 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
1052 AC_ARG_ENABLE(acl-files,
1053 [ --disable-acl-files Prevents the use of ACL files to control access to
1054 the proxy by IP address.],
1055 [if test $enableval = yes; then
1056 AC_DEFINE(FEATURE_ACL)
1058 AC_DEFINE(FEATURE_ACL))
1060 AC_ARG_ENABLE(trust-files,
1061 [ --disable-trust-files Prevents the use of trust files.],
1062 [if test $enableval = yes; then
1063 AC_DEFINE(FEATURE_TRUST)
1065 AC_DEFINE(FEATURE_TRUST))
1067 AC_ARG_ENABLE(jar-files,
1068 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1069 [if test $enableval = yes; then
1070 AC_DEFINE(FEATURE_COOKIE_JAR)
1072 AC_DEFINE(FEATURE_COOKIE_JAR))
1074 AC_ARG_ENABLE(editor,
1075 [ --disable-editor Prevents the use of the web-based actions file
1076 editor and web-based temporary disable setting.],
1077 [if test $enableval = yes; then
1078 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1080 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1082 AC_ARG_ENABLE(no-gifs,
1083 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1084 for built-in images. May not work with all browsers.],
1085 [if test $enableval = yes; then
1086 AC_DEFINE(FEATURE_NO_GIFS)
1090 dnl pcre/pcrs is needed for CGI anyway, so
1091 dnl the choice is only between static and
1094 AC_ARG_ENABLE(dynamic-pcre,
1095 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1096 libpcre is available],
1097 [ if test $enableval = "no"; then have_pcre=no; fi ])
1099 AC_ARG_ENABLE(dynamic-pcrs,
1100 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1101 libpcrs is available],
1102 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1105 # If we have libpcre and either we also have pcreposix or
1106 # we don't need pcreposix, then link pcre dynamically; else
1107 # build it and link statically
1109 if test $have_pcre = "yes"; then
1110 echo "using libpcre"
1113 LIBS="$LIBS -lpcre -lpcreposix"
1115 echo "using built-in static pcre"
1117 AC_DEFINE(STATIC_PCRE)
1121 # If we have libpcrs and pcre is linked dynamically
1122 # then also link pcrs dynamically, else build and link
1125 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1126 echo "using libpcrs"
1130 echo "using built-in static pcrs"
1131 AC_DEFINE(STATIC_PCRS)
1135 AC_SUBST(STATIC_PCRE_ONLY)
1136 AC_SUBST(STATIC_PCRS_ONLY)
1138 dnl =================================================================
1139 dnl Final cleanup and output
1140 dnl =================================================================
1142 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1144 CFLAGS=$old_CFLAGS_nospecial
1145 AC_SUBST(SPECIAL_CFLAGS)
1147 AC_SUBST(PTHREAD_LIB)
1149 AC_OUTPUT(GNUmakefile doc/source/ldp.dsl)