1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.65 2002/04/25 19:13:57 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.65 2002/04/25 19:13:57 morcego
32 dnl Removed RPM release number declaration on configure.in
33 dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading
34 dnl targets (will produce an error, explaining who to do it, if no value
37 dnl Revision 1.64 2002/04/22 16:32:31 morcego
38 dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2)
39 dnl -rh.spec: uid and gid are now macros
40 dnl -suse.spec: Changing the header Copyright to License (Copyright is
43 dnl Revision 1.63 2002/04/11 11:00:21 oes
44 dnl Applied Moritz' fix for socklen_t on Solaris
46 dnl Revision 1.62 2002/04/11 10:09:20 oes
49 dnl Revision 1.61 2002/04/10 18:14:45 morcego
50 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
51 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
53 dnl Revision 1.60 2002/04/09 16:38:49 oes
54 dnl Added detection of missing config.h.in
56 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
57 dnl Removing unnessacery tests (C++, ranlib)
59 dnl Revision 1.58 2002/04/04 20:49:20 swa
60 dnl attempt to consolidate the
61 dnl different dokbook versions.
63 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
64 dnl always use pcre for matching
66 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
67 dnl Removed references to gnu_regex
69 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
70 dnl Checking pcre version
72 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
73 dnl More changes needed around regex support.
75 dnl Revision 1.53 2002/03/29 20:09:01 swa
78 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
79 dnl Correcting compile problem with Debian
81 dnl Revision 1.51 2002/03/28 20:43:00 swa
82 dnl set make correctly
84 dnl Revision 1.50 2002/03/27 03:03:45 hal9
85 dnl Add test for man2html
87 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
88 dnl More Mac OSX support:
89 dnl - Get rid of extraneous, noisy -pthread warnings
90 dnl - Define unix so we get oes' unix-tagged changes
92 dnl Revision 1.48 2002/03/26 22:29:54 swa
93 dnl we have a new homepage!
95 dnl Revision 1.47 2002/03/26 16:41:00 hal9
96 dnl Upped RPM Release to 3 (need to build new RH packages)
98 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
99 dnl Making Docbook work under Windows
101 dnl Revision 1.45 2002/03/24 14:19:55 swa
102 dnl set rpm package release in configure.in. nowhere else.
104 dnl Revision 1.44 2002/03/24 13:25:43 swa
105 dnl name change related issues
107 dnl Revision 1.43 2002/03/24 12:56:21 swa
108 dnl name change related issues.
110 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
111 dnl Bumping version number to 2.9.12
113 dnl Revision 1.41 2002/03/19 19:30:04 morcego
114 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
117 dnl - configure will now check for db2html or docbook2html (should work now
118 dnl on SuSe without the docbktls package)
120 dnl Revision 1.40 2002/03/09 14:33:30 oes
121 dnl Fixing the (harmless) AC_CHECK_FILE warnings
123 dnl Revision 1.39 2002/03/08 16:46:13 oes
124 dnl Added --enable-no-gifs
126 dnl Revision 1.38 2002/03/08 14:13:50 morcego
127 dnl Fixing configure, to remove a command not found error.
129 dnl Revision 1.37 2002/03/08 12:58:21 oes
130 dnl Tiny bugfix in AC_ARG_WITH(debug)
132 dnl Revision 1.36 2002/03/06 23:50:36 morcego
133 dnl Will not test for a text browser if we are not using docbook.
135 dnl Revision 1.35 2002/03/06 21:55:52 morcego
136 dnl New configure option: --with-docbook=(yes|no|directory)
137 dnl Preliminary new platform detection code included. Will work with the
138 dnl old one for now. No use just trowing it away
140 dnl Revision 1.34 2002/03/06 20:57:00 morcego
141 dnl Fixing detection of stylesheets on SuSe.
143 dnl Revision 1.33 2002/03/05 17:31:11 morcego
144 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
146 dnl Revision 1.32 2002/03/05 14:07:43 morcego
147 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
148 dnl (based on sugestion by Sarantis Paskalis)
150 dnl Revision 1.31 2002/03/05 13:43:28 morcego
151 dnl Checking for text browser, so redhat-dok can work.
153 dnl Revision 1.30 2002/03/04 17:58:01 oes
154 dnl Deleted _DEBUG and PID_FILE_PATH
156 dnl Revision 1.29 2002/02/28 14:20:53 oes
157 dnl Fixed detection of gethost*_r functions on Solaris
159 dnl Revision 1.28 2002/02/27 15:02:38 oes
160 dnl Incremented version number
162 dnl Revision 1.27 2002/01/10 12:35:18 oes
163 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
164 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
165 dnl Is there a better way?
167 dnl Revision 1.26 2002/01/09 14:29:49 oes
168 dnl - Added AC_CHECK_FUNC tests for the availability of
169 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
170 dnl localtime_r, as well as AC_TRY_COMPILE tests to
171 dnl determine their signatures.
173 dnl - Fixed a bug with the init of CFLAGS that was
174 dnl reported by barsnick
176 dnl Revision 1.25 2002/01/04 15:27:18 oes
177 dnl Changed quoting of CODE_STATUS for use in make
179 dnl Revision 1.24 2001/12/30 14:07:31 steudten
180 dnl - Add signal handling (unix)
181 dnl - Add SIGHUP handler (unix)
182 dnl - Add creation of pidfile (unix)
183 dnl - Add action 'top' in rc file (RH)
184 dnl - Add entry 'SIGNALS' to manpage
185 dnl - Add exit message to logfile (unix)
187 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
188 dnl Change from "alpha" to "beta" in configure.in
190 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
191 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
192 dnl make break in a more obvious way.
194 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
195 dnl Bumping version number to 2.9.10
197 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
198 dnl Support for FEATURE_CGI_EDIT_ACTIONS
200 dnl Revision 1.19 2001/10/07 15:33:14 oes
201 dnl Removed FEATURE_DENY_GZIP
202 dnl Bumped up version number
204 dnl Revision 1.18 2001/09/13 13:10:24 steudten
206 dnl PreWork for Debug Interface.
207 dnl Add new option "--with-debug" to enable debugging (flags aso.)
209 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
210 dnl Mac OSX (Darwin) support added.
212 dnl Revision 1.16 2001/09/12 22:55:45 joergs
213 dnl AmigaOS support added.
215 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
217 dnl OS/2 port: update autoconf'd support for the platform.
219 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
220 dnl Fixing Solaris build (I hope) and tidying up #defines:
221 dnl - All feature #defines are now of the form FEATURE_xxx
222 dnl - Permanently turned off WIN_GUI_EDIT
223 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
225 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
226 dnl Major changes to build system in order to fix these bugs:
227 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
228 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
229 dnl which shared libraries are available
230 dnl - Solaris support (?) (Not tested under Solaris yet)
232 dnl Revision 1.12 2001/07/25 19:16:27 oes
233 dnl Bumping version number to 2.9.8
235 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
236 dnl Bumping version number to 2.9.7
238 dnl Revision 1.10 2001/07/18 17:25:04 oes
241 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
242 dnl Added support for linking with POSIX threads library
244 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
245 dnl Renaming #define STATIC to STATIC_PCRE
246 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
247 dnl POSIX threads support.
249 dnl Revision 1.7 2001/07/13 13:58:05 oes
250 dnl Completely reorganized the selection scheme for
251 dnl pcre, pcreposix, pcrs and gnu_regex:
253 dnl The presence of shared pcre, pcreposix or pcrs
254 dnl libraried is now autodetected. Additionally, the
255 dnl user can enforce using the built-in static variants
256 dnl by specifying --disable-dynamic-(pcre|pcrs).
257 dnl Care is taken to avoid that pcre is dyn, while pcreposix
258 dnl is static, if both are used and that pcrs is static if
261 dnl The choice between pcre, gnu or no regex for actionsfile
262 dnl URL matching is now via
263 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
264 dnl default being pcre.
266 dnl Revision 1.6 2001/06/29 21:56:40 oes
269 dnl Revision 1.5 2001/06/29 13:26:27 oes
270 dnl Introduced #define CODE_STATUS
272 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
273 dnl Unified blocklist/imagelist/permissionslist.
274 dnl File format is still under discussion, but the internal changes
275 dnl are (mostly) done.
277 dnl Also modified interceptor behaviour:
278 dnl - We now intercept all URLs beginning with one of the following
279 dnl prefixes (and *only* these prefixes):
281 dnl * http://ijbswa.sf.net/config/
282 dnl * http://ijbswa.sourceforge.net/config/
283 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
284 dnl - Internal changes so that intercepted and fast redirect pages
285 dnl are not replaced with an image.
286 dnl - Interceptors now have the option to send a binary page direct
287 dnl to the client. (i.e. ijb-send-banner uses this)
288 dnl - Implemented show-url-info interceptor. (Which is why I needed
289 dnl the above interceptors changes - a typical URL is
290 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
291 dnl The previous mechanism would not have intercepted that, and
292 dnl if it had been intercepted then it then it would have replaced
293 dnl it with an image.)
295 dnl Revision 1.3 2001/05/22 18:46:04 oes
297 dnl - Enabled filtering banners by size rather than URL
298 dnl by adding patterns that replace all standard banner
299 dnl sizes with the "Junkbuster" gif to the re_filterfile
301 dnl - Enabled filtering WebBugs by providing a pattern
302 dnl which kills all 1x1 images
304 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
305 dnl which is selected by the (nonstandard and therefore
306 dnl capital) letter 'U' in the option string.
307 dnl It causes the quantifiers to be ungreedy by default.
308 dnl Appending a ? turns back to greedy (!).
310 dnl - Added a new interceptor ijb-send-banner, which
311 dnl sends back the "Junkbuster" gif. Without imagelist or
312 dnl MSIE detection support, or if tinygif = 1, or the
313 dnl URL isn't recognized as an imageurl, a lame HTML
314 dnl explanation is sent instead.
316 dnl - Added new feature, which permits blocking remote
317 dnl script redirects and firing back a local redirect
319 dnl The feature is conditionally compiled, i.e. it
320 dnl can be disabled with --disable-fast-redirects,
321 dnl plus it must be activated by a "fast-redirects"
322 dnl line in the config file, has its own log level
323 dnl and of course wants to be displayed by show-proxy-args
324 dnl Note: Boy, all the #ifdefs in 1001 locations and
325 dnl all the fumbling with configure.in and acconfig.h
326 dnl were *way* more work than the feature itself :-(
328 dnl - Because a generic redirect template was needed for
329 dnl this, tinygif = 3 now uses the same.
331 dnl - Moved GIFs, and other static HTTP response templates
334 dnl - Some minor fixes
336 dnl - Removed some >400 CRs again (Jon, you really worked
339 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
340 dnl Version 2.9.4 checkin.
341 dnl - Merged popupfile and cookiefile, and added control over PCRS
342 dnl filtering, in new "permissionsfile".
343 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
344 dnl file error you now get a message box (in the Win32 GUI) rather
345 dnl than the program exiting with no explanation.
346 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
348 dnl - Removed tabs from "config"
349 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
350 dnl - Bumped up version number.
352 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
353 dnl Initial import of version 2.9.3 source tree
358 dnl =================================================================
359 dnl AutoConf Initialization
360 dnl =================================================================
362 AC_REVISION($Revision: 1.65 $)
365 if test ! -f config.h.in; then
366 echo "You need to run autoheader first. "
367 echo -n "Shall I do this for you now? (y/n) "
369 if test $answer != "y"; then
376 AC_CONFIG_HEADER([config.h])
381 AC_ARG_WITH(docbook, dnl
382 --with-docbook=[[yes|no|directory]]
383 Enable docbook documentation creation
384 (default = yes, for gnu and linux),[dnl
385 case "$with_docbook" in
395 AC_ARG_WITH(db2html, dnl
396 --with-db2html=<path/executable>
397 Set the location of the docbook to html converter
398 (default = search),[dnl
402 dnl =================================================================
403 dnl Application version number
404 dnl =================================================================
411 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
412 dnl used for CGI output
414 dnl =================================================================
415 dnl Substitute the version numbers
416 dnl =================================================================
418 AC_SUBST(VERSION_MAJOR)
419 AC_SUBST(VERSION_MINOR)
420 AC_SUBST(VERSION_POINT)
421 AC_SUBST(CODE_STATUS)
424 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
425 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
426 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
427 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
428 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
430 dnl =================================================================
431 dnl Checks for programs needed to build.
432 dnl =================================================================
439 AC_CHECK_PROG(GDB,gdb,yes,no)
441 dnl =================================================================
442 dnl debug, gcc and gdb support
443 dnl =================================================================
446 [ --with-debug Enable debug mode],
448 if test "x$withval" != "xno" ; then
449 if test $ac_cv_prog_cc_g = yes; then
450 if test "$GCC" = yes; then
456 CFLAGS="$CFLAGS -Wshadow -Wconversion"
464 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
465 if test "$GCC" = yes; then
475 [ --with-user=privoxy Set user under which privoxy run],
477 if test "x$withval" != "xyes"; then
480 AC_MSG_ERROR(We need a user if you give me this parameter)
490 [ --with-group=privoxy Set group for privoxy],
492 if test "x$withval" != "xyes"; then
495 AC_MSG_ERROR(We need a group if you give me this parameter)
503 dnl =================================================================
504 dnl additional gcc flags
505 dnl =================================================================
508 CFLAGS="-pipe $CFLAGS"
512 dnl =================================================================
514 dnl =================================================================
516 dnl Must do this first.
518 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
519 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
520 dnl the compiler will use completely different sets of library
521 dnl and include files.
523 dnl =================================================================
528 if test "$MINGW32" = "yes"; then
531 if test "$CYGWIN" = "yes"; then
538 if test $dodk = auto; then
540 if test $target_type = unix; then
549 dnl Decide what to do based on target_type
550 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
551 dnl This is because we don't know yet whether pthread is enabled.
553 AC_ARG_ENABLE(mingw32,
554 [ --enable-mingw32 Use mingw32 for a Windows GUI],
555 [if test $enableval = yes; then
559 if test $target_type = mingw; then
561 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
562 PTHREAD_LIB=-lpthreadGC
563 echo "Using mingw32 (Win32 GUI)"
566 if test $target_type = cygwin; then
567 SPECIAL_CFLAGS="-mno-win32"
569 echo "Using Cygnus (Win32 command line)"
572 PTHREAD_LIB=-lpthread
577 dnl Checking which text html browser we have avaliable
578 if test $dodk != no; then
579 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
580 if test "$WDUMP" = false; then
581 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
583 if test $DB2HTML = false; then
584 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
587 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
593 dnl If we use rpm, we need to check where %_topdir is
594 AC_CHECK_PROGS(RPMBIN,rpm,false)
595 if test $RPMBIN != false; then
596 RPM_BASE=`rpm --eval "%{_topdir}"`
597 if test "$RPM_BASE" = ""; then
598 RPM_BASE=/usr/src/redhat
603 dnl Check for jade, so we can build the documentation
604 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
607 dnl Check for man2html for docs.
608 AC_CHECK_PROGS(MAN2HTML,man2html,false)
611 dnl Checking for the docbook.dsl stylesheet file
612 dnl It is still not portable (directory slash)
614 if test $dodk = yes; then
615 if test $DKPREFIX = none; then
616 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
617 echo -n "checking for $i/html/docbook.dsl..."
618 if test -f $i/html/docbook.dsl; then
626 # where are the catalogs?
627 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
628 echo -n "checking for $i..."
631 JADECAT="$JADECAT -c $i"
641 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
642 old_CFLAGS_nospecial=$CFLAGS
643 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
645 # Hack to force AutoConf to use the CFLAGS we just set
646 dnl Warning: This may break with a future version of Autoconf
647 dnl Tested with autoconf 2.13
648 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
649 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
650 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
653 dnl =================================================================
655 dnl =================================================================
657 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
659 AC_ARG_ENABLE(pthread,
660 [ --disable-pthread Don't use POSIX threads (pthreads)],
661 [if test $enableval = no; then
666 if test $have_pthread = yes; then
668 AC_DEFINE(FEATURE_PTHREAD)
669 echo Using POSIX threads
670 if test "$GCC" = "yes"; then
671 # Set a GCC specific switch:
672 if test "$target_type" = "unix"; then
673 # This compiler switch makes Linux thread-safe
674 # Don't know about other OS's? Is this switch
677 SPECIAL_CFLAGS="-pthread"
682 echo Using native threads
685 AC_SUBST(PTHREAD_ONLY)
687 dnl =================================================================
688 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
689 dnl gmtime and localtime
690 dnl =================================================================
692 dnl Next line needed to find the gethost*_r functions on Solaris
693 AC_CHECK_LIB(nsl, gethostbyname)
695 AC_CHECK_FUNC(gethostbyaddr_r, [
696 AC_MSG_CHECKING([signature of gethostbyaddr_r])
700 struct hostent *h, *hp;
703 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
705 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
706 AC_MSG_RESULT([8 args])
714 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
716 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
717 AC_MSG_RESULT([7 args])
722 struct hostent_data *d;
726 (void) gethostbyaddr_r(a, l, t, h, d)
728 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
729 AC_MSG_RESULT([5 args])
731 AC_MSG_RESULT(unrecognised)
739 AC_CHECK_FUNC(gethostbyname_r, [
740 AC_MSG_CHECKING([signature of gethostbyname_r])
744 struct hostent *h, *r;
747 (void) gethostbyname_r(n, h, b, bl, &r, &e)
749 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
750 AC_MSG_RESULT([6 args])
758 (void) gethostbyname_r(n, h, b, bl, &e)
760 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
761 AC_MSG_RESULT([5 args])
766 struct hostent_data *d;
769 (void) gethostbyname_r(n, h, d)
771 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
772 AC_MSG_RESULT([3 args])
774 AC_MSG_RESULT(unrecognised)
782 AC_CHECK_FUNC(gmtime_r, [
783 AC_MSG_CHECKING([signature of gmtime_r])
789 (void) gmtime_r(t, tm)
792 AC_DEFINE(HAVE_GMTIME_R)
794 AC_MSG_RESULT(unrecognised)
800 AC_CHECK_FUNC(localtime_r, [
801 AC_MSG_CHECKING([signature of localtime_r])
807 (void) localtime_r(t, tm)
810 AC_DEFINE(HAVE_LOCALTIME_R)
812 AC_MSG_RESULT(unrecognised)
818 dnl =================================================================
820 dnl FIXME: Not tested on Solaris yet...
821 dnl ISFIXED: Have tested it on Solaris, but there are other ways to
822 dnl make these checks generic, e.g.:
823 dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt))
824 dnl (Moritz Barsnick <moritz@barsnick.net>)
825 dnl =================================================================
831 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
832 AC_DEFINE(__EXTENSIONS__)
833 if test "$GCC" = "yes"; then
834 # Set a GCC specific switch:
835 # This compiler switch makes Solaris thread-safe
837 SPECIAL_CFLAGS="-pthreads"
839 # What do we do without GCC? Guess this:
840 SPECIAL_CFLAGS="-D_REENTRANT"
847 dnl =================================================================
848 dnl Solaris problem, and others perhaps (socklen_t is undefined)
849 dnl =================================================================
851 AC_MSG_CHECKING([for socklen_t])
852 AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]),
854 AC_DEFINE(socklen_t,int,
855 [ Define to 'int' if <sys/socket.h> doesn't have it. ]))
858 dnl =================================================================
860 dnl =================================================================
863 *-os2-emx*) SOCKET_LIB=-lsocket
869 dnl =================================================================
871 dnl =================================================================
874 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
878 dnl =================================================================
880 dnl =================================================================
885 *-amigaos) AMIGAOS_ONLY=
889 AC_SUBST(AMIGAOS_ONLY)
891 dnl =================================================================
892 dnl Check for standard compiler stuff
893 dnl =================================================================
904 AC_CHECK_SIZEOF(int, 4)
905 AC_CHECK_SIZEOF(char *, 4)
906 AC_CHECK_SIZEOF(long, 4)
907 AC_CHECK_SIZEOF(long long, 8)
908 AC_CHECK_SIZEOF(size_t, 4)
910 dnl Checks for header files.
911 dnl AC_HEADER_SYS_WAIT
912 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
913 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])
915 dnl Checks for library functions.
917 dnl AC_CHECK_FUNC(strstr)
918 dnl bcopy and memmove are for PCRE
919 AC_CHECK_FUNCS([strerror bcopy memmove])
920 AC_PROG_GCC_TRADITIONAL
921 dnl uncommenting does not work for swa. suse linux
925 dnl uncommenting does not work for swa. suse linux
927 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
930 dnl =================================================================
931 dnl Checks for libraries.
932 dnl =================================================================
933 dnl Note: Some systems may have the library but not the system header
934 dnl file, so we must check for both.
935 dnl Also check for correct version
936 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])
937 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)
938 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
941 dnl =================================================================
943 dnl =================================================================
947 dnl =================================================================
949 dnl =================================================================
951 AC_ARG_ENABLE(toggle,
952 [ --disable-toggle Don't support temporary disable],
953 [if test $enableval = yes; then
954 AC_DEFINE(FEATURE_TOGGLE)
955 fi],AC_DEFINE(FEATURE_TOGGLE))
958 [ --disable-force Don't allow single-page disable],
959 [if test $enableval = yes; then
960 AC_DEFINE(FEATURE_FORCE_LOAD)
961 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
963 AC_ARG_ENABLE(fast-redirects,
964 [ --disable-fast-redirects Don't support fast redirects],
965 [if test $enableval = yes; then
966 AC_DEFINE(FEATURE_FAST_REDIRECTS)
967 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
969 AC_ARG_ENABLE(killpopup,
970 [ --disable-killpopup Never block popups],
971 [if test $enableval = yes; then
972 AC_DEFINE(FEATURE_KILL_POPUPS)
973 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
976 [ --disable-stats Don't keep statistics],
977 [if test $enableval = yes; then
978 AC_DEFINE(FEATURE_STATISTICS)
979 fi],AC_DEFINE(FEATURE_STATISTICS))
981 AC_ARG_ENABLE(ie-images,
982 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
983 Explorer is for an image or HTML.],
984 [if test $enableval = yes; then
985 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
987 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
989 AC_ARG_ENABLE(image-blocking,
990 [ --disable-image-blocking Don't try to figure out whether a request is
991 for an image or HTML - assume HTML.],
992 [if test $enableval = yes; then
993 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
995 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
997 AC_ARG_ENABLE(acl-files,
998 [ --disable-acl-files Prevents the use of ACL files to control access to
999 the proxy by IP address.],
1000 [if test $enableval = yes; then
1001 AC_DEFINE(FEATURE_ACL)
1003 AC_DEFINE(FEATURE_ACL))
1005 AC_ARG_ENABLE(trust-files,
1006 [ --disable-trust-files Prevents the use of trust files.],
1007 [if test $enableval = yes; then
1008 AC_DEFINE(FEATURE_TRUST)
1010 AC_DEFINE(FEATURE_TRUST))
1012 AC_ARG_ENABLE(jar-files,
1013 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
1014 [if test $enableval = yes; then
1015 AC_DEFINE(FEATURE_COOKIE_JAR)
1017 AC_DEFINE(FEATURE_COOKIE_JAR))
1019 AC_ARG_ENABLE(editor,
1020 [ --disable-editor Prevents the use of the web-based actions file
1021 editor and web-based temporary disable setting.],
1022 [if test $enableval = yes; then
1023 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
1025 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
1027 AC_ARG_ENABLE(no-gifs,
1028 [ --enable-no-gifs Use politically correct PNG format instead of GIF
1029 for built-in images. May not work with all browsers.],
1030 [if test $enableval = yes; then
1031 AC_DEFINE(FEATURE_NO_GIFS)
1035 dnl pcre/pcrs is needed for CGI anyway, so
1036 dnl the choice is only between static and
1039 AC_ARG_ENABLE(dynamic-pcre,
1040 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1041 libpcre is available],
1042 [ if test $enableval = "no"; then have_pcre=no; fi ])
1044 AC_ARG_ENABLE(dynamic-pcrs,
1045 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1046 libpcrs is available],
1047 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1050 # If we have libpcre and either we also have pcreposix or
1051 # we don't need pcreposix, then link pcre dynamically; else
1052 # build it and link statically
1054 if test $have_pcre = "yes"; then
1055 echo "using libpcre"
1058 LIBS="$LIBS -lpcre -lpcreposix"
1060 echo "using built-in static pcre"
1062 AC_DEFINE(STATIC_PCRE)
1066 # If we have libpcrs and pcre is linked dynamically
1067 # then also link pcrs dynamically, else build and link
1070 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1071 echo "using libpcrs"
1075 echo "using built-in static pcrs"
1076 AC_DEFINE(STATIC_PCRS)
1080 AC_SUBST(STATIC_PCRE_ONLY)
1081 AC_SUBST(STATIC_PCRS_ONLY)
1083 dnl =================================================================
1084 dnl Final cleanup and output
1085 dnl =================================================================
1087 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1089 CFLAGS=$old_CFLAGS_nospecial
1090 AC_SUBST(SPECIAL_CFLAGS)
1092 AC_SUBST(PTHREAD_LIB)
1094 AC_OUTPUT(GNUmakefile)