1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.64 2002/04/22 16:32:31 morcego 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.64 2002/04/22 16:32:31 morcego
32 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
33 dnl -rh.spec: uid and gid are now macros
34 dnl -suse.spec: Changing the header Copyright to License (Copyright is
37 dnl Revision 1.63 2002/04/11 11:00:21 oes
38 dnl Applied Moritz' fix for socklen_t on Solaris
40 dnl Revision 1.62 2002/04/11 10:09:20 oes
43 dnl Revision 1.61 2002/04/10 18:14:45 morcego
44 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
45 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
47 dnl Revision 1.60 2002/04/09 16:38:49 oes
48 dnl Added detection of missing config.h.in
50 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
51 dnl Removing unnessacery tests (C++, ranlib)
53 dnl Revision 1.58 2002/04/04 20:49:20 swa
54 dnl attempt to consolidate the
55 dnl different dokbook versions.
57 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
58 dnl always use pcre for matching
60 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
61 dnl Removed references to gnu_regex
63 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
64 dnl Checking pcre version
66 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
67 dnl More changes needed around regex support.
69 dnl Revision 1.53 2002/03/29 20:09:01 swa
72 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
73 dnl Correcting compile problem with Debian
75 dnl Revision 1.51 2002/03/28 20:43:00 swa
76 dnl set make correctly
78 dnl Revision 1.50 2002/03/27 03:03:45 hal9
79 dnl Add test for man2html
81 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
82 dnl More Mac OSX support:
83 dnl - Get rid of extraneous, noisy -pthread warnings
84 dnl - Define unix so we get oes' unix-tagged changes
86 dnl Revision 1.48 2002/03/26 22:29:54 swa
87 dnl we have a new homepage!
89 dnl Revision 1.47 2002/03/26 16:41:00 hal9
90 dnl Upped RPM Release to 3 (need to build new RH packages)
92 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
93 dnl Making Docbook work under Windows
95 dnl Revision 1.45 2002/03/24 14:19:55 swa
96 dnl set rpm package release in configure.in. nowhere else.
98 dnl Revision 1.44 2002/03/24 13:25:43 swa
99 dnl name change related issues
101 dnl Revision 1.43 2002/03/24 12:56:21 swa
102 dnl name change related issues.
104 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
105 dnl Bumping version number to 2.9.12
107 dnl Revision 1.41 2002/03/19 19:30:04 morcego
108 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
111 dnl - configure will now check for db2html or docbook2html (should work now
112 dnl on SuSe without the docbktls package)
114 dnl Revision 1.40 2002/03/09 14:33:30 oes
115 dnl Fixing the (harmless) AC_CHECK_FILE warnings
117 dnl Revision 1.39 2002/03/08 16:46:13 oes
118 dnl Added --enable-no-gifs
120 dnl Revision 1.38 2002/03/08 14:13:50 morcego
121 dnl Fixing configure, to remove a command not found error.
123 dnl Revision 1.37 2002/03/08 12:58:21 oes
124 dnl Tiny bugfix in AC_ARG_WITH(debug)
126 dnl Revision 1.36 2002/03/06 23:50:36 morcego
127 dnl Will not test for a text browser if we are not using docbook.
129 dnl Revision 1.35 2002/03/06 21:55:52 morcego
130 dnl New configure option: --with-docbook=(yes|no|directory)
131 dnl Preliminary new platform detection code included. Will work with the
132 dnl old one for now. No use just trowing it away
134 dnl Revision 1.34 2002/03/06 20:57:00 morcego
135 dnl Fixing detection of stylesheets on SuSe.
137 dnl Revision 1.33 2002/03/05 17:31:11 morcego
138 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
140 dnl Revision 1.32 2002/03/05 14:07:43 morcego
141 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
142 dnl (based on sugestion by Sarantis Paskalis)
144 dnl Revision 1.31 2002/03/05 13:43:28 morcego
145 dnl Checking for text browser, so redhat-dok can work.
147 dnl Revision 1.30 2002/03/04 17:58:01 oes
148 dnl Deleted _DEBUG and PID_FILE_PATH
150 dnl Revision 1.29 2002/02/28 14:20:53 oes
151 dnl Fixed detection of gethost*_r functions on Solaris
153 dnl Revision 1.28 2002/02/27 15:02:38 oes
154 dnl Incremented version number
156 dnl Revision 1.27 2002/01/10 12:35:18 oes
157 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
158 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
159 dnl Is there a better way?
161 dnl Revision 1.26 2002/01/09 14:29:49 oes
162 dnl - Added AC_CHECK_FUNC tests for the availability of
163 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
164 dnl localtime_r, as well as AC_TRY_COMPILE tests to
165 dnl determine their signatures.
167 dnl - Fixed a bug with the init of CFLAGS that was
168 dnl reported by barsnick
170 dnl Revision 1.25 2002/01/04 15:27:18 oes
171 dnl Changed quoting of CODE_STATUS for use in make
173 dnl Revision 1.24 2001/12/30 14:07:31 steudten
174 dnl - Add signal handling (unix)
175 dnl - Add SIGHUP handler (unix)
176 dnl - Add creation of pidfile (unix)
177 dnl - Add action 'top' in rc file (RH)
178 dnl - Add entry 'SIGNALS' to manpage
179 dnl - Add exit message to logfile (unix)
181 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
182 dnl Change from "alpha" to "beta" in configure.in
184 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
185 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
186 dnl make break in a more obvious way.
188 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
189 dnl Bumping version number to 2.9.10
191 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
192 dnl Support for FEATURE_CGI_EDIT_ACTIONS
194 dnl Revision 1.19 2001/10/07 15:33:14 oes
195 dnl Removed FEATURE_DENY_GZIP
196 dnl Bumped up version number
198 dnl Revision 1.18 2001/09/13 13:10:24 steudten
200 dnl PreWork for Debug Interface.
201 dnl Add new option "--with-debug" to enable debugging (flags aso.)
203 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
204 dnl Mac OSX (Darwin) support added.
206 dnl Revision 1.16 2001/09/12 22:55:45 joergs
207 dnl AmigaOS support added.
209 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
211 dnl OS/2 port: update autoconf'd support for the platform.
213 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
214 dnl Fixing Solaris build (I hope) and tidying up #defines:
215 dnl - All feature #defines are now of the form FEATURE_xxx
216 dnl - Permanently turned off WIN_GUI_EDIT
217 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
219 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
220 dnl Major changes to build system in order to fix these bugs:
221 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
222 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
223 dnl which shared libraries are available
224 dnl - Solaris support (?) (Not tested under Solaris yet)
226 dnl Revision 1.12 2001/07/25 19:16:27 oes
227 dnl Bumping version number to 2.9.8
229 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
230 dnl Bumping version number to 2.9.7
232 dnl Revision 1.10 2001/07/18 17:25:04 oes
235 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
236 dnl Added support for linking with POSIX threads library
238 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
239 dnl Renaming #define STATIC to STATIC_PCRE
240 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
241 dnl POSIX threads support.
243 dnl Revision 1.7 2001/07/13 13:58:05 oes
244 dnl Completely reorganized the selection scheme for
245 dnl pcre, pcreposix, pcrs and gnu_regex:
247 dnl The presence of shared pcre, pcreposix or pcrs
248 dnl libraried is now autodetected. Additionally, the
249 dnl user can enforce using the built-in static variants
250 dnl by specifying --disable-dynamic-(pcre|pcrs).
251 dnl Care is taken to avoid that pcre is dyn, while pcreposix
252 dnl is static, if both are used and that pcrs is static if
255 dnl The choice between pcre, gnu or no regex for actionsfile
256 dnl URL matching is now via
257 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
258 dnl default being pcre.
260 dnl Revision 1.6 2001/06/29 21:56:40 oes
263 dnl Revision 1.5 2001/06/29 13:26:27 oes
264 dnl Introduced #define CODE_STATUS
266 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
267 dnl Unified blocklist/imagelist/permissionslist.
268 dnl File format is still under discussion, but the internal changes
269 dnl are (mostly) done.
271 dnl Also modified interceptor behaviour:
272 dnl - We now intercept all URLs beginning with one of the following
273 dnl prefixes (and *only* these prefixes):
275 dnl * http://ijbswa.sf.net/config/
276 dnl * http://ijbswa.sourceforge.net/config/
277 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
278 dnl - Internal changes so that intercepted and fast redirect pages
279 dnl are not replaced with an image.
280 dnl - Interceptors now have the option to send a binary page direct
281 dnl to the client. (i.e. ijb-send-banner uses this)
282 dnl - Implemented show-url-info interceptor. (Which is why I needed
283 dnl the above interceptors changes - a typical URL is
284 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
285 dnl The previous mechanism would not have intercepted that, and
286 dnl if it had been intercepted then it then it would have replaced
287 dnl it with an image.)
289 dnl Revision 1.3 2001/05/22 18:46:04 oes
291 dnl - Enabled filtering banners by size rather than URL
292 dnl by adding patterns that replace all standard banner
293 dnl sizes with the "Junkbuster" gif to the re_filterfile
295 dnl - Enabled filtering WebBugs by providing a pattern
296 dnl which kills all 1x1 images
298 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
299 dnl which is selected by the (nonstandard and therefore
300 dnl capital) letter 'U' in the option string.
301 dnl It causes the quantifiers to be ungreedy by default.
302 dnl Appending a ? turns back to greedy (!).
304 dnl - Added a new interceptor ijb-send-banner, which
305 dnl sends back the "Junkbuster" gif. Without imagelist or
306 dnl MSIE detection support, or if tinygif = 1, or the
307 dnl URL isn't recognized as an imageurl, a lame HTML
308 dnl explanation is sent instead.
310 dnl - Added new feature, which permits blocking remote
311 dnl script redirects and firing back a local redirect
313 dnl The feature is conditionally compiled, i.e. it
314 dnl can be disabled with --disable-fast-redirects,
315 dnl plus it must be activated by a "fast-redirects"
316 dnl line in the config file, has its own log level
317 dnl and of course wants to be displayed by show-proxy-args
318 dnl Note: Boy, all the #ifdefs in 1001 locations and
319 dnl all the fumbling with configure.in and acconfig.h
320 dnl were *way* more work than the feature itself :-(
322 dnl - Because a generic redirect template was needed for
323 dnl this, tinygif = 3 now uses the same.
325 dnl - Moved GIFs, and other static HTTP response templates
328 dnl - Some minor fixes
330 dnl - Removed some >400 CRs again (Jon, you really worked
333 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
334 dnl Version 2.9.4 checkin.
335 dnl - Merged popupfile and cookiefile, and added control over PCRS
336 dnl filtering, in new "permissionsfile".
337 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
338 dnl file error you now get a message box (in the Win32 GUI) rather
339 dnl than the program exiting with no explanation.
340 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
342 dnl - Removed tabs from "config"
343 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
344 dnl - Bumped up version number.
346 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
347 dnl Initial import of version 2.9.3 source tree
352 dnl =================================================================
353 dnl AutoConf Initialization
354 dnl =================================================================
356 AC_REVISION($Revision: 1.64 $)
359 if test ! -f config.h.in; then
360 echo "You need to run autoheader first. "
361 echo -n "Shall I do this for you now? (y/n) "
363 if test $answer != "y"; then
370 AC_CONFIG_HEADER([config.h])
375 AC_ARG_WITH(docbook, dnl
376 --with-docbook=[[yes|no|directory]]
377 Enable docbook documentation creation
378 (default = yes, for gnu and linux),[dnl
379 case "$with_docbook" in
389 AC_ARG_WITH(db2html, dnl
390 --with-db2html=<path/executable>
391 Set the location of the docbook to html converter
392 (default = search),[dnl
396 dnl =================================================================
397 dnl Application version number
398 dnl =================================================================
405 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
406 dnl used for CGI output
408 dnl =================================================================
409 dnl Substitute the version numbers
410 dnl =================================================================
412 AC_SUBST(VERSION_MAJOR)
413 AC_SUBST(VERSION_MINOR)
414 AC_SUBST(VERSION_POINT)
415 AC_SUBST(CODE_STATUS)
418 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
419 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
420 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
421 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
422 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
424 dnl =================================================================
425 dnl Checks for programs needed to build.
426 dnl =================================================================
433 AC_CHECK_PROG(GDB,gdb,yes,no)
435 dnl =================================================================
436 dnl debug, gcc and gdb support
437 dnl =================================================================
440 [ --with-debug Enable debug mode],
442 if test "x$withval" != "xno" ; then
443 if test $ac_cv_prog_cc_g = yes; then
444 if test "$GCC" = yes; then
450 CFLAGS="$CFLAGS -Wshadow -Wconversion"
458 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
459 if test "$GCC" = yes; then
469 [ --with-user=privoxy Set user under which privoxy run],
471 if test "x$withval" != "xyes"; then
474 AC_MSG_ERROR(We need a user if you give me this parameter)
484 [ --with-group=privoxy Set group for privoxy],
486 if test "x$withval" != "xyes"; then
489 AC_MSG_ERROR(We need a group if you give me this parameter)
497 dnl =================================================================
498 dnl additional gcc flags
499 dnl =================================================================
502 CFLAGS="-pipe $CFLAGS"
506 dnl =================================================================
508 dnl =================================================================
510 dnl Must do this first.
512 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
513 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
514 dnl the compiler will use completely different sets of library
515 dnl and include files.
517 dnl =================================================================
522 if test "$MINGW32" = "yes"; then
525 if test "$CYGWIN" = "yes"; then
532 if test $dodk = auto; then
534 if test $target_type = unix; then
543 dnl Decide what to do based on target_type
544 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
545 dnl This is because we don't know yet whether pthread is enabled.
547 AC_ARG_ENABLE(mingw32,
548 [ --enable-mingw32 Use mingw32 for a Windows GUI],
549 [if test $enableval = yes; then
553 if test $target_type = mingw; then
555 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
556 PTHREAD_LIB=-lpthreadGC
557 echo "Using mingw32 (Win32 GUI)"
560 if test $target_type = cygwin; then
561 SPECIAL_CFLAGS="-mno-win32"
563 echo "Using Cygnus (Win32 command line)"
566 PTHREAD_LIB=-lpthread
571 dnl Checking which text html browser we have avaliable
572 if test $dodk != no; then
573 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
574 if test "$WDUMP" = false; then
575 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
577 if test $DB2HTML = false; then
578 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
581 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
587 dnl If we use rpm, we need to check where %_topdir is
588 AC_CHECK_PROGS(RPMBIN,rpm,false)
589 if test $RPMBIN != false; then
590 RPM_BASE=`rpm --eval "%{_topdir}"`
591 if test "$RPM_BASE" = ""; then
592 RPM_BASE=/usr/src/redhat
597 dnl Check for jade, so we can build the documentation
598 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
601 dnl Check for man2html for docs.
602 AC_CHECK_PROGS(MAN2HTML,man2html,false)
605 dnl Checking for the docbook.dsl stylesheet file
606 dnl It is still not portable (directory slash)
608 if test $dodk = yes; then
609 if test $DKPREFIX = none; then
610 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
611 echo -n "checking for $i/html/docbook.dsl..."
612 if test -f $i/html/docbook.dsl; then
620 # where are the catalogs?
621 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
622 echo -n "checking for $i..."
625 JADECAT="$JADECAT -c $i"
635 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
636 old_CFLAGS_nospecial=$CFLAGS
637 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
639 # Hack to force AutoConf to use the CFLAGS we just set
640 dnl Warning: This may break with a future version of Autoconf
641 dnl Tested with autoconf 2.13
642 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
643 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
644 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
647 dnl =================================================================
649 dnl =================================================================
651 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
653 AC_ARG_ENABLE(pthread,
654 [ --disable-pthread Don't use POSIX threads (pthreads)],
655 [if test $enableval = no; then
660 if test $have_pthread = yes; then
662 AC_DEFINE(FEATURE_PTHREAD)
663 echo Using POSIX threads
664 if test "$GCC" = "yes"; then
665 # Set a GCC specific switch:
666 if test "$target_type" = "unix"; then
667 # This compiler switch makes Linux thread-safe
668 # Don't know about other OS's? Is this switch
671 SPECIAL_CFLAGS="-pthread"
676 echo Using native threads
679 AC_SUBST(PTHREAD_ONLY)
681 dnl =================================================================
682 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
683 dnl gmtime and localtime
684 dnl =================================================================
686 dnl Next line needed to find the gethost*_r functions on Solaris
687 AC_CHECK_LIB(nsl, gethostbyname)
689 AC_CHECK_FUNC(gethostbyaddr_r, [
690 AC_MSG_CHECKING([signature of gethostbyaddr_r])
694 struct hostent *h, *hp;
697 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
699 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
700 AC_MSG_RESULT([8 args])
708 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
710 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
711 AC_MSG_RESULT([7 args])
716 struct hostent_data *d;
720 (void) gethostbyaddr_r(a, l, t, h, d)
722 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
723 AC_MSG_RESULT([5 args])
725 AC_MSG_RESULT(unrecognised)
733 AC_CHECK_FUNC(gethostbyname_r, [
734 AC_MSG_CHECKING([signature of gethostbyname_r])
738 struct hostent *h, *r;
741 (void) gethostbyname_r(n, h, b, bl, &r, &e)
743 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
744 AC_MSG_RESULT([6 args])
752 (void) gethostbyname_r(n, h, b, bl, &e)
754 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
755 AC_MSG_RESULT([5 args])
760 struct hostent_data *d;
763 (void) gethostbyname_r(n, h, d)
765 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
766 AC_MSG_RESULT([3 args])
768 AC_MSG_RESULT(unrecognised)
776 AC_CHECK_FUNC(gmtime_r, [
777 AC_MSG_CHECKING([signature of gmtime_r])
783 (void) gmtime_r(t, tm)
786 AC_DEFINE(HAVE_GMTIME_R)
788 AC_MSG_RESULT(unrecognised)
794 AC_CHECK_FUNC(localtime_r, [
795 AC_MSG_CHECKING([signature of localtime_r])
801 (void) localtime_r(t, tm)
804 AC_DEFINE(HAVE_LOCALTIME_R)
806 AC_MSG_RESULT(unrecognised)
812 dnl =================================================================
814 dnl FIXME: Not tested on Solaris yet...
815 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
816 dnl make these checks generic, e.g.:
817 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
818 dnl (Moritz Barsnick <moritz@barsnick.net>)
819 dnl =================================================================
825 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
826 AC_DEFINE(__EXTENSIONS__)
827 if test "$GCC" = "yes"; then
828 # Set a GCC specific switch:
829 # This compiler switch makes Solaris thread-safe
831 SPECIAL_CFLAGS="-pthreads"
833 # What do we do without GCC? Guess this:
834 SPECIAL_CFLAGS="-D_REENTRANT"
841 dnl =================================================================
842 dnl Solaris problem, and others perhaps (socklen_t is undefined)
843 dnl =================================================================
845 AC_MSG_CHECKING([for socklen_t])
846 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
848 AC_DEFINE(socklen_t,int,
849 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
852 dnl =================================================================
854 dnl =================================================================
857 *-os2-emx*) SOCKET_LIB=-lsocket
863 dnl =================================================================
865 dnl =================================================================
868 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
872 dnl =================================================================
874 dnl =================================================================
879 *-amigaos) AMIGAOS_ONLY=
883 AC_SUBST(AMIGAOS_ONLY)
885 dnl =================================================================
886 dnl Check for standard compiler stuff
887 dnl =================================================================
898 AC_CHECK_SIZEOF(int, 4)
899 AC_CHECK_SIZEOF(char *, 4)
900 AC_CHECK_SIZEOF(long, 4)
901 AC_CHECK_SIZEOF(long long, 8)
902 AC_CHECK_SIZEOF(size_t, 4)
904 dnl Checks for header files.
905 dnl AC_HEADER_SYS_WAIT
906 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
907 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])
909 dnl Checks for library functions.
911 dnl AC_CHECK_FUNC(strstr)
912 dnl bcopy and memmove are for PCRE
913 AC_CHECK_FUNCS([strerror bcopy memmove])
914 AC_PROG_GCC_TRADITIONAL
915 dnl uncommenting does not work for swa. suse linux
919 dnl uncommenting does not work for swa. suse linux
921 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
924 dnl =================================================================
925 dnl Checks for libraries.
926 dnl =================================================================
927 dnl Note: Some systems may have the library but not the system header
928 dnl file, so we must check for both.
929 dnl Also check for correct version
930 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])
931 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)
932 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
935 dnl =================================================================
937 dnl =================================================================
941 dnl =================================================================
943 dnl =================================================================
945 AC_ARG_ENABLE(toggle,
946 [ --disable-toggle Don't support temporary disable],
947 [if test $enableval = yes; then
948 AC_DEFINE(FEATURE_TOGGLE)
949 fi],AC_DEFINE(FEATURE_TOGGLE))
952 [ --disable-force Don't allow single-page disable],
953 [if test $enableval = yes; then
954 AC_DEFINE(FEATURE_FORCE_LOAD)
955 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
957 AC_ARG_ENABLE(fast-redirects,
958 [ --disable-fast-redirects Don't support fast redirects],
959 [if test $enableval = yes; then
960 AC_DEFINE(FEATURE_FAST_REDIRECTS)
961 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
963 AC_ARG_ENABLE(killpopup,
964 [ --disable-killpopup Never block popups],
965 [if test $enableval = yes; then
966 AC_DEFINE(FEATURE_KILL_POPUPS)
967 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
970 [ --disable-stats Don't keep statistics],
971 [if test $enableval = yes; then
972 AC_DEFINE(FEATURE_STATISTICS)
973 fi],AC_DEFINE(FEATURE_STATISTICS))
975 AC_ARG_ENABLE(ie-images,
976 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
977 Explorer is for an image or HTML.],
978 [if test $enableval = yes; then
979 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
981 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
983 AC_ARG_ENABLE(image-blocking,
984 [ --disable-image-blocking Don't try to figure out whether a request is
985 for an image or HTML - assume HTML.],
986 [if test $enableval = yes; then
987 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
989 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
991 AC_ARG_ENABLE(acl-files,
992 [ --disable-acl-files Prevents the use of ACL files to control access to
993 the proxy by IP address.],
994 [if test $enableval = yes; then
995 AC_DEFINE(FEATURE_ACL)
997 AC_DEFINE(FEATURE_ACL))
999 AC_ARG_ENABLE(trust-files,
1000 [ --disable-trust-files Prevents the use of trust files.],
1001 [if test $enableval = yes; then
1002 AC_DEFINE(FEATURE_TRUST)
1004 AC_DEFINE(FEATURE_TRUST))
1006 AC_ARG_ENABLE(jar-files,
1007 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1008 [if test $enableval = yes; then
1009 AC_DEFINE(FEATURE_COOKIE_JAR)
1011 AC_DEFINE(FEATURE_COOKIE_JAR))
1013 AC_ARG_ENABLE(editor,
1014 [ --disable-editor Prevents the use of the web-based actions file
1015 editor and web-based temporary disable setting.],
1016 [if test $enableval = yes; then
1017 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1019 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1021 AC_ARG_ENABLE(no-gifs,
1022 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1023 for built-in images. May not work with all browsers.],
1024 [if test $enableval = yes; then
1025 AC_DEFINE(FEATURE_NO_GIFS)
1029 dnl pcre/pcrs is needed for CGI anyway, so
1030 dnl the choice is only between static and
1033 AC_ARG_ENABLE(dynamic-pcre,
1034 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1035 libpcre is available],
1036 [ if test $enableval = "no"; then have_pcre=no; fi ])
1038 AC_ARG_ENABLE(dynamic-pcrs,
1039 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1040 libpcrs is available],
1041 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1044 # If we have libpcre and either we also have pcreposix or
1045 # we don't need pcreposix, then link pcre dynamically; else
1046 # build it and link statically
1048 if test $have_pcre = "yes"; then
1049 echo "using libpcre"
1052 LIBS="$LIBS -lpcre -lpcreposix"
1054 echo "using built-in static pcre"
1056 AC_DEFINE(STATIC_PCRE)
1060 # If we have libpcrs and pcre is linked dynamically
1061 # then also link pcrs dynamically, else build and link
1064 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1065 echo "using libpcrs"
1069 echo "using built-in static pcrs"
1070 AC_DEFINE(STATIC_PCRS)
1074 AC_SUBST(STATIC_PCRE_ONLY)
1075 AC_SUBST(STATIC_PCRS_ONLY)
1077 dnl =================================================================
1078 dnl Final cleanup and output
1079 dnl =================================================================
1081 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1083 CFLAGS=$old_CFLAGS_nospecial
1084 AC_SUBST(SPECIAL_CFLAGS)
1086 AC_SUBST(PTHREAD_LIB)
1088 AC_OUTPUT(GNUmakefile)