1 dnl Process this file with autoconf to produce a configure script.
3 dnl $Id: configure.in,v 1.61 2002/04/10 18:14:45 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.61 2002/04/10 18:14:45 morcego
32 dnl - (privoxy-rh.spec only) Relisting template files on the %%files section
33 dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5
35 dnl Revision 1.60 2002/04/09 16:38:49 oes
36 dnl Added detection of missing config.h.in
38 dnl Revision 1.59 2002/04/06 20:23:55 jongfoster
39 dnl Removing unnessacery tests (C++, ranlib)
41 dnl Revision 1.58 2002/04/04 20:49:20 swa
42 dnl attempt to consolidate the
43 dnl different dokbook versions.
45 dnl Revision 1.57 2002/04/04 00:36:36 gliptak
46 dnl always use pcre for matching
48 dnl Revision 1.56 2002/04/03 22:28:03 gliptak
49 dnl Removed references to gnu_regex
51 dnl Revision 1.55 2002/04/03 03:54:38 gliptak
52 dnl Checking pcre version
54 dnl Revision 1.54 2002/04/01 00:54:24 gliptak
55 dnl More changes needed around regex support.
57 dnl Revision 1.53 2002/03/29 20:09:01 swa
60 dnl Revision 1.52 2002/03/29 19:51:40 gliptak
61 dnl Correcting compile problem with Debian
63 dnl Revision 1.51 2002/03/28 20:43:00 swa
64 dnl set make correctly
66 dnl Revision 1.50 2002/03/27 03:03:45 hal9
67 dnl Add test for man2html
69 dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt
70 dnl More Mac OSX support:
71 dnl - Get rid of extraneous, noisy -pthread warnings
72 dnl - Define unix so we get oes' unix-tagged changes
74 dnl Revision 1.48 2002/03/26 22:29:54 swa
75 dnl we have a new homepage!
77 dnl Revision 1.47 2002/03/26 16:41:00 hal9
78 dnl Upped RPM Release to 3 (need to build new RH packages)
80 dnl Revision 1.46 2002/03/24 18:55:06 jongfoster
81 dnl Making Docbook work under Windows
83 dnl Revision 1.45 2002/03/24 14:19:55 swa
84 dnl set rpm package release in configure.in. nowhere else.
86 dnl Revision 1.44 2002/03/24 13:25:43 swa
87 dnl name change related issues
89 dnl Revision 1.43 2002/03/24 12:56:21 swa
90 dnl name change related issues.
92 dnl Revision 1.42 2002/03/22 18:11:37 jongfoster
93 dnl Bumping version number to 2.9.12
95 dnl Revision 1.41 2002/03/19 19:30:04 morcego
96 dnl - Fixing stylesheet checking on configure. If it is found, no further checks
99 dnl - configure will now check for db2html or docbook2html (should work now
100 dnl on SuSe without the docbktls package)
102 dnl Revision 1.40 2002/03/09 14:33:30 oes
103 dnl Fixing the (harmless) AC_CHECK_FILE warnings
105 dnl Revision 1.39 2002/03/08 16:46:13 oes
106 dnl Added --enable-no-gifs
108 dnl Revision 1.38 2002/03/08 14:13:50 morcego
109 dnl Fixing configure, to remove a command not found error.
111 dnl Revision 1.37 2002/03/08 12:58:21 oes
112 dnl Tiny bugfix in AC_ARG_WITH(debug)
114 dnl Revision 1.36 2002/03/06 23:50:36 morcego
115 dnl Will not test for a text browser if we are not using docbook.
117 dnl Revision 1.35 2002/03/06 21:55:52 morcego
118 dnl New configure option: --with-docbook=(yes|no|directory)
119 dnl Preliminary new platform detection code included. Will work with the
120 dnl old one for now. No use just trowing it away
122 dnl Revision 1.34 2002/03/06 20:57:00 morcego
123 dnl Fixing detection of stylesheets on SuSe.
125 dnl Revision 1.33 2002/03/05 17:31:11 morcego
126 dnl Search for docbook.dsl. Should solve portability problems for SuSe.
128 dnl Revision 1.32 2002/03/05 14:07:43 morcego
129 dnl configure now detects rpm topdir, and change GNUmakefile acordingly
130 dnl (based on sugestion by Sarantis Paskalis)
132 dnl Revision 1.31 2002/03/05 13:43:28 morcego
133 dnl Checking for text browser, so redhat-dok can work.
135 dnl Revision 1.30 2002/03/04 17:58:01 oes
136 dnl Deleted _DEBUG and PID_FILE_PATH
138 dnl Revision 1.29 2002/02/28 14:20:53 oes
139 dnl Fixed detection of gethost*_r functions on Solaris
141 dnl Revision 1.28 2002/02/27 15:02:38 oes
142 dnl Incremented version number
144 dnl Revision 1.27 2002/01/10 12:35:18 oes
145 dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros
146 dnl to silence autoconf warnings. Numbers are for Intel/Linux.
147 dnl Is there a better way?
149 dnl Revision 1.26 2002/01/09 14:29:49 oes
150 dnl - Added AC_CHECK_FUNC tests for the availability of
151 dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and
152 dnl localtime_r, as well as AC_TRY_COMPILE tests to
153 dnl determine their signatures.
155 dnl - Fixed a bug with the init of CFLAGS that was
156 dnl reported by barsnick
158 dnl Revision 1.25 2002/01/04 15:27:18 oes
159 dnl Changed quoting of CODE_STATUS for use in make
161 dnl Revision 1.24 2001/12/30 14:07:31 steudten
162 dnl - Add signal handling (unix)
163 dnl - Add SIGHUP handler (unix)
164 dnl - Add creation of pidfile (unix)
165 dnl - Add action 'top' in rc file (RH)
166 dnl - Add entry 'SIGNALS' to manpage
167 dnl - Add exit message to logfile (unix)
169 dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt
170 dnl Change from "alpha" to "beta" in configure.in
172 dnl Revision 1.22 2001/12/01 11:24:01 jongfoster
173 dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
174 dnl make break in a more obvious way.
176 dnl Revision 1.21 2001/11/30 21:35:54 jongfoster
177 dnl Bumping version number to 2.9.10
179 dnl Revision 1.20 2001/10/23 21:24:09 jongfoster
180 dnl Support for FEATURE_CGI_EDIT_ACTIONS
182 dnl Revision 1.19 2001/10/07 15:33:14 oes
183 dnl Removed FEATURE_DENY_GZIP
184 dnl Bumped up version number
186 dnl Revision 1.18 2001/09/13 13:10:24 steudten
188 dnl PreWork for Debug Interface.
189 dnl Add new option "--with-debug" to enable debugging (flags aso.)
191 dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt
192 dnl Mac OSX (Darwin) support added.
194 dnl Revision 1.16 2001/09/12 22:55:45 joergs
195 dnl AmigaOS support added.
197 dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt
199 dnl OS/2 port: update autoconf'd support for the platform.
201 dnl Revision 1.14 2001/07/30 22:12:11 jongfoster
202 dnl Fixing Solaris build (I hope) and tidying up #defines:
203 dnl - All feature #defines are now of the form FEATURE_xxx
204 dnl - Permanently turned off WIN_GUI_EDIT
205 dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
207 dnl Revision 1.13 2001/07/29 17:09:17 jongfoster
208 dnl Major changes to build system in order to fix these bugs:
209 dnl - pthreads under Linux was broken - changed -lpthread to -pthread
210 dnl - Compiling in MinGW32 mode under CygWin now correctly detects
211 dnl which shared libraries are available
212 dnl - Solaris support (?) (Not tested under Solaris yet)
214 dnl Revision 1.12 2001/07/25 19:16:27 oes
215 dnl Bumping version number to 2.9.8
217 dnl Revision 1.11 2001/07/21 18:00:07 jongfoster
218 dnl Bumping version number to 2.9.7
220 dnl Revision 1.10 2001/07/18 17:25:04 oes
223 dnl Revision 1.9 2001/07/15 19:45:13 jongfoster
224 dnl Added support for linking with POSIX threads library
226 dnl Revision 1.8 2001/07/15 17:54:29 jongfoster
227 dnl Renaming #define STATIC to STATIC_PCRE
228 dnl Adding new #define FEATURE_PTHREAD that will be used to enable
229 dnl POSIX threads support.
231 dnl Revision 1.7 2001/07/13 13:58:05 oes
232 dnl Completely reorganized the selection scheme for
233 dnl pcre, pcreposix, pcrs and gnu_regex:
235 dnl The presence of shared pcre, pcreposix or pcrs
236 dnl libraried is now autodetected. Additionally, the
237 dnl user can enforce using the built-in static variants
238 dnl by specifying --disable-dynamic-(pcre|pcrs).
239 dnl Care is taken to avoid that pcre is dyn, while pcreposix
240 dnl is static, if both are used and that pcrs is static if
243 dnl The choice between pcre, gnu or no regex for actionsfile
244 dnl URL matching is now via
245 dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the
246 dnl default being pcre.
248 dnl Revision 1.6 2001/06/29 21:56:40 oes
251 dnl Revision 1.5 2001/06/29 13:26:27 oes
252 dnl Introduced #define CODE_STATUS
254 dnl Revision 1.4 2001/05/29 09:50:24 jongfoster
255 dnl Unified blocklist/imagelist/permissionslist.
256 dnl File format is still under discussion, but the internal changes
257 dnl are (mostly) done.
259 dnl Also modified interceptor behaviour:
260 dnl - We now intercept all URLs beginning with one of the following
261 dnl prefixes (and *only* these prefixes):
263 dnl * http://ijbswa.sf.net/config/
264 dnl * http://ijbswa.sourceforge.net/config/
265 dnl - New interceptors "home page" - go to http://i.j.b/ to see it.
266 dnl - Internal changes so that intercepted and fast redirect pages
267 dnl are not replaced with an image.
268 dnl - Interceptors now have the option to send a binary page direct
269 dnl to the client. (i.e. ijb-send-banner uses this)
270 dnl - Implemented show-url-info interceptor. (Which is why I needed
271 dnl the above interceptors changes - a typical URL is
272 dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
273 dnl The previous mechanism would not have intercepted that, and
274 dnl if it had been intercepted then it then it would have replaced
275 dnl it with an image.)
277 dnl Revision 1.3 2001/05/22 18:46:04 oes
279 dnl - Enabled filtering banners by size rather than URL
280 dnl by adding patterns that replace all standard banner
281 dnl sizes with the "Junkbuster" gif to the re_filterfile
283 dnl - Enabled filtering WebBugs by providing a pattern
284 dnl which kills all 1x1 images
286 dnl - Added support for PCRE_UNGREEDY behaviour to pcrs,
287 dnl which is selected by the (nonstandard and therefore
288 dnl capital) letter 'U' in the option string.
289 dnl It causes the quantifiers to be ungreedy by default.
290 dnl Appending a ? turns back to greedy (!).
292 dnl - Added a new interceptor ijb-send-banner, which
293 dnl sends back the "Junkbuster" gif. Without imagelist or
294 dnl MSIE detection support, or if tinygif = 1, or the
295 dnl URL isn't recognized as an imageurl, a lame HTML
296 dnl explanation is sent instead.
298 dnl - Added new feature, which permits blocking remote
299 dnl script redirects and firing back a local redirect
301 dnl The feature is conditionally compiled, i.e. it
302 dnl can be disabled with --disable-fast-redirects,
303 dnl plus it must be activated by a "fast-redirects"
304 dnl line in the config file, has its own log level
305 dnl and of course wants to be displayed by show-proxy-args
306 dnl Note: Boy, all the #ifdefs in 1001 locations and
307 dnl all the fumbling with configure.in and acconfig.h
308 dnl were *way* more work than the feature itself :-(
310 dnl - Because a generic redirect template was needed for
311 dnl this, tinygif = 3 now uses the same.
313 dnl - Moved GIFs, and other static HTTP response templates
316 dnl - Some minor fixes
318 dnl - Removed some >400 CRs again (Jon, you really worked
321 dnl Revision 1.2 2001/05/20 01:21:20 jongfoster
322 dnl Version 2.9.4 checkin.
323 dnl - Merged popupfile and cookiefile, and added control over PCRS
324 dnl filtering, in new "permissionsfile".
325 dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
326 dnl file error you now get a message box (in the Win32 GUI) rather
327 dnl than the program exiting with no explanation.
328 dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header
330 dnl - Removed tabs from "config"
331 dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition.
332 dnl - Bumped up version number.
334 dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes
335 dnl Initial import of version 2.9.3 source tree
340 dnl =================================================================
341 dnl AutoConf Initialization
342 dnl =================================================================
344 AC_REVISION($Revision: 1.61 $)
347 if test ! -f config.h.in; then
348 echo "You need to run autoheader first. "
349 echo -n "Shall I do this for you now? (y/n) "
351 if test $answer != "y"; then
358 AC_CONFIG_HEADER([config.h])
363 AC_ARG_WITH(docbook, dnl
364 --with-docbook=[[yes|no|directory]]
365 Enable docbook documentation creation
366 (default = yes, for gnu and linux),[dnl
367 case "$with_docbook" in
377 AC_ARG_WITH(db2html, dnl
378 --with-db2html=<path/executable>
379 Set the location of the docbook to html converter
380 (default = search),[dnl
384 dnl =================================================================
385 dnl Application version number
386 dnl =================================================================
391 VERSION_RPM_PACKAGE=1
394 dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be
395 dnl used for CGI output
397 dnl =================================================================
398 dnl Substitute the version numbers
399 dnl =================================================================
401 AC_SUBST(VERSION_MAJOR)
402 AC_SUBST(VERSION_MINOR)
403 AC_SUBST(VERSION_POINT)
404 AC_SUBST(VERSION_RPM_PACKAGE)
405 AC_SUBST(CODE_STATUS)
408 AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
409 AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
410 AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
411 AC_DEFINE_UNQUOTED(VERSION_RPM_PACKAGE,${VERSION_RPM_PACKAGE})
412 AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
413 AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}")
415 dnl =================================================================
416 dnl Checks for programs needed to build.
417 dnl =================================================================
424 AC_CHECK_PROG(GDB,gdb,yes,no)
426 dnl =================================================================
427 dnl debug, gcc and gdb support
428 dnl =================================================================
431 [ --with-debug Enable debug mode],
433 if test "x$withval" != "xno" ; then
434 if test $ac_cv_prog_cc_g = yes; then
435 if test "$GCC" = yes; then
441 CFLAGS="$CFLAGS -Wshadow -Wconversion"
449 if test "X$CFLAGS" = "X"; then # if CFLAGS are unset
450 if test "$GCC" = yes; then
460 [ --with-user=privoxy Set user under which privoxy run],
462 if test "x$withval" != "xyes"; then
465 AC_MSG_ERROR(We need a user if you give me this parameter)
475 [ --with-group=privoxy Set group for privoxy],
477 if test "x$withval" != "xyes"; then
480 AC_MSG_ERROR(We need a group if you give me this parameter)
488 dnl =================================================================
489 dnl additional gcc flags
490 dnl =================================================================
493 CFLAGS="-pipe $CFLAGS"
497 dnl =================================================================
499 dnl =================================================================
501 dnl Must do this first.
503 dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler
504 dnl into Cygwin or MinGW32 modes. Depending on the mode selected,
505 dnl the compiler will use completely different sets of library
506 dnl and include files.
508 dnl =================================================================
513 if test "$MINGW32" = "yes"; then
516 if test "$CYGWIN" = "yes"; then
523 if test $dodk = auto; then
525 if test $target_type = unix; then
534 dnl Decide what to do based on target_type
535 dnl Note: PTHREAD_LIB is always set, even if pthread is disabled.
536 dnl This is because we don't know yet whether pthread is enabled.
538 AC_ARG_ENABLE(mingw32,
539 [ --enable-mingw32 Use mingw32 for a Windows GUI],
540 [if test $enableval = yes; then
544 if test $target_type = mingw; then
546 SPECIAL_CFLAGS="-mwindows -mno-cygwin"
547 PTHREAD_LIB=-lpthreadGC
548 echo "Using mingw32 (Win32 GUI)"
551 if test $target_type = cygwin; then
552 SPECIAL_CFLAGS="-mno-win32"
554 echo "Using Cygnus (Win32 command line)"
557 PTHREAD_LIB=-lpthread
562 dnl Checking which text html browser we have avaliable
563 if test $dodk != no; then
564 AC_CHECK_PROGS(WDUMP,w3m lynx links,false)
565 if test "$WDUMP" = false; then
566 AC_MSG_ERROR(You need some kind of text browser to continue \(w3m, lynx and links are supported\))
568 if test $DB2HTML = false; then
569 dnl We need to clean the variable, otherwise AC_CHECK_PROGS
572 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false)
578 dnl If we use rpm, we need to check where %_topdir is
579 AC_CHECK_PROGS(RPMBIN,rpm,false)
580 if test $RPMBIN != false; then
581 RPM_BASE=`rpm --eval "%{_topdir}"`
582 if test "$RPM_BASE" = ""; then
583 RPM_BASE=/usr/src/redhat
588 dnl Check for jade, so we can build the documentation
589 AC_CHECK_PROGS(JADEBIN,jade openjade,false)
592 dnl Check for man2html for docs.
593 AC_CHECK_PROGS(MAN2HTML,man2html,false)
596 dnl Checking for the docbook.dsl stylesheet file
597 dnl It is still not portable (directory slash)
599 if test $dodk = yes; then
600 if test $DKPREFIX = none; then
601 for i in /usr/share/sgml/docbook/dsssl-stylesheets /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl; do
602 echo -n "checking for $i/html/docbook.dsl..."
603 if test -f $i/html/docbook.dsl; then
611 # where are the catalogs?
612 for i in /usr/share/sgml/CATALOG.docbk30 /usr/share/sgml/CATALOG.docbk31; do
613 echo -n "checking for $i..."
616 JADECAT="$JADECAT -c $i"
626 dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS
627 old_CFLAGS_nospecial=$CFLAGS
628 CFLAGS="$CFLAGS $SPECIAL_CFLAGS"
630 # Hack to force AutoConf to use the CFLAGS we just set
631 dnl Warning: This may break with a future version of Autoconf
632 dnl Tested with autoconf 2.13
633 ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS'
634 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
635 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
638 dnl =================================================================
640 dnl =================================================================
642 AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no])
644 AC_ARG_ENABLE(pthread,
645 [ --disable-pthread Don't use POSIX threads (pthreads)],
646 [if test $enableval = no; then
651 if test $have_pthread = yes; then
653 AC_DEFINE(FEATURE_PTHREAD)
654 echo Using POSIX threads
655 if test "$GCC" = "yes"; then
656 # Set a GCC specific switch:
657 if test "$target_type" = "unix"; then
658 # This compiler switch makes Linux thread-safe
659 # Don't know about other OS's? Is this switch
662 SPECIAL_CFLAGS="-pthread"
667 echo Using native threads
670 AC_SUBST(PTHREAD_ONLY)
672 dnl =================================================================
673 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
674 dnl gmtime and localtime
675 dnl =================================================================
677 dnl Next line needed to find the gethost*_r functions on Solaris
678 AC_CHECK_LIB(nsl, gethostbyname)
680 AC_CHECK_FUNC(gethostbyaddr_r, [
681 AC_MSG_CHECKING([signature of gethostbyaddr_r])
685 struct hostent *h, *hp;
688 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e)
690 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS)
691 AC_MSG_RESULT([8 args])
699 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e)
701 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS)
702 AC_MSG_RESULT([7 args])
707 struct hostent_data *d;
711 (void) gethostbyaddr_r(a, l, t, h, d)
713 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS)
714 AC_MSG_RESULT([5 args])
716 AC_MSG_RESULT(unrecognised)
724 AC_CHECK_FUNC(gethostbyname_r, [
725 AC_MSG_CHECKING([signature of gethostbyname_r])
729 struct hostent *h, *r;
732 (void) gethostbyname_r(n, h, b, bl, &r, &e)
734 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS)
735 AC_MSG_RESULT([6 args])
743 (void) gethostbyname_r(n, h, b, bl, &e)
745 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS)
746 AC_MSG_RESULT([5 args])
751 struct hostent_data *d;
754 (void) gethostbyname_r(n, h, d)
756 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS)
757 AC_MSG_RESULT([3 args])
759 AC_MSG_RESULT(unrecognised)
767 AC_CHECK_FUNC(gmtime_r, [
768 AC_MSG_CHECKING([signature of gmtime_r])
774 (void) gmtime_r(t, tm)
777 AC_DEFINE(HAVE_GMTIME_R)
779 AC_MSG_RESULT(unrecognised)
785 AC_CHECK_FUNC(localtime_r, [
786 AC_MSG_CHECKING([signature of localtime_r])
792 (void) localtime_r(t, tm)
795 AC_DEFINE(HAVE_LOCALTIME_R)
797 AC_MSG_RESULT(unrecognised)
803 dnl =================================================================
805 dnl FIXME: Not tested on Solaris yet...
806 dnl =================================================================
812 *-solaris*) SOCKET_LIB="-lsocket -lnsl"
813 AC_DEFINE(__EXTENSIONS__)
814 if test "$GCC" = "yes"; then
815 # Set a GCC specific switch:
816 # This compiler switch makes Solaris thread-safe
818 SPECIAL_CFLAGS="-pthreads"
820 # What do we do without GCC? Guess this:
821 SPECIAL_CFLAGS="-D_REENTRANT"
828 dnl =================================================================
830 dnl =================================================================
833 *-os2-emx*) SOCKET_LIB=-lsocket
839 dnl =================================================================
841 dnl =================================================================
844 *-apple-darwin*) SPECIAL_CFLAGS="-Dunix"
848 dnl =================================================================
850 dnl =================================================================
855 *-amigaos) AMIGAOS_ONLY=
859 AC_SUBST(AMIGAOS_ONLY)
861 dnl =================================================================
862 dnl Check for standard compiler stuff
863 dnl =================================================================
874 AC_CHECK_SIZEOF(int, 4)
875 AC_CHECK_SIZEOF(char *, 4)
876 AC_CHECK_SIZEOF(long, 4)
877 AC_CHECK_SIZEOF(long long, 8)
878 AC_CHECK_SIZEOF(size_t, 4)
880 dnl Checks for header files.
881 dnl AC_HEADER_SYS_WAIT
882 dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
883 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])
885 dnl Checks for library functions.
887 dnl AC_CHECK_FUNC(strstr)
888 dnl bcopy and memmove are for PCRE
889 AC_CHECK_FUNCS([strerror bcopy memmove])
890 AC_PROG_GCC_TRADITIONAL
891 dnl uncommenting does not work for swa. suse linux
895 dnl uncommenting does not work for swa. suse linux
897 AC_CHECK_FUNCS([atexit getcwd gethostbyaddr gethostbyname inet_ntoa localtime_r memchr memmove memset regcomp select setlocale socket strchr strdup strerror strftime strstr strtoul])
900 dnl =================================================================
901 dnl Checks for libraries.
902 dnl =================================================================
903 dnl Note: Some systems may have the library but not the system header
904 dnl file, so we must check for both.
905 dnl Also check for correct version
906 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])
907 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)
908 AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no])
911 dnl =================================================================
913 dnl =================================================================
917 dnl =================================================================
919 dnl =================================================================
921 AC_ARG_ENABLE(toggle,
922 [ --disable-toggle Don't support temporary disable],
923 [if test $enableval = yes; then
924 AC_DEFINE(FEATURE_TOGGLE)
925 fi],AC_DEFINE(FEATURE_TOGGLE))
928 [ --disable-force Don't allow single-page disable],
929 [if test $enableval = yes; then
930 AC_DEFINE(FEATURE_FORCE_LOAD)
931 fi],AC_DEFINE(FEATURE_FORCE_LOAD))
933 AC_ARG_ENABLE(fast-redirects,
934 [ --disable-fast-redirects Don't support fast redirects],
935 [if test $enableval = yes; then
936 AC_DEFINE(FEATURE_FAST_REDIRECTS)
937 fi], AC_DEFINE(FEATURE_FAST_REDIRECTS))
939 AC_ARG_ENABLE(killpopup,
940 [ --disable-killpopup Never block popups],
941 [if test $enableval = yes; then
942 AC_DEFINE(FEATURE_KILL_POPUPS)
943 fi],AC_DEFINE(FEATURE_KILL_POPUPS))
946 [ --disable-stats Don't keep statistics],
947 [if test $enableval = yes; then
948 AC_DEFINE(FEATURE_STATISTICS)
949 fi],AC_DEFINE(FEATURE_STATISTICS))
951 AC_ARG_ENABLE(ie-images,
952 [ --disable-ie-images Don't auto-detect whether a request from MS Internet
953 Explorer is for an image or HTML.],
954 [if test $enableval = yes; then
955 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE)
957 AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE))
959 AC_ARG_ENABLE(image-blocking,
960 [ --disable-image-blocking Don't try to figure out whether a request is
961 for an image or HTML - assume HTML.],
962 [if test $enableval = yes; then
963 AC_DEFINE(FEATURE_IMAGE_BLOCKING)
965 AC_DEFINE(FEATURE_IMAGE_BLOCKING))
967 AC_ARG_ENABLE(acl-files,
968 [ --disable-acl-files Prevents the use of ACL files to control access to
969 the proxy by IP address.],
970 [if test $enableval = yes; then
971 AC_DEFINE(FEATURE_ACL)
973 AC_DEFINE(FEATURE_ACL))
975 AC_ARG_ENABLE(trust-files,
976 [ --disable-trust-files Prevents the use of trust files.],
977 [if test $enableval = yes; then
978 AC_DEFINE(FEATURE_TRUST)
980 AC_DEFINE(FEATURE_TRUST))
982 AC_ARG_ENABLE(jar-files,
983 [ --disable-jar-files Prevents the use of jar files to capture cookies.],
984 [if test $enableval = yes; then
985 AC_DEFINE(FEATURE_COOKIE_JAR)
987 AC_DEFINE(FEATURE_COOKIE_JAR))
989 AC_ARG_ENABLE(editor,
990 [ --disable-editor Prevents the use of the web-based actions file
991 editor and web-based temporary disable setting.],
992 [if test $enableval = yes; then
993 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)
995 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS))
997 AC_ARG_ENABLE(no-gifs,
998 [ --enable-no-gifs Use politically correct PNG format instead of GIF
999 for built-in images. May not work with all browsers.],
1000 [if test $enableval = yes; then
1001 AC_DEFINE(FEATURE_NO_GIFS)
1005 dnl pcre/pcrs is needed for CGI anyway, so
1006 dnl the choice is only between static and
1009 AC_ARG_ENABLE(dynamic-pcre,
1010 [ --disable-dynamic-pcre Use the built-in, static pcre, even if
1011 libpcre is available],
1012 [ if test $enableval = "no"; then have_pcre=no; fi ])
1014 AC_ARG_ENABLE(dynamic-pcrs,
1015 [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if
1016 libpcrs is available],
1017 [ if test $enableval = "no"; then have_pcrs=no; fi ])
1020 # If we have libpcre and either we also have pcreposix or
1021 # we don't need pcreposix, then link pcre dynamically; else
1022 # build it and link statically
1024 if test $have_pcre = "yes"; then
1025 echo "using libpcre"
1028 LIBS="$LIBS -lpcre -lpcreposix"
1030 echo "using built-in static pcre"
1032 AC_DEFINE(STATIC_PCRE)
1036 # If we have libpcrs and pcre is linked dynamically
1037 # then also link pcrs dynamically, else build and link
1040 if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then
1041 echo "using libpcrs"
1045 echo "using built-in static pcrs"
1046 AC_DEFINE(STATIC_PCRS)
1050 AC_SUBST(STATIC_PCRE_ONLY)
1051 AC_SUBST(STATIC_PCRS_ONLY)
1053 dnl =================================================================
1054 dnl Final cleanup and output
1055 dnl =================================================================
1057 dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately
1059 CFLAGS=$old_CFLAGS_nospecial
1060 AC_SUBST(SPECIAL_CFLAGS)
1062 AC_SUBST(PTHREAD_LIB)
1064 AC_OUTPUT(GNUmakefile)